revox 0.1.0 → 0.3.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +81 -0
- data/README.md +39 -14
- data/lib/revox/client.rb +23 -1
- data/lib/revox/internal/transport/base_client.rb +5 -0
- data/lib/revox/internal/type/base_model.rb +3 -3
- data/lib/revox/internal/util.rb +22 -7
- data/lib/revox/models/assistant_clone_params.rb +20 -0
- data/lib/revox/models/assistant_clone_response.rb +1594 -0
- data/lib/revox/models/assistant_create_params.rb +1038 -13
- data/lib/revox/models/assistant_create_response.rb +1071 -11
- data/lib/revox/models/assistant_list_response.rb +1070 -11
- data/lib/revox/models/assistant_retrieve_response.rb +1066 -11
- data/lib/revox/models/assistant_update_params.rb +1038 -13
- data/lib/revox/models/assistant_update_response.rb +1097 -12
- data/lib/revox/models/auth_status_retrieve_params.rb +14 -0
- data/lib/revox/models/auth_status_retrieve_response.rb +17 -0
- data/lib/revox/models/call_cancel_params.rb +20 -0
- data/lib/revox/models/call_cancel_response.rb +16 -0
- data/lib/revox/models/call_create_params.rb +1065 -13
- data/lib/revox/models/call_create_response.rb +1820 -98
- data/lib/revox/models/call_export_params.rb +205 -0
- data/lib/revox/models/call_export_response.rb +22 -0
- data/lib/revox/models/call_pause_params.rb +20 -0
- data/lib/revox/models/call_pause_response.rb +16 -0
- data/lib/revox/models/call_phone_history_params.rb +14 -0
- data/lib/revox/models/call_phone_history_response.rb +98 -0
- data/lib/revox/models/call_resume_params.rb +20 -0
- data/lib/revox/models/call_resume_response.rb +16 -0
- data/lib/revox/models/call_retrieve_response.rb +1822 -98
- data/lib/revox/models/call_search_params.rb +171 -0
- data/lib/revox/models/call_search_response.rb +3114 -0
- data/lib/revox/models/campaign_create_params.rb +67 -2
- data/lib/revox/models/campaign_create_response.rb +1314 -59
- data/lib/revox/models/campaign_get_rows_params.rb +1 -46
- data/lib/revox/models/campaign_get_rows_response.rb +1833 -115
- data/lib/revox/models/campaign_launch_params.rb +20 -0
- data/lib/revox/models/campaign_launch_response.rb +2030 -0
- data/lib/revox/models/campaign_list_response.rb +1312 -59
- data/lib/revox/models/campaign_pause_params.rb +20 -0
- data/lib/revox/models/campaign_pause_response.rb +16 -0
- data/lib/revox/models/campaign_resume_params.rb +20 -0
- data/lib/revox/models/campaign_resume_response.rb +16 -0
- data/lib/revox/models/campaign_retrieve_response.rb +1312 -56
- data/lib/revox/models/campaign_statistics_params.rb +20 -0
- data/lib/revox/models/campaign_statistics_response.rb +486 -0
- data/lib/revox/models/campaign_update_params.rb +234 -0
- data/lib/revox/models/campaign_update_response.rb +2030 -0
- data/lib/revox/models/phone_number_delete_params.rb +20 -0
- data/lib/revox/models/phone_number_delete_response.rb +16 -0
- data/lib/revox/models/phone_number_list_params.rb +14 -0
- data/lib/revox/models/phone_number_list_response.rb +1777 -0
- data/lib/revox/models/phone_number_update_params.rb +32 -0
- data/lib/revox/models/phone_number_update_response.rb +1777 -0
- data/lib/revox/models/user_retrieve_params.rb +14 -0
- data/lib/revox/models/user_retrieve_response.rb +99 -0
- data/lib/revox/models/voice_clone_params.rb +78 -0
- data/lib/revox/models/voice_clone_response.rb +40 -0
- data/lib/revox/models/voice_delete_params.rb +20 -0
- data/lib/revox/models/voice_delete_response.rb +16 -0
- data/lib/revox/models/voice_list_response.rb +55 -1
- data/lib/revox/models/voice_preview_params.rb +49 -1
- data/lib/revox/models.rb +36 -2
- data/lib/revox/resources/assistants.rb +137 -8
- data/lib/revox/resources/auth_status.rb +32 -0
- data/lib/revox/resources/call.rb +131 -15
- data/lib/revox/resources/campaigns.rb +143 -17
- data/lib/revox/resources/phone_numbers.rb +74 -0
- data/lib/revox/resources/users.rb +17 -3
- data/lib/revox/resources/voices.rb +66 -10
- data/lib/revox/version.rb +1 -1
- data/lib/revox.rb +40 -7
- data/rbi/revox/client.rbi +6 -0
- data/rbi/revox/internal/util.rbi +8 -0
- data/rbi/revox/models/assistant_clone_params.rbi +33 -0
- data/rbi/revox/models/assistant_clone_response.rbi +3341 -0
- data/rbi/revox/models/assistant_create_params.rbi +2138 -103
- data/rbi/revox/models/assistant_create_response.rbi +2454 -199
- data/rbi/revox/models/assistant_list_response.rbi +2448 -195
- data/rbi/revox/models/assistant_retrieve_response.rbi +2401 -210
- data/rbi/revox/models/assistant_update_params.rbi +2138 -103
- data/rbi/revox/models/assistant_update_response.rbi +2504 -198
- data/rbi/revox/models/auth_status_retrieve_params.rbi +27 -0
- data/rbi/revox/models/auth_status_retrieve_response.rbi +30 -0
- data/rbi/revox/models/call_cancel_params.rbi +33 -0
- data/rbi/revox/models/call_cancel_response.rbi +23 -0
- data/rbi/revox/models/call_create_params.rbi +2382 -225
- data/rbi/revox/models/call_create_response.rbi +4116 -384
- data/rbi/revox/models/call_export_params.rbi +456 -0
- data/rbi/revox/models/call_export_response.rbi +26 -0
- data/rbi/revox/models/call_pause_params.rbi +31 -0
- data/rbi/revox/models/call_pause_response.rbi +23 -0
- data/rbi/revox/models/call_phone_history_params.rbi +27 -0
- data/rbi/revox/models/call_phone_history_response.rbi +224 -0
- data/rbi/revox/models/call_resume_params.rbi +33 -0
- data/rbi/revox/models/call_resume_response.rbi +23 -0
- data/rbi/revox/models/call_retrieve_response.rbi +4133 -399
- data/rbi/revox/models/call_search_params.rbi +288 -0
- data/rbi/revox/models/call_search_response.rbi +6593 -0
- data/rbi/revox/models/campaign_create_params.rbi +136 -0
- data/rbi/revox/models/campaign_create_response.rbi +2911 -231
- data/rbi/revox/models/campaign_get_rows_params.rbi +2 -82
- data/rbi/revox/models/campaign_get_rows_response.rbi +4146 -409
- data/rbi/revox/models/campaign_launch_params.rbi +33 -0
- data/rbi/revox/models/campaign_launch_response.rbi +4170 -0
- data/rbi/revox/models/campaign_list_response.rbi +2904 -230
- data/rbi/revox/models/campaign_pause_params.rbi +33 -0
- data/rbi/revox/models/campaign_pause_response.rbi +23 -0
- data/rbi/revox/models/campaign_resume_params.rbi +33 -0
- data/rbi/revox/models/campaign_resume_response.rbi +23 -0
- data/rbi/revox/models/campaign_retrieve_response.rbi +2911 -231
- data/rbi/revox/models/campaign_statistics_params.rbi +33 -0
- data/rbi/revox/models/campaign_statistics_response.rbi +1011 -0
- data/rbi/revox/models/campaign_update_params.rbi +431 -0
- data/rbi/revox/models/campaign_update_response.rbi +4170 -0
- data/rbi/revox/models/phone_number_delete_params.rbi +33 -0
- data/rbi/revox/models/phone_number_delete_response.rbi +26 -0
- data/rbi/revox/models/phone_number_list_params.rbi +27 -0
- data/rbi/revox/models/phone_number_list_response.rbi +3680 -0
- data/rbi/revox/models/phone_number_update_params.rbi +53 -0
- data/rbi/revox/models/phone_number_update_response.rbi +3683 -0
- data/rbi/revox/models/user_retrieve_params.rbi +27 -0
- data/rbi/revox/models/user_retrieve_response.rbi +140 -0
- data/rbi/revox/models/voice_clone_params.rbi +141 -0
- data/rbi/revox/models/voice_clone_response.rbi +53 -0
- data/rbi/revox/models/voice_delete_params.rbi +33 -0
- data/rbi/revox/models/voice_delete_response.rbi +23 -0
- data/rbi/revox/models/voice_list_response.rbi +105 -3
- data/rbi/revox/models/voice_preview_params.rbi +69 -0
- data/rbi/revox/models.rbi +36 -2
- data/rbi/revox/resources/assistants.rbi +296 -8
- data/rbi/revox/resources/auth_status.rbi +21 -0
- data/rbi/revox/resources/call.rbi +92 -6
- data/rbi/revox/resources/campaigns.rbi +106 -19
- data/rbi/revox/resources/phone_numbers.rbi +43 -0
- data/rbi/revox/resources/users.rbi +8 -2
- data/rbi/revox/resources/voices.rbi +56 -9
- data/sig/revox/client.rbs +4 -0
- data/sig/revox/internal/util.rbs +4 -0
- data/sig/revox/models/assistant_clone_params.rbs +20 -0
- data/sig/revox/models/assistant_clone_response.rbs +1318 -0
- data/sig/revox/models/assistant_create_params.rbs +844 -11
- data/sig/revox/models/assistant_create_response.rbs +860 -3
- data/sig/revox/models/assistant_list_response.rbs +860 -3
- data/sig/revox/models/assistant_retrieve_response.rbs +859 -3
- data/sig/revox/models/assistant_update_params.rbs +844 -11
- data/sig/revox/models/assistant_update_response.rbs +886 -6
- data/sig/revox/models/auth_status_retrieve_params.rbs +15 -0
- data/sig/revox/models/auth_status_retrieve_response.rbs +13 -0
- data/sig/revox/models/call_cancel_params.rbs +20 -0
- data/sig/revox/models/call_cancel_response.rbs +13 -0
- data/sig/revox/models/call_create_params.rbs +847 -13
- data/sig/revox/models/call_create_response.rbs +1519 -34
- data/sig/revox/models/call_export_params.rbs +234 -0
- data/sig/revox/models/call_export_response.rbs +15 -0
- data/sig/revox/models/call_pause_params.rbs +20 -0
- data/sig/revox/models/call_pause_response.rbs +13 -0
- data/sig/revox/models/call_phone_history_params.rbs +15 -0
- data/sig/revox/models/call_phone_history_response.rbs +102 -0
- data/sig/revox/models/call_resume_params.rbs +20 -0
- data/sig/revox/models/call_resume_response.rbs +13 -0
- data/sig/revox/models/call_retrieve_response.rbs +1519 -34
- data/sig/revox/models/call_search_params.rbs +198 -0
- data/sig/revox/models/call_search_response.rbs +2654 -0
- data/sig/revox/models/campaign_create_params.rbs +54 -0
- data/sig/revox/models/campaign_create_response.rbs +1034 -6
- data/sig/revox/models/campaign_get_rows_params.rbs +2 -64
- data/sig/revox/models/campaign_get_rows_response.rbs +1527 -54
- data/sig/revox/models/campaign_launch_params.rbs +20 -0
- data/sig/revox/models/campaign_launch_response.rbs +1694 -0
- data/sig/revox/models/campaign_list_response.rbs +1034 -6
- data/sig/revox/models/campaign_pause_params.rbs +20 -0
- data/sig/revox/models/campaign_pause_response.rbs +13 -0
- data/sig/revox/models/campaign_resume_params.rbs +20 -0
- data/sig/revox/models/campaign_resume_response.rbs +13 -0
- data/sig/revox/models/campaign_retrieve_response.rbs +1034 -6
- data/sig/revox/models/campaign_statistics_params.rbs +20 -0
- data/sig/revox/models/campaign_statistics_response.rbs +458 -0
- data/sig/revox/models/campaign_update_params.rbs +203 -0
- data/sig/revox/models/campaign_update_response.rbs +1694 -0
- data/sig/revox/models/phone_number_delete_params.rbs +20 -0
- data/sig/revox/models/phone_number_delete_response.rbs +13 -0
- data/sig/revox/models/phone_number_list_params.rbs +15 -0
- data/sig/revox/models/phone_number_list_response.rbs +1462 -0
- data/sig/revox/models/phone_number_update_params.rbs +32 -0
- data/sig/revox/models/phone_number_update_response.rbs +1460 -0
- data/sig/revox/models/user_retrieve_params.rbs +14 -0
- data/sig/revox/models/user_retrieve_response.rbs +71 -0
- data/sig/revox/models/voice_clone_params.rbs +79 -0
- data/sig/revox/models/voice_clone_response.rbs +40 -0
- data/sig/revox/models/voice_delete_params.rbs +20 -0
- data/sig/revox/models/voice_delete_response.rbs +13 -0
- data/sig/revox/models/voice_list_response.rbs +45 -3
- data/sig/revox/models/voice_preview_params.rbs +42 -1
- data/sig/revox/models.rbs +36 -2
- data/sig/revox/resources/assistants.rbs +61 -2
- data/sig/revox/resources/auth_status.rbs +11 -0
- data/sig/revox/resources/call.rbs +41 -3
- data/sig/revox/resources/campaigns.rbs +35 -5
- data/sig/revox/resources/phone_numbers.rbs +23 -0
- data/sig/revox/resources/users.rbs +3 -1
- data/sig/revox/resources/voices.rbs +17 -0
- metadata +122 -23
- data/lib/revox/models/call_list_params.rb +0 -52
- data/lib/revox/models/call_list_response.rb +0 -259
- data/lib/revox/models/users/me_retrieve_params.rb +0 -16
- data/lib/revox/models/users/me_retrieve_response.rb +0 -89
- data/lib/revox/models/users/me_update_params.rb +0 -22
- data/lib/revox/models/users/me_update_response.rb +0 -89
- data/lib/revox/resources/users/me.rb +0 -55
- data/rbi/revox/models/call_list_params.rbi +0 -94
- data/rbi/revox/models/call_list_response.rbi +0 -563
- data/rbi/revox/models/users/me_retrieve_params.rbi +0 -29
- data/rbi/revox/models/users/me_retrieve_response.rbi +0 -139
- data/rbi/revox/models/users/me_update_params.rbi +0 -43
- data/rbi/revox/models/users/me_update_response.rbi +0 -139
- data/rbi/revox/resources/users/me.rbi +0 -33
- data/sig/revox/models/call_list_params.rbs +0 -63
- data/sig/revox/models/call_list_response.rbs +0 -226
- data/sig/revox/models/users/me_retrieve_params.rbs +0 -16
- data/sig/revox/models/users/me_retrieve_response.rbs +0 -70
- data/sig/revox/models/users/me_update_params.rbs +0 -28
- data/sig/revox/models/users/me_update_response.rbs +0 -70
- data/sig/revox/resources/users/me.rbs +0 -18
|
@@ -49,8 +49,25 @@ module Revox
|
|
|
49
49
|
sig { returns(String) }
|
|
50
50
|
attr_accessor :id
|
|
51
51
|
|
|
52
|
-
#
|
|
53
|
-
#
|
|
52
|
+
# Which call outcomes trigger the after-call SMS. When empty or null, no
|
|
53
|
+
# after-call SMS is sent. Use "none" when outcome is null.
|
|
54
|
+
sig do
|
|
55
|
+
returns(
|
|
56
|
+
T.nilable(
|
|
57
|
+
T::Array[
|
|
58
|
+
Revox::Models::AssistantCreateResponse::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
59
|
+
]
|
|
60
|
+
)
|
|
61
|
+
)
|
|
62
|
+
end
|
|
63
|
+
attr_accessor :after_call_sms_outcomes
|
|
64
|
+
|
|
65
|
+
# Prompt / instructions for the after-call SMS. Supports {{variable}}
|
|
66
|
+
# placeholders. When null, no after-call SMS is sent.
|
|
67
|
+
sig { returns(T.nilable(String)) }
|
|
68
|
+
attr_accessor :after_call_sms_prompt
|
|
69
|
+
|
|
70
|
+
# Ambient background sound to play during the call. null disables it.
|
|
54
71
|
sig do
|
|
55
72
|
returns(
|
|
56
73
|
T.nilable(
|
|
@@ -60,6 +77,10 @@ module Revox
|
|
|
60
77
|
end
|
|
61
78
|
attr_accessor :background_sound
|
|
62
79
|
|
|
80
|
+
# Volume of the ambient background sound (0 = silent, 1 = max).
|
|
81
|
+
sig { returns(Float) }
|
|
82
|
+
attr_accessor :background_sound_volume
|
|
83
|
+
|
|
63
84
|
sig do
|
|
64
85
|
returns(
|
|
65
86
|
T.nilable(
|
|
@@ -100,9 +121,51 @@ module Revox
|
|
|
100
121
|
end
|
|
101
122
|
attr_writer :call_retry_config
|
|
102
123
|
|
|
124
|
+
# Optional Cartesia pronunciation dictionary ID linked to this assistant.
|
|
125
|
+
sig { returns(T.nilable(String)) }
|
|
126
|
+
attr_accessor :cartesia_dictionary_pronunciation_id
|
|
127
|
+
|
|
103
128
|
sig { returns(T.anything) }
|
|
104
129
|
attr_accessor :created_at
|
|
105
130
|
|
|
131
|
+
sig do
|
|
132
|
+
returns(
|
|
133
|
+
T.nilable(
|
|
134
|
+
T::Array[
|
|
135
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool
|
|
136
|
+
]
|
|
137
|
+
)
|
|
138
|
+
)
|
|
139
|
+
end
|
|
140
|
+
attr_accessor :custom_tools
|
|
141
|
+
|
|
142
|
+
# Email address(es) to receive notifications when a call ends with a matching
|
|
143
|
+
# outcome. Accepts a single email or a comma-separated list (e.g. "alice@x.com,
|
|
144
|
+
# bob@y.com").
|
|
145
|
+
sig { returns(T.nilable(String)) }
|
|
146
|
+
attr_accessor :email_notification_address
|
|
147
|
+
|
|
148
|
+
# The language used for the notification email content. One of "en" or "fr".
|
|
149
|
+
sig do
|
|
150
|
+
returns(
|
|
151
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationLanguage::TaggedSymbol
|
|
152
|
+
)
|
|
153
|
+
end
|
|
154
|
+
attr_accessor :email_notification_language
|
|
155
|
+
|
|
156
|
+
# Which call outcomes trigger an email notification. E.g. ["interested",
|
|
157
|
+
# "completed", "none"]. Use "none" when outcome is null.
|
|
158
|
+
sig do
|
|
159
|
+
returns(
|
|
160
|
+
T.nilable(
|
|
161
|
+
T::Array[
|
|
162
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
163
|
+
]
|
|
164
|
+
)
|
|
165
|
+
)
|
|
166
|
+
end
|
|
167
|
+
attr_accessor :email_notification_outcomes
|
|
168
|
+
|
|
106
169
|
sig { returns(T.nilable(String)) }
|
|
107
170
|
attr_accessor :end_of_call_sentence
|
|
108
171
|
|
|
@@ -120,6 +183,22 @@ module Revox
|
|
|
120
183
|
end
|
|
121
184
|
attr_accessor :first_sentence_mode
|
|
122
185
|
|
|
186
|
+
# Override the default outbound phone number for calls placed with this assistant.
|
|
187
|
+
# When null, the organization's default phone number is used.
|
|
188
|
+
sig { returns(T.nilable(String)) }
|
|
189
|
+
attr_accessor :from_phone_number
|
|
190
|
+
|
|
191
|
+
# Warm or cold transfer when transfer_phone_number is set; null when transfer is
|
|
192
|
+
# not configured.
|
|
193
|
+
sig do
|
|
194
|
+
returns(
|
|
195
|
+
T.nilable(
|
|
196
|
+
Revox::Models::AssistantCreateResponse::Assistant::HumanTransferMode::TaggedSymbol
|
|
197
|
+
)
|
|
198
|
+
)
|
|
199
|
+
end
|
|
200
|
+
attr_accessor :human_transfer_mode
|
|
201
|
+
|
|
123
202
|
# Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
124
203
|
# skip turns to navigate phone menus.
|
|
125
204
|
sig { returns(T::Boolean) }
|
|
@@ -132,20 +211,97 @@ module Revox
|
|
|
132
211
|
end
|
|
133
212
|
attr_accessor :llm_model
|
|
134
213
|
|
|
214
|
+
# Public URL of the brand logo shown on the assistant's demo page. Null when
|
|
215
|
+
# unset.
|
|
216
|
+
sig { returns(T.nilable(String)) }
|
|
217
|
+
attr_accessor :logo_url
|
|
218
|
+
|
|
135
219
|
# The maximum duration of the call in seconds. This is the maximum time the call
|
|
136
220
|
# will be allowed to run.
|
|
137
221
|
sig { returns(Float) }
|
|
138
222
|
attr_accessor :max_call_duration_secs
|
|
139
223
|
|
|
224
|
+
# Optional message the agent will say, without being interruptible, when the call
|
|
225
|
+
# reaches its max duration. Kept short so it fits inside the farewell buffer. If
|
|
226
|
+
# null, the call ends silently.
|
|
227
|
+
sig { returns(T.nilable(String)) }
|
|
228
|
+
attr_accessor :max_duration_end_message
|
|
229
|
+
|
|
140
230
|
sig { returns(String) }
|
|
141
231
|
attr_accessor :name
|
|
142
232
|
|
|
143
233
|
sig { returns(String) }
|
|
144
234
|
attr_accessor :organization_id
|
|
145
235
|
|
|
236
|
+
sig do
|
|
237
|
+
returns(
|
|
238
|
+
T.nilable(
|
|
239
|
+
Revox::Models::AssistantCreateResponse::Assistant::Position
|
|
240
|
+
)
|
|
241
|
+
)
|
|
242
|
+
end
|
|
243
|
+
attr_reader :position
|
|
244
|
+
|
|
245
|
+
sig do
|
|
246
|
+
params(
|
|
247
|
+
position:
|
|
248
|
+
T.nilable(
|
|
249
|
+
Revox::Models::AssistantCreateResponse::Assistant::Position::OrHash
|
|
250
|
+
)
|
|
251
|
+
).void
|
|
252
|
+
end
|
|
253
|
+
attr_writer :position
|
|
254
|
+
|
|
146
255
|
sig { returns(String) }
|
|
147
256
|
attr_accessor :prompt
|
|
148
257
|
|
|
258
|
+
sig do
|
|
259
|
+
returns(
|
|
260
|
+
T.nilable(
|
|
261
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow
|
|
262
|
+
)
|
|
263
|
+
)
|
|
264
|
+
end
|
|
265
|
+
attr_reader :prompt_flow
|
|
266
|
+
|
|
267
|
+
sig do
|
|
268
|
+
params(
|
|
269
|
+
prompt_flow:
|
|
270
|
+
T.nilable(
|
|
271
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::OrHash
|
|
272
|
+
)
|
|
273
|
+
).void
|
|
274
|
+
end
|
|
275
|
+
attr_writer :prompt_flow
|
|
276
|
+
|
|
277
|
+
sig do
|
|
278
|
+
returns(
|
|
279
|
+
T.nilable(Revox::Models::AssistantCreateResponse::Assistant::Slack)
|
|
280
|
+
)
|
|
281
|
+
end
|
|
282
|
+
attr_reader :slack
|
|
283
|
+
|
|
284
|
+
sig do
|
|
285
|
+
params(
|
|
286
|
+
slack:
|
|
287
|
+
T.nilable(
|
|
288
|
+
Revox::Models::AssistantCreateResponse::Assistant::Slack::OrHash
|
|
289
|
+
)
|
|
290
|
+
).void
|
|
291
|
+
end
|
|
292
|
+
attr_writer :slack
|
|
293
|
+
|
|
294
|
+
# Enable SMS tool during calls. When enabled, the agent can send SMS messages to
|
|
295
|
+
# the user on the call.
|
|
296
|
+
sig { returns(T::Boolean) }
|
|
297
|
+
attr_accessor :sms_enabled
|
|
298
|
+
|
|
299
|
+
# Hardcoded SMS template to send during calls. When set, this exact text is sent
|
|
300
|
+
# instead of letting the agent generate the message. Supports {{variable}}
|
|
301
|
+
# placeholders.
|
|
302
|
+
sig { returns(T.nilable(String)) }
|
|
303
|
+
attr_accessor :sms_template
|
|
304
|
+
|
|
149
305
|
# The structured output config to use for the call. This is used to extract the
|
|
150
306
|
# data from the call (like email, name, company name, etc.).
|
|
151
307
|
sig do
|
|
@@ -159,10 +315,73 @@ module Revox
|
|
|
159
315
|
end
|
|
160
316
|
attr_accessor :structured_output_config
|
|
161
317
|
|
|
318
|
+
# Custom prompt for structured data extraction. If not provided, a default prompt
|
|
319
|
+
# is used. Available variables: {{transcript}}, {{call_direction}},
|
|
320
|
+
# {{user_phone_number}}, {{agent_phone_number}}.
|
|
321
|
+
sig { returns(T.nilable(String)) }
|
|
322
|
+
attr_accessor :structured_output_prompt
|
|
323
|
+
|
|
324
|
+
# Assistant-level speech-to-text context: structured `general` key/value pairs
|
|
325
|
+
# plus a list of domain `terms`. Prompt-derived context is merged in without
|
|
326
|
+
# replacing existing entries.
|
|
327
|
+
sig do
|
|
328
|
+
returns(
|
|
329
|
+
T.nilable(
|
|
330
|
+
Revox::Models::AssistantCreateResponse::Assistant::SttContext
|
|
331
|
+
)
|
|
332
|
+
)
|
|
333
|
+
end
|
|
334
|
+
attr_reader :stt_context
|
|
335
|
+
|
|
336
|
+
sig do
|
|
337
|
+
params(
|
|
338
|
+
stt_context:
|
|
339
|
+
T.nilable(
|
|
340
|
+
Revox::Models::AssistantCreateResponse::Assistant::SttContext::OrHash
|
|
341
|
+
)
|
|
342
|
+
).void
|
|
343
|
+
end
|
|
344
|
+
attr_writer :stt_context
|
|
345
|
+
|
|
346
|
+
# Transcriber (speech-to-text) model used for the assistant.
|
|
347
|
+
sig do
|
|
348
|
+
returns(
|
|
349
|
+
Revox::Models::AssistantCreateResponse::Assistant::SttModel::TaggedSymbol
|
|
350
|
+
)
|
|
351
|
+
end
|
|
352
|
+
attr_accessor :stt_model
|
|
353
|
+
|
|
354
|
+
# Audio clip to play while the agent is processing a response. One of the built-in
|
|
355
|
+
# LiveKit audio clips; null disables it.
|
|
356
|
+
sig do
|
|
357
|
+
returns(
|
|
358
|
+
T.nilable(
|
|
359
|
+
Revox::Models::AssistantCreateResponse::Assistant::ThinkingSound::TaggedSymbol
|
|
360
|
+
)
|
|
361
|
+
)
|
|
362
|
+
end
|
|
363
|
+
attr_accessor :thinking_sound
|
|
364
|
+
|
|
365
|
+
# Probability [0..1] that the thinking sound plays on any given turn; otherwise
|
|
366
|
+
# the agent is silent while thinking.
|
|
367
|
+
sig { returns(Float) }
|
|
368
|
+
attr_accessor :thinking_sound_probability
|
|
369
|
+
|
|
370
|
+
# Volume of the thinking sound (0 = silent, 1 = max).
|
|
371
|
+
sig { returns(Float) }
|
|
372
|
+
attr_accessor :thinking_sound_volume
|
|
373
|
+
|
|
162
374
|
# Phone number to transfer calls to when users request to speak to a human agent.
|
|
163
375
|
sig { returns(T.nilable(String)) }
|
|
164
376
|
attr_accessor :transfer_phone_number
|
|
165
377
|
|
|
378
|
+
sig do
|
|
379
|
+
returns(
|
|
380
|
+
Revox::Models::AssistantCreateResponse::Assistant::Type::TaggedSymbol
|
|
381
|
+
)
|
|
382
|
+
end
|
|
383
|
+
attr_accessor :type
|
|
384
|
+
|
|
166
385
|
sig { returns(T.anything) }
|
|
167
386
|
attr_accessor :updated_at
|
|
168
387
|
|
|
@@ -188,10 +407,57 @@ module Revox
|
|
|
188
407
|
sig { returns(T.nilable(String)) }
|
|
189
408
|
attr_accessor :voicemail_message
|
|
190
409
|
|
|
410
|
+
# Prompt / instructions for the voicemail SMS. Supports {{variable}} placeholders.
|
|
411
|
+
# When null, no SMS is sent on voicemail.
|
|
412
|
+
sig { returns(T.nilable(String)) }
|
|
413
|
+
attr_accessor :voicemail_sms_prompt
|
|
414
|
+
|
|
415
|
+
# Warm transfer only: instructions for the supervisor handoff summary; null when
|
|
416
|
+
# not configured or cold transfer.
|
|
417
|
+
sig { returns(T.nilable(String)) }
|
|
418
|
+
attr_accessor :warm_transfer_summary_instructions
|
|
419
|
+
|
|
191
420
|
# The webhook URL to call when the call is completed.
|
|
192
421
|
sig { returns(T.nilable(String)) }
|
|
193
422
|
attr_accessor :webhook_url
|
|
194
423
|
|
|
424
|
+
sig do
|
|
425
|
+
returns(
|
|
426
|
+
T.nilable(Revox::Models::AssistantCreateResponse::Assistant::Zoho)
|
|
427
|
+
)
|
|
428
|
+
end
|
|
429
|
+
attr_reader :zoho
|
|
430
|
+
|
|
431
|
+
sig do
|
|
432
|
+
params(
|
|
433
|
+
zoho:
|
|
434
|
+
T.nilable(
|
|
435
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::OrHash
|
|
436
|
+
)
|
|
437
|
+
).void
|
|
438
|
+
end
|
|
439
|
+
attr_writer :zoho
|
|
440
|
+
|
|
441
|
+
# The user who created the assistant.
|
|
442
|
+
sig do
|
|
443
|
+
returns(
|
|
444
|
+
T.nilable(
|
|
445
|
+
Revox::Models::AssistantCreateResponse::Assistant::CreatedBy
|
|
446
|
+
)
|
|
447
|
+
)
|
|
448
|
+
end
|
|
449
|
+
attr_reader :created_by
|
|
450
|
+
|
|
451
|
+
sig do
|
|
452
|
+
params(
|
|
453
|
+
created_by:
|
|
454
|
+
T.nilable(
|
|
455
|
+
Revox::Models::AssistantCreateResponse::Assistant::CreatedBy::OrHash
|
|
456
|
+
)
|
|
457
|
+
).void
|
|
458
|
+
end
|
|
459
|
+
attr_writer :created_by
|
|
460
|
+
|
|
195
461
|
sig do
|
|
196
462
|
returns(
|
|
197
463
|
T.nilable(
|
|
@@ -213,6 +479,12 @@ module Revox
|
|
|
213
479
|
end
|
|
214
480
|
attr_writer :faq_items
|
|
215
481
|
|
|
482
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
483
|
+
attr_reader :is_realestate_assistant
|
|
484
|
+
|
|
485
|
+
sig { params(is_realestate_assistant: T::Boolean).void }
|
|
486
|
+
attr_writer :is_realestate_assistant
|
|
487
|
+
|
|
216
488
|
sig { returns(T.nilable(Float)) }
|
|
217
489
|
attr_reader :pending_faq_count
|
|
218
490
|
|
|
@@ -222,10 +494,18 @@ module Revox
|
|
|
222
494
|
sig do
|
|
223
495
|
params(
|
|
224
496
|
id: String,
|
|
497
|
+
after_call_sms_outcomes:
|
|
498
|
+
T.nilable(
|
|
499
|
+
T::Array[
|
|
500
|
+
Revox::Models::AssistantCreateResponse::Assistant::AfterCallSMSOutcome::OrSymbol
|
|
501
|
+
]
|
|
502
|
+
),
|
|
503
|
+
after_call_sms_prompt: T.nilable(String),
|
|
225
504
|
background_sound:
|
|
226
505
|
T.nilable(
|
|
227
506
|
Revox::Models::AssistantCreateResponse::Assistant::BackgroundSound::OrSymbol
|
|
228
507
|
),
|
|
508
|
+
background_sound_volume: Float,
|
|
229
509
|
calendly:
|
|
230
510
|
T.nilable(
|
|
231
511
|
Revox::Models::AssistantCreateResponse::Assistant::Calendly::OrHash
|
|
@@ -234,81 +514,217 @@ module Revox
|
|
|
234
514
|
T.nilable(
|
|
235
515
|
Revox::Models::AssistantCreateResponse::Assistant::CallRetryConfig::OrHash
|
|
236
516
|
),
|
|
517
|
+
cartesia_dictionary_pronunciation_id: T.nilable(String),
|
|
237
518
|
created_at: T.anything,
|
|
519
|
+
custom_tools:
|
|
520
|
+
T.nilable(
|
|
521
|
+
T::Array[
|
|
522
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::OrHash
|
|
523
|
+
]
|
|
524
|
+
),
|
|
525
|
+
email_notification_address: T.nilable(String),
|
|
526
|
+
email_notification_language:
|
|
527
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationLanguage::OrSymbol,
|
|
528
|
+
email_notification_outcomes:
|
|
529
|
+
T.nilable(
|
|
530
|
+
T::Array[
|
|
531
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationOutcome::OrSymbol
|
|
532
|
+
]
|
|
533
|
+
),
|
|
238
534
|
end_of_call_sentence: T.nilable(String),
|
|
239
535
|
first_sentence: T.nilable(String),
|
|
240
536
|
first_sentence_delay_ms: Integer,
|
|
241
537
|
first_sentence_mode:
|
|
242
538
|
Revox::Models::AssistantCreateResponse::Assistant::FirstSentenceMode::OrSymbol,
|
|
539
|
+
from_phone_number: T.nilable(String),
|
|
540
|
+
human_transfer_mode:
|
|
541
|
+
T.nilable(
|
|
542
|
+
Revox::Models::AssistantCreateResponse::Assistant::HumanTransferMode::OrSymbol
|
|
543
|
+
),
|
|
243
544
|
ivr_navigation_enabled: T::Boolean,
|
|
244
545
|
llm_model:
|
|
245
546
|
T.any(
|
|
246
547
|
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember0::OrHash,
|
|
247
|
-
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember1::OrHash
|
|
548
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember1::OrHash,
|
|
549
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember2::OrHash,
|
|
550
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember3::OrHash
|
|
248
551
|
),
|
|
552
|
+
logo_url: T.nilable(String),
|
|
249
553
|
max_call_duration_secs: Float,
|
|
554
|
+
max_duration_end_message: T.nilable(String),
|
|
250
555
|
name: String,
|
|
251
556
|
organization_id: String,
|
|
557
|
+
position:
|
|
558
|
+
T.nilable(
|
|
559
|
+
Revox::Models::AssistantCreateResponse::Assistant::Position::OrHash
|
|
560
|
+
),
|
|
252
561
|
prompt: String,
|
|
562
|
+
prompt_flow:
|
|
563
|
+
T.nilable(
|
|
564
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::OrHash
|
|
565
|
+
),
|
|
566
|
+
slack:
|
|
567
|
+
T.nilable(
|
|
568
|
+
Revox::Models::AssistantCreateResponse::Assistant::Slack::OrHash
|
|
569
|
+
),
|
|
570
|
+
sms_enabled: T::Boolean,
|
|
571
|
+
sms_template: T.nilable(String),
|
|
253
572
|
structured_output_config:
|
|
254
573
|
T.nilable(
|
|
255
574
|
T::Array[
|
|
256
575
|
Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig::OrHash
|
|
257
576
|
]
|
|
258
577
|
),
|
|
578
|
+
structured_output_prompt: T.nilable(String),
|
|
579
|
+
stt_context:
|
|
580
|
+
T.nilable(
|
|
581
|
+
Revox::Models::AssistantCreateResponse::Assistant::SttContext::OrHash
|
|
582
|
+
),
|
|
583
|
+
stt_model:
|
|
584
|
+
Revox::Models::AssistantCreateResponse::Assistant::SttModel::OrSymbol,
|
|
585
|
+
thinking_sound:
|
|
586
|
+
T.nilable(
|
|
587
|
+
Revox::Models::AssistantCreateResponse::Assistant::ThinkingSound::OrSymbol
|
|
588
|
+
),
|
|
589
|
+
thinking_sound_probability: Float,
|
|
590
|
+
thinking_sound_volume: Float,
|
|
259
591
|
transfer_phone_number: T.nilable(String),
|
|
592
|
+
type:
|
|
593
|
+
Revox::Models::AssistantCreateResponse::Assistant::Type::OrSymbol,
|
|
260
594
|
updated_at: T.anything,
|
|
261
595
|
voice:
|
|
262
596
|
T.nilable(
|
|
263
597
|
Revox::Models::AssistantCreateResponse::Assistant::Voice::OrHash
|
|
264
598
|
),
|
|
265
599
|
voicemail_message: T.nilable(String),
|
|
600
|
+
voicemail_sms_prompt: T.nilable(String),
|
|
601
|
+
warm_transfer_summary_instructions: T.nilable(String),
|
|
266
602
|
webhook_url: T.nilable(String),
|
|
603
|
+
zoho:
|
|
604
|
+
T.nilable(
|
|
605
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::OrHash
|
|
606
|
+
),
|
|
607
|
+
created_by:
|
|
608
|
+
T.nilable(
|
|
609
|
+
Revox::Models::AssistantCreateResponse::Assistant::CreatedBy::OrHash
|
|
610
|
+
),
|
|
267
611
|
faq_items:
|
|
268
612
|
T::Array[
|
|
269
613
|
Revox::Models::AssistantCreateResponse::Assistant::FaqItem::OrHash
|
|
270
614
|
],
|
|
615
|
+
is_realestate_assistant: T::Boolean,
|
|
271
616
|
pending_faq_count: Float
|
|
272
617
|
).returns(T.attached_class)
|
|
273
618
|
end
|
|
274
619
|
def self.new(
|
|
275
620
|
id:,
|
|
276
|
-
#
|
|
277
|
-
#
|
|
621
|
+
# Which call outcomes trigger the after-call SMS. When empty or null, no
|
|
622
|
+
# after-call SMS is sent. Use "none" when outcome is null.
|
|
623
|
+
after_call_sms_outcomes:,
|
|
624
|
+
# Prompt / instructions for the after-call SMS. Supports {{variable}}
|
|
625
|
+
# placeholders. When null, no after-call SMS is sent.
|
|
626
|
+
after_call_sms_prompt:,
|
|
627
|
+
# Ambient background sound to play during the call. null disables it.
|
|
278
628
|
background_sound:,
|
|
629
|
+
# Volume of the ambient background sound (0 = silent, 1 = max).
|
|
630
|
+
background_sound_volume:,
|
|
279
631
|
calendly:,
|
|
280
632
|
# Configuration for call retry behavior including time windows, delays, and max
|
|
281
633
|
# iterations. If not provided, defaults will be used.
|
|
282
634
|
call_retry_config:,
|
|
635
|
+
# Optional Cartesia pronunciation dictionary ID linked to this assistant.
|
|
636
|
+
cartesia_dictionary_pronunciation_id:,
|
|
283
637
|
created_at:,
|
|
638
|
+
custom_tools:,
|
|
639
|
+
# Email address(es) to receive notifications when a call ends with a matching
|
|
640
|
+
# outcome. Accepts a single email or a comma-separated list (e.g. "alice@x.com,
|
|
641
|
+
# bob@y.com").
|
|
642
|
+
email_notification_address:,
|
|
643
|
+
# The language used for the notification email content. One of "en" or "fr".
|
|
644
|
+
email_notification_language:,
|
|
645
|
+
# Which call outcomes trigger an email notification. E.g. ["interested",
|
|
646
|
+
# "completed", "none"]. Use "none" when outcome is null.
|
|
647
|
+
email_notification_outcomes:,
|
|
284
648
|
end_of_call_sentence:,
|
|
285
649
|
first_sentence:,
|
|
286
650
|
# Delay in milliseconds before speaking the first sentence. Default: 400.
|
|
287
651
|
first_sentence_delay_ms:,
|
|
288
652
|
first_sentence_mode:,
|
|
653
|
+
# Override the default outbound phone number for calls placed with this assistant.
|
|
654
|
+
# When null, the organization's default phone number is used.
|
|
655
|
+
from_phone_number:,
|
|
656
|
+
# Warm or cold transfer when transfer_phone_number is set; null when transfer is
|
|
657
|
+
# not configured.
|
|
658
|
+
human_transfer_mode:,
|
|
289
659
|
# Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
290
660
|
# skip turns to navigate phone menus.
|
|
291
661
|
ivr_navigation_enabled:,
|
|
292
662
|
llm_model:,
|
|
663
|
+
# Public URL of the brand logo shown on the assistant's demo page. Null when
|
|
664
|
+
# unset.
|
|
665
|
+
logo_url:,
|
|
293
666
|
# The maximum duration of the call in seconds. This is the maximum time the call
|
|
294
667
|
# will be allowed to run.
|
|
295
668
|
max_call_duration_secs:,
|
|
669
|
+
# Optional message the agent will say, without being interruptible, when the call
|
|
670
|
+
# reaches its max duration. Kept short so it fits inside the farewell buffer. If
|
|
671
|
+
# null, the call ends silently.
|
|
672
|
+
max_duration_end_message:,
|
|
296
673
|
name:,
|
|
297
674
|
organization_id:,
|
|
675
|
+
position:,
|
|
298
676
|
prompt:,
|
|
677
|
+
prompt_flow:,
|
|
678
|
+
slack:,
|
|
679
|
+
# Enable SMS tool during calls. When enabled, the agent can send SMS messages to
|
|
680
|
+
# the user on the call.
|
|
681
|
+
sms_enabled:,
|
|
682
|
+
# Hardcoded SMS template to send during calls. When set, this exact text is sent
|
|
683
|
+
# instead of letting the agent generate the message. Supports {{variable}}
|
|
684
|
+
# placeholders.
|
|
685
|
+
sms_template:,
|
|
299
686
|
# The structured output config to use for the call. This is used to extract the
|
|
300
687
|
# data from the call (like email, name, company name, etc.).
|
|
301
688
|
structured_output_config:,
|
|
689
|
+
# Custom prompt for structured data extraction. If not provided, a default prompt
|
|
690
|
+
# is used. Available variables: {{transcript}}, {{call_direction}},
|
|
691
|
+
# {{user_phone_number}}, {{agent_phone_number}}.
|
|
692
|
+
structured_output_prompt:,
|
|
693
|
+
# Assistant-level speech-to-text context: structured `general` key/value pairs
|
|
694
|
+
# plus a list of domain `terms`. Prompt-derived context is merged in without
|
|
695
|
+
# replacing existing entries.
|
|
696
|
+
stt_context:,
|
|
697
|
+
# Transcriber (speech-to-text) model used for the assistant.
|
|
698
|
+
stt_model:,
|
|
699
|
+
# Audio clip to play while the agent is processing a response. One of the built-in
|
|
700
|
+
# LiveKit audio clips; null disables it.
|
|
701
|
+
thinking_sound:,
|
|
702
|
+
# Probability [0..1] that the thinking sound plays on any given turn; otherwise
|
|
703
|
+
# the agent is silent while thinking.
|
|
704
|
+
thinking_sound_probability:,
|
|
705
|
+
# Volume of the thinking sound (0 = silent, 1 = max).
|
|
706
|
+
thinking_sound_volume:,
|
|
302
707
|
# Phone number to transfer calls to when users request to speak to a human agent.
|
|
303
708
|
transfer_phone_number:,
|
|
709
|
+
type:,
|
|
304
710
|
updated_at:,
|
|
305
711
|
voice:,
|
|
306
712
|
# If set, when voicemail is detected the agent will speak this message then hang
|
|
307
713
|
# up; if null, hang up immediately.
|
|
308
714
|
voicemail_message:,
|
|
715
|
+
# Prompt / instructions for the voicemail SMS. Supports {{variable}} placeholders.
|
|
716
|
+
# When null, no SMS is sent on voicemail.
|
|
717
|
+
voicemail_sms_prompt:,
|
|
718
|
+
# Warm transfer only: instructions for the supervisor handoff summary; null when
|
|
719
|
+
# not configured or cold transfer.
|
|
720
|
+
warm_transfer_summary_instructions:,
|
|
309
721
|
# The webhook URL to call when the call is completed.
|
|
310
722
|
webhook_url:,
|
|
723
|
+
zoho:,
|
|
724
|
+
# The user who created the assistant.
|
|
725
|
+
created_by: nil,
|
|
311
726
|
faq_items: nil,
|
|
727
|
+
is_realestate_assistant: nil,
|
|
312
728
|
pending_faq_count: nil
|
|
313
729
|
)
|
|
314
730
|
end
|
|
@@ -317,10 +733,18 @@ module Revox
|
|
|
317
733
|
override.returns(
|
|
318
734
|
{
|
|
319
735
|
id: String,
|
|
736
|
+
after_call_sms_outcomes:
|
|
737
|
+
T.nilable(
|
|
738
|
+
T::Array[
|
|
739
|
+
Revox::Models::AssistantCreateResponse::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
740
|
+
]
|
|
741
|
+
),
|
|
742
|
+
after_call_sms_prompt: T.nilable(String),
|
|
320
743
|
background_sound:
|
|
321
744
|
T.nilable(
|
|
322
745
|
Revox::Models::AssistantCreateResponse::Assistant::BackgroundSound::TaggedSymbol
|
|
323
746
|
),
|
|
747
|
+
background_sound_volume: Float,
|
|
324
748
|
calendly:
|
|
325
749
|
T.nilable(
|
|
326
750
|
Revox::Models::AssistantCreateResponse::Assistant::Calendly
|
|
@@ -329,37 +753,100 @@ module Revox
|
|
|
329
753
|
T.nilable(
|
|
330
754
|
Revox::Models::AssistantCreateResponse::Assistant::CallRetryConfig
|
|
331
755
|
),
|
|
756
|
+
cartesia_dictionary_pronunciation_id: T.nilable(String),
|
|
332
757
|
created_at: T.anything,
|
|
758
|
+
custom_tools:
|
|
759
|
+
T.nilable(
|
|
760
|
+
T::Array[
|
|
761
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool
|
|
762
|
+
]
|
|
763
|
+
),
|
|
764
|
+
email_notification_address: T.nilable(String),
|
|
765
|
+
email_notification_language:
|
|
766
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationLanguage::TaggedSymbol,
|
|
767
|
+
email_notification_outcomes:
|
|
768
|
+
T.nilable(
|
|
769
|
+
T::Array[
|
|
770
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
771
|
+
]
|
|
772
|
+
),
|
|
333
773
|
end_of_call_sentence: T.nilable(String),
|
|
334
774
|
first_sentence: T.nilable(String),
|
|
335
775
|
first_sentence_delay_ms: Integer,
|
|
336
776
|
first_sentence_mode:
|
|
337
777
|
Revox::Models::AssistantCreateResponse::Assistant::FirstSentenceMode::TaggedSymbol,
|
|
778
|
+
from_phone_number: T.nilable(String),
|
|
779
|
+
human_transfer_mode:
|
|
780
|
+
T.nilable(
|
|
781
|
+
Revox::Models::AssistantCreateResponse::Assistant::HumanTransferMode::TaggedSymbol
|
|
782
|
+
),
|
|
338
783
|
ivr_navigation_enabled: T::Boolean,
|
|
339
784
|
llm_model:
|
|
340
785
|
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::Variants,
|
|
786
|
+
logo_url: T.nilable(String),
|
|
341
787
|
max_call_duration_secs: Float,
|
|
788
|
+
max_duration_end_message: T.nilable(String),
|
|
342
789
|
name: String,
|
|
343
790
|
organization_id: String,
|
|
791
|
+
position:
|
|
792
|
+
T.nilable(
|
|
793
|
+
Revox::Models::AssistantCreateResponse::Assistant::Position
|
|
794
|
+
),
|
|
344
795
|
prompt: String,
|
|
796
|
+
prompt_flow:
|
|
797
|
+
T.nilable(
|
|
798
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow
|
|
799
|
+
),
|
|
800
|
+
slack:
|
|
801
|
+
T.nilable(
|
|
802
|
+
Revox::Models::AssistantCreateResponse::Assistant::Slack
|
|
803
|
+
),
|
|
804
|
+
sms_enabled: T::Boolean,
|
|
805
|
+
sms_template: T.nilable(String),
|
|
345
806
|
structured_output_config:
|
|
346
807
|
T.nilable(
|
|
347
808
|
T::Array[
|
|
348
809
|
Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig
|
|
349
810
|
]
|
|
350
811
|
),
|
|
812
|
+
structured_output_prompt: T.nilable(String),
|
|
813
|
+
stt_context:
|
|
814
|
+
T.nilable(
|
|
815
|
+
Revox::Models::AssistantCreateResponse::Assistant::SttContext
|
|
816
|
+
),
|
|
817
|
+
stt_model:
|
|
818
|
+
Revox::Models::AssistantCreateResponse::Assistant::SttModel::TaggedSymbol,
|
|
819
|
+
thinking_sound:
|
|
820
|
+
T.nilable(
|
|
821
|
+
Revox::Models::AssistantCreateResponse::Assistant::ThinkingSound::TaggedSymbol
|
|
822
|
+
),
|
|
823
|
+
thinking_sound_probability: Float,
|
|
824
|
+
thinking_sound_volume: Float,
|
|
351
825
|
transfer_phone_number: T.nilable(String),
|
|
826
|
+
type:
|
|
827
|
+
Revox::Models::AssistantCreateResponse::Assistant::Type::TaggedSymbol,
|
|
352
828
|
updated_at: T.anything,
|
|
353
829
|
voice:
|
|
354
830
|
T.nilable(
|
|
355
831
|
Revox::Models::AssistantCreateResponse::Assistant::Voice
|
|
356
832
|
),
|
|
357
833
|
voicemail_message: T.nilable(String),
|
|
834
|
+
voicemail_sms_prompt: T.nilable(String),
|
|
835
|
+
warm_transfer_summary_instructions: T.nilable(String),
|
|
358
836
|
webhook_url: T.nilable(String),
|
|
837
|
+
zoho:
|
|
838
|
+
T.nilable(
|
|
839
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho
|
|
840
|
+
),
|
|
841
|
+
created_by:
|
|
842
|
+
T.nilable(
|
|
843
|
+
Revox::Models::AssistantCreateResponse::Assistant::CreatedBy
|
|
844
|
+
),
|
|
359
845
|
faq_items:
|
|
360
846
|
T::Array[
|
|
361
847
|
Revox::Models::AssistantCreateResponse::Assistant::FaqItem
|
|
362
848
|
],
|
|
849
|
+
is_realestate_assistant: T::Boolean,
|
|
363
850
|
pending_faq_count: Float
|
|
364
851
|
}
|
|
365
852
|
)
|
|
@@ -367,30 +854,63 @@ module Revox
|
|
|
367
854
|
def to_hash
|
|
368
855
|
end
|
|
369
856
|
|
|
370
|
-
|
|
371
|
-
# your AI agent is in an office.
|
|
372
|
-
module BackgroundSound
|
|
857
|
+
module AfterCallSMSOutcome
|
|
373
858
|
extend Revox::Internal::Type::Enum
|
|
374
859
|
|
|
375
860
|
TaggedSymbol =
|
|
376
861
|
T.type_alias do
|
|
377
862
|
T.all(
|
|
378
863
|
Symbol,
|
|
379
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
864
|
+
Revox::Models::AssistantCreateResponse::Assistant::AfterCallSMSOutcome
|
|
380
865
|
)
|
|
381
866
|
end
|
|
382
867
|
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
383
868
|
|
|
384
|
-
|
|
869
|
+
NOT_INTERESTED =
|
|
385
870
|
T.let(
|
|
386
|
-
:
|
|
387
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
871
|
+
:not_interested,
|
|
872
|
+
Revox::Models::AssistantCreateResponse::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
873
|
+
)
|
|
874
|
+
INTERESTED =
|
|
875
|
+
T.let(
|
|
876
|
+
:interested,
|
|
877
|
+
Revox::Models::AssistantCreateResponse::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
878
|
+
)
|
|
879
|
+
COMPLETED =
|
|
880
|
+
T.let(
|
|
881
|
+
:completed,
|
|
882
|
+
Revox::Models::AssistantCreateResponse::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
883
|
+
)
|
|
884
|
+
REQUESTED_CALLBACK_LATER =
|
|
885
|
+
T.let(
|
|
886
|
+
:requested_callback_later,
|
|
887
|
+
Revox::Models::AssistantCreateResponse::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
888
|
+
)
|
|
889
|
+
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
890
|
+
T.let(
|
|
891
|
+
:requested_callback_new_number,
|
|
892
|
+
Revox::Models::AssistantCreateResponse::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
893
|
+
)
|
|
894
|
+
DO_NOT_CONTACT =
|
|
895
|
+
T.let(
|
|
896
|
+
:do_not_contact,
|
|
897
|
+
Revox::Models::AssistantCreateResponse::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
898
|
+
)
|
|
899
|
+
AI_AVERSE =
|
|
900
|
+
T.let(
|
|
901
|
+
:ai_averse,
|
|
902
|
+
Revox::Models::AssistantCreateResponse::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
903
|
+
)
|
|
904
|
+
NONE =
|
|
905
|
+
T.let(
|
|
906
|
+
:none,
|
|
907
|
+
Revox::Models::AssistantCreateResponse::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
388
908
|
)
|
|
389
909
|
|
|
390
910
|
sig do
|
|
391
911
|
override.returns(
|
|
392
912
|
T::Array[
|
|
393
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
913
|
+
Revox::Models::AssistantCreateResponse::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
394
914
|
]
|
|
395
915
|
)
|
|
396
916
|
end
|
|
@@ -398,16 +918,46 @@ module Revox
|
|
|
398
918
|
end
|
|
399
919
|
end
|
|
400
920
|
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
T.any(
|
|
405
|
-
Revox::Models::AssistantCreateResponse::Assistant::Calendly,
|
|
406
|
-
Revox::Internal::AnyHash
|
|
407
|
-
)
|
|
408
|
-
end
|
|
921
|
+
# Ambient background sound to play during the call. null disables it.
|
|
922
|
+
module BackgroundSound
|
|
923
|
+
extend Revox::Internal::Type::Enum
|
|
409
924
|
|
|
410
|
-
|
|
925
|
+
TaggedSymbol =
|
|
926
|
+
T.type_alias do
|
|
927
|
+
T.all(
|
|
928
|
+
Symbol,
|
|
929
|
+
Revox::Models::AssistantCreateResponse::Assistant::BackgroundSound
|
|
930
|
+
)
|
|
931
|
+
end
|
|
932
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
933
|
+
|
|
934
|
+
AUDIO_OFFICE_OGG =
|
|
935
|
+
T.let(
|
|
936
|
+
:"audio/office.ogg",
|
|
937
|
+
Revox::Models::AssistantCreateResponse::Assistant::BackgroundSound::TaggedSymbol
|
|
938
|
+
)
|
|
939
|
+
|
|
940
|
+
sig do
|
|
941
|
+
override.returns(
|
|
942
|
+
T::Array[
|
|
943
|
+
Revox::Models::AssistantCreateResponse::Assistant::BackgroundSound::TaggedSymbol
|
|
944
|
+
]
|
|
945
|
+
)
|
|
946
|
+
end
|
|
947
|
+
def self.values
|
|
948
|
+
end
|
|
949
|
+
end
|
|
950
|
+
|
|
951
|
+
class Calendly < Revox::Internal::Type::BaseModel
|
|
952
|
+
OrHash =
|
|
953
|
+
T.type_alias do
|
|
954
|
+
T.any(
|
|
955
|
+
Revox::Models::AssistantCreateResponse::Assistant::Calendly,
|
|
956
|
+
Revox::Internal::AnyHash
|
|
957
|
+
)
|
|
958
|
+
end
|
|
959
|
+
|
|
960
|
+
# The connection ID representing the link between your Calendly account and Revox.
|
|
411
961
|
sig { returns(String) }
|
|
412
962
|
attr_accessor :connection_id
|
|
413
963
|
|
|
@@ -446,6 +996,24 @@ module Revox
|
|
|
446
996
|
)
|
|
447
997
|
end
|
|
448
998
|
|
|
999
|
+
# Days of the week when calls are allowed, in the recipient's timezone. Default:
|
|
1000
|
+
# Monday through Friday.
|
|
1001
|
+
sig do
|
|
1002
|
+
returns(
|
|
1003
|
+
T::Array[
|
|
1004
|
+
Revox::Models::AssistantCreateResponse::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1005
|
+
]
|
|
1006
|
+
)
|
|
1007
|
+
end
|
|
1008
|
+
attr_accessor :allowed_days
|
|
1009
|
+
|
|
1010
|
+
# If true and max_retry_attempts >= 2, attempt #2 fires immediately (skipping
|
|
1011
|
+
# retry_delay_seconds) when attempt #1 didn't reach a human.
|
|
1012
|
+
# Calling-window/allowed-days checks still apply. Only affects the 1→2 transition.
|
|
1013
|
+
# Default: false.
|
|
1014
|
+
sig { returns(T::Boolean) }
|
|
1015
|
+
attr_accessor :call_twice_in_a_row
|
|
1016
|
+
|
|
449
1017
|
sig do
|
|
450
1018
|
returns(
|
|
451
1019
|
T::Array[
|
|
@@ -469,6 +1037,11 @@ module Revox
|
|
|
469
1037
|
# iterations. If not provided, defaults will be used.
|
|
470
1038
|
sig do
|
|
471
1039
|
params(
|
|
1040
|
+
allowed_days:
|
|
1041
|
+
T::Array[
|
|
1042
|
+
Revox::Models::AssistantCreateResponse::Assistant::CallRetryConfig::AllowedDay::OrSymbol
|
|
1043
|
+
],
|
|
1044
|
+
call_twice_in_a_row: T::Boolean,
|
|
472
1045
|
calling_windows:
|
|
473
1046
|
T::Array[
|
|
474
1047
|
Revox::Models::AssistantCreateResponse::Assistant::CallRetryConfig::CallingWindow::OrHash
|
|
@@ -478,6 +1051,14 @@ module Revox
|
|
|
478
1051
|
).returns(T.attached_class)
|
|
479
1052
|
end
|
|
480
1053
|
def self.new(
|
|
1054
|
+
# Days of the week when calls are allowed, in the recipient's timezone. Default:
|
|
1055
|
+
# Monday through Friday.
|
|
1056
|
+
allowed_days:,
|
|
1057
|
+
# If true and max_retry_attempts >= 2, attempt #2 fires immediately (skipping
|
|
1058
|
+
# retry_delay_seconds) when attempt #1 didn't reach a human.
|
|
1059
|
+
# Calling-window/allowed-days checks still apply. Only affects the 1→2 transition.
|
|
1060
|
+
# Default: false.
|
|
1061
|
+
call_twice_in_a_row:,
|
|
481
1062
|
calling_windows:,
|
|
482
1063
|
# Maximum number of call retry attempts. Default: 3.
|
|
483
1064
|
max_retry_attempts:,
|
|
@@ -491,6 +1072,11 @@ module Revox
|
|
|
491
1072
|
sig do
|
|
492
1073
|
override.returns(
|
|
493
1074
|
{
|
|
1075
|
+
allowed_days:
|
|
1076
|
+
T::Array[
|
|
1077
|
+
Revox::Models::AssistantCreateResponse::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1078
|
+
],
|
|
1079
|
+
call_twice_in_a_row: T::Boolean,
|
|
494
1080
|
calling_windows:
|
|
495
1081
|
T::Array[
|
|
496
1082
|
Revox::Models::AssistantCreateResponse::Assistant::CallRetryConfig::CallingWindow
|
|
@@ -503,6 +1089,65 @@ module Revox
|
|
|
503
1089
|
def to_hash
|
|
504
1090
|
end
|
|
505
1091
|
|
|
1092
|
+
module AllowedDay
|
|
1093
|
+
extend Revox::Internal::Type::Enum
|
|
1094
|
+
|
|
1095
|
+
TaggedSymbol =
|
|
1096
|
+
T.type_alias do
|
|
1097
|
+
T.all(
|
|
1098
|
+
Symbol,
|
|
1099
|
+
Revox::Models::AssistantCreateResponse::Assistant::CallRetryConfig::AllowedDay
|
|
1100
|
+
)
|
|
1101
|
+
end
|
|
1102
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1103
|
+
|
|
1104
|
+
MONDAY =
|
|
1105
|
+
T.let(
|
|
1106
|
+
:monday,
|
|
1107
|
+
Revox::Models::AssistantCreateResponse::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1108
|
+
)
|
|
1109
|
+
TUESDAY =
|
|
1110
|
+
T.let(
|
|
1111
|
+
:tuesday,
|
|
1112
|
+
Revox::Models::AssistantCreateResponse::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1113
|
+
)
|
|
1114
|
+
WEDNESDAY =
|
|
1115
|
+
T.let(
|
|
1116
|
+
:wednesday,
|
|
1117
|
+
Revox::Models::AssistantCreateResponse::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1118
|
+
)
|
|
1119
|
+
THURSDAY =
|
|
1120
|
+
T.let(
|
|
1121
|
+
:thursday,
|
|
1122
|
+
Revox::Models::AssistantCreateResponse::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1123
|
+
)
|
|
1124
|
+
FRIDAY =
|
|
1125
|
+
T.let(
|
|
1126
|
+
:friday,
|
|
1127
|
+
Revox::Models::AssistantCreateResponse::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1128
|
+
)
|
|
1129
|
+
SATURDAY =
|
|
1130
|
+
T.let(
|
|
1131
|
+
:saturday,
|
|
1132
|
+
Revox::Models::AssistantCreateResponse::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1133
|
+
)
|
|
1134
|
+
SUNDAY =
|
|
1135
|
+
T.let(
|
|
1136
|
+
:sunday,
|
|
1137
|
+
Revox::Models::AssistantCreateResponse::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1138
|
+
)
|
|
1139
|
+
|
|
1140
|
+
sig do
|
|
1141
|
+
override.returns(
|
|
1142
|
+
T::Array[
|
|
1143
|
+
Revox::Models::AssistantCreateResponse::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1144
|
+
]
|
|
1145
|
+
)
|
|
1146
|
+
end
|
|
1147
|
+
def self.values
|
|
1148
|
+
end
|
|
1149
|
+
end
|
|
1150
|
+
|
|
506
1151
|
class CallingWindow < Revox::Internal::Type::BaseModel
|
|
507
1152
|
OrHash =
|
|
508
1153
|
T.type_alias do
|
|
@@ -563,124 +1208,287 @@ module Revox
|
|
|
563
1208
|
end
|
|
564
1209
|
end
|
|
565
1210
|
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
TaggedSymbol =
|
|
1211
|
+
class CustomTool < Revox::Internal::Type::BaseModel
|
|
1212
|
+
OrHash =
|
|
570
1213
|
T.type_alias do
|
|
571
|
-
T.
|
|
572
|
-
|
|
573
|
-
Revox::
|
|
1214
|
+
T.any(
|
|
1215
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool,
|
|
1216
|
+
Revox::Internal::AnyHash
|
|
574
1217
|
)
|
|
575
1218
|
end
|
|
576
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
577
1219
|
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
1220
|
+
# JSON body template for the request. Use quoted {{variable}} placeholders (e.g.
|
|
1221
|
+
# "{{name}}") for dynamic values
|
|
1222
|
+
sig { returns(T.nilable(String)) }
|
|
1223
|
+
attr_accessor :body_template
|
|
1224
|
+
|
|
1225
|
+
# Human-readable description of what the tool does, used by the LLM to decide when
|
|
1226
|
+
# to call it
|
|
1227
|
+
sig { returns(String) }
|
|
1228
|
+
attr_accessor :description
|
|
1229
|
+
|
|
1230
|
+
# HTTP headers to include in the request. Values support {{variable}} placeholders
|
|
1231
|
+
sig do
|
|
1232
|
+
returns(
|
|
1233
|
+
T::Array[
|
|
1234
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::Header
|
|
1235
|
+
]
|
|
582
1236
|
)
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
1237
|
+
end
|
|
1238
|
+
attr_accessor :headers
|
|
1239
|
+
|
|
1240
|
+
# Schema defining the parameters the LLM should extract from the conversation to
|
|
1241
|
+
# pass to this tool
|
|
1242
|
+
sig do
|
|
1243
|
+
returns(
|
|
1244
|
+
T::Array[
|
|
1245
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::InputSchema
|
|
1246
|
+
]
|
|
587
1247
|
)
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
1248
|
+
end
|
|
1249
|
+
attr_accessor :input_schema
|
|
1250
|
+
|
|
1251
|
+
# HTTP method to use when calling the API endpoint
|
|
1252
|
+
sig do
|
|
1253
|
+
returns(
|
|
1254
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::Method::TaggedSymbol
|
|
592
1255
|
)
|
|
1256
|
+
end
|
|
1257
|
+
attr_accessor :method_
|
|
1258
|
+
|
|
1259
|
+
# Unique tool name in lowercase_snake_case (e.g. check_inventory)
|
|
1260
|
+
sig { returns(String) }
|
|
1261
|
+
attr_accessor :name
|
|
593
1262
|
|
|
1263
|
+
# Query string parameters appended to the URL. Values support {{variable}}
|
|
1264
|
+
# placeholders
|
|
594
1265
|
sig do
|
|
595
|
-
|
|
1266
|
+
returns(
|
|
596
1267
|
T::Array[
|
|
597
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
1268
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::QueryParam
|
|
598
1269
|
]
|
|
599
1270
|
)
|
|
600
1271
|
end
|
|
601
|
-
|
|
1272
|
+
attr_accessor :query_params
|
|
1273
|
+
|
|
1274
|
+
# Full URL of the API endpoint. Supports {{variable}} placeholders for dynamic
|
|
1275
|
+
# values
|
|
1276
|
+
sig { returns(String) }
|
|
1277
|
+
attr_accessor :url
|
|
1278
|
+
|
|
1279
|
+
sig do
|
|
1280
|
+
params(
|
|
1281
|
+
body_template: T.nilable(String),
|
|
1282
|
+
description: String,
|
|
1283
|
+
headers:
|
|
1284
|
+
T::Array[
|
|
1285
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::Header::OrHash
|
|
1286
|
+
],
|
|
1287
|
+
input_schema:
|
|
1288
|
+
T::Array[
|
|
1289
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::InputSchema::OrHash
|
|
1290
|
+
],
|
|
1291
|
+
method_:
|
|
1292
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::Method::OrSymbol,
|
|
1293
|
+
name: String,
|
|
1294
|
+
query_params:
|
|
1295
|
+
T::Array[
|
|
1296
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::QueryParam::OrHash
|
|
1297
|
+
],
|
|
1298
|
+
url: String
|
|
1299
|
+
).returns(T.attached_class)
|
|
1300
|
+
end
|
|
1301
|
+
def self.new(
|
|
1302
|
+
# JSON body template for the request. Use quoted {{variable}} placeholders (e.g.
|
|
1303
|
+
# "{{name}}") for dynamic values
|
|
1304
|
+
body_template:,
|
|
1305
|
+
# Human-readable description of what the tool does, used by the LLM to decide when
|
|
1306
|
+
# to call it
|
|
1307
|
+
description:,
|
|
1308
|
+
# HTTP headers to include in the request. Values support {{variable}} placeholders
|
|
1309
|
+
headers:,
|
|
1310
|
+
# Schema defining the parameters the LLM should extract from the conversation to
|
|
1311
|
+
# pass to this tool
|
|
1312
|
+
input_schema:,
|
|
1313
|
+
# HTTP method to use when calling the API endpoint
|
|
1314
|
+
method_:,
|
|
1315
|
+
# Unique tool name in lowercase_snake_case (e.g. check_inventory)
|
|
1316
|
+
name:,
|
|
1317
|
+
# Query string parameters appended to the URL. Values support {{variable}}
|
|
1318
|
+
# placeholders
|
|
1319
|
+
query_params:,
|
|
1320
|
+
# Full URL of the API endpoint. Supports {{variable}} placeholders for dynamic
|
|
1321
|
+
# values
|
|
1322
|
+
url:
|
|
1323
|
+
)
|
|
602
1324
|
end
|
|
603
|
-
end
|
|
604
1325
|
|
|
605
|
-
|
|
606
|
-
|
|
1326
|
+
sig do
|
|
1327
|
+
override.returns(
|
|
1328
|
+
{
|
|
1329
|
+
body_template: T.nilable(String),
|
|
1330
|
+
description: String,
|
|
1331
|
+
headers:
|
|
1332
|
+
T::Array[
|
|
1333
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::Header
|
|
1334
|
+
],
|
|
1335
|
+
input_schema:
|
|
1336
|
+
T::Array[
|
|
1337
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::InputSchema
|
|
1338
|
+
],
|
|
1339
|
+
method_:
|
|
1340
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::Method::TaggedSymbol,
|
|
1341
|
+
name: String,
|
|
1342
|
+
query_params:
|
|
1343
|
+
T::Array[
|
|
1344
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::QueryParam
|
|
1345
|
+
],
|
|
1346
|
+
url: String
|
|
1347
|
+
}
|
|
1348
|
+
)
|
|
1349
|
+
end
|
|
1350
|
+
def to_hash
|
|
1351
|
+
end
|
|
607
1352
|
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
T.
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
1353
|
+
class Header < Revox::Internal::Type::BaseModel
|
|
1354
|
+
OrHash =
|
|
1355
|
+
T.type_alias do
|
|
1356
|
+
T.any(
|
|
1357
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::Header,
|
|
1358
|
+
Revox::Internal::AnyHash
|
|
1359
|
+
)
|
|
1360
|
+
end
|
|
1361
|
+
|
|
1362
|
+
sig { returns(String) }
|
|
1363
|
+
attr_accessor :key
|
|
1364
|
+
|
|
1365
|
+
sig { returns(String) }
|
|
1366
|
+
attr_accessor :value
|
|
1367
|
+
|
|
1368
|
+
sig { params(key: String, value: String).returns(T.attached_class) }
|
|
1369
|
+
def self.new(key:, value:)
|
|
614
1370
|
end
|
|
615
1371
|
|
|
616
|
-
|
|
1372
|
+
sig { override.returns({ key: String, value: String }) }
|
|
1373
|
+
def to_hash
|
|
1374
|
+
end
|
|
1375
|
+
end
|
|
1376
|
+
|
|
1377
|
+
class InputSchema < Revox::Internal::Type::BaseModel
|
|
617
1378
|
OrHash =
|
|
618
1379
|
T.type_alias do
|
|
619
1380
|
T.any(
|
|
620
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
1381
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::InputSchema,
|
|
621
1382
|
Revox::Internal::AnyHash
|
|
622
1383
|
)
|
|
623
1384
|
end
|
|
624
1385
|
|
|
1386
|
+
sig { returns(String) }
|
|
1387
|
+
attr_accessor :name
|
|
1388
|
+
|
|
1389
|
+
sig { returns(T::Boolean) }
|
|
1390
|
+
attr_accessor :required
|
|
1391
|
+
|
|
625
1392
|
sig do
|
|
626
1393
|
returns(
|
|
627
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
1394
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
628
1395
|
)
|
|
629
1396
|
end
|
|
630
|
-
attr_accessor :name
|
|
631
|
-
|
|
632
|
-
sig { returns(Symbol) }
|
|
633
1397
|
attr_accessor :type
|
|
634
1398
|
|
|
1399
|
+
sig { returns(T.nilable(String)) }
|
|
1400
|
+
attr_reader :description
|
|
1401
|
+
|
|
1402
|
+
sig { params(description: String).void }
|
|
1403
|
+
attr_writer :description
|
|
1404
|
+
|
|
1405
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
1406
|
+
attr_reader :enum_options
|
|
1407
|
+
|
|
1408
|
+
sig { params(enum_options: T::Array[String]).void }
|
|
1409
|
+
attr_writer :enum_options
|
|
1410
|
+
|
|
635
1411
|
sig do
|
|
636
1412
|
params(
|
|
637
|
-
name:
|
|
638
|
-
|
|
639
|
-
type:
|
|
1413
|
+
name: String,
|
|
1414
|
+
required: T::Boolean,
|
|
1415
|
+
type:
|
|
1416
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::InputSchema::Type::OrSymbol,
|
|
1417
|
+
description: String,
|
|
1418
|
+
enum_options: T::Array[String]
|
|
640
1419
|
).returns(T.attached_class)
|
|
641
1420
|
end
|
|
642
|
-
def self.new(
|
|
1421
|
+
def self.new(
|
|
1422
|
+
name:,
|
|
1423
|
+
required:,
|
|
1424
|
+
type:,
|
|
1425
|
+
description: nil,
|
|
1426
|
+
enum_options: nil
|
|
1427
|
+
)
|
|
643
1428
|
end
|
|
644
1429
|
|
|
645
1430
|
sig do
|
|
646
1431
|
override.returns(
|
|
647
1432
|
{
|
|
648
|
-
name:
|
|
649
|
-
|
|
650
|
-
type:
|
|
1433
|
+
name: String,
|
|
1434
|
+
required: T::Boolean,
|
|
1435
|
+
type:
|
|
1436
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::InputSchema::Type::TaggedSymbol,
|
|
1437
|
+
description: String,
|
|
1438
|
+
enum_options: T::Array[String]
|
|
651
1439
|
}
|
|
652
1440
|
)
|
|
653
1441
|
end
|
|
654
1442
|
def to_hash
|
|
655
1443
|
end
|
|
656
1444
|
|
|
657
|
-
module
|
|
1445
|
+
module Type
|
|
658
1446
|
extend Revox::Internal::Type::Enum
|
|
659
1447
|
|
|
660
1448
|
TaggedSymbol =
|
|
661
1449
|
T.type_alias do
|
|
662
1450
|
T.all(
|
|
663
1451
|
Symbol,
|
|
664
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
1452
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::InputSchema::Type
|
|
665
1453
|
)
|
|
666
1454
|
end
|
|
667
1455
|
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
668
1456
|
|
|
669
|
-
|
|
1457
|
+
STRING =
|
|
670
1458
|
T.let(
|
|
671
|
-
:
|
|
672
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
1459
|
+
:string,
|
|
1460
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
673
1461
|
)
|
|
674
|
-
|
|
1462
|
+
NUMBER =
|
|
675
1463
|
T.let(
|
|
676
|
-
:
|
|
677
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
1464
|
+
:number,
|
|
1465
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
1466
|
+
)
|
|
1467
|
+
BOOLEAN =
|
|
1468
|
+
T.let(
|
|
1469
|
+
:boolean,
|
|
1470
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
1471
|
+
)
|
|
1472
|
+
ENUM =
|
|
1473
|
+
T.let(
|
|
1474
|
+
:enum,
|
|
1475
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
1476
|
+
)
|
|
1477
|
+
DATE =
|
|
1478
|
+
T.let(
|
|
1479
|
+
:date,
|
|
1480
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
1481
|
+
)
|
|
1482
|
+
DATETIME =
|
|
1483
|
+
T.let(
|
|
1484
|
+
:datetime,
|
|
1485
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
678
1486
|
)
|
|
679
1487
|
|
|
680
1488
|
sig do
|
|
681
1489
|
override.returns(
|
|
682
1490
|
T::Array[
|
|
683
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
1491
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
684
1492
|
]
|
|
685
1493
|
)
|
|
686
1494
|
end
|
|
@@ -689,183 +1497,1459 @@ module Revox
|
|
|
689
1497
|
end
|
|
690
1498
|
end
|
|
691
1499
|
|
|
692
|
-
|
|
693
|
-
|
|
1500
|
+
# HTTP method to use when calling the API endpoint
|
|
1501
|
+
module Method
|
|
1502
|
+
extend Revox::Internal::Type::Enum
|
|
1503
|
+
|
|
1504
|
+
TaggedSymbol =
|
|
694
1505
|
T.type_alias do
|
|
695
|
-
T.
|
|
696
|
-
|
|
697
|
-
Revox::
|
|
1506
|
+
T.all(
|
|
1507
|
+
Symbol,
|
|
1508
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::Method
|
|
698
1509
|
)
|
|
699
1510
|
end
|
|
1511
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
700
1512
|
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
1513
|
+
GET =
|
|
1514
|
+
T.let(
|
|
1515
|
+
:GET,
|
|
1516
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::Method::TaggedSymbol
|
|
1517
|
+
)
|
|
1518
|
+
POST =
|
|
1519
|
+
T.let(
|
|
1520
|
+
:POST,
|
|
1521
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::Method::TaggedSymbol
|
|
1522
|
+
)
|
|
1523
|
+
PUT =
|
|
1524
|
+
T.let(
|
|
1525
|
+
:PUT,
|
|
1526
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::Method::TaggedSymbol
|
|
1527
|
+
)
|
|
1528
|
+
PATCH =
|
|
1529
|
+
T.let(
|
|
1530
|
+
:PATCH,
|
|
1531
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::Method::TaggedSymbol
|
|
1532
|
+
)
|
|
1533
|
+
DELETE =
|
|
1534
|
+
T.let(
|
|
1535
|
+
:DELETE,
|
|
1536
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::Method::TaggedSymbol
|
|
1537
|
+
)
|
|
1538
|
+
|
|
1539
|
+
sig do
|
|
1540
|
+
override.returns(
|
|
1541
|
+
T::Array[
|
|
1542
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::Method::TaggedSymbol
|
|
1543
|
+
]
|
|
1544
|
+
)
|
|
1545
|
+
end
|
|
1546
|
+
def self.values
|
|
1547
|
+
end
|
|
1548
|
+
end
|
|
1549
|
+
|
|
1550
|
+
class QueryParam < Revox::Internal::Type::BaseModel
|
|
1551
|
+
OrHash =
|
|
1552
|
+
T.type_alias do
|
|
1553
|
+
T.any(
|
|
1554
|
+
Revox::Models::AssistantCreateResponse::Assistant::CustomTool::QueryParam,
|
|
1555
|
+
Revox::Internal::AnyHash
|
|
1556
|
+
)
|
|
1557
|
+
end
|
|
1558
|
+
|
|
1559
|
+
sig { returns(String) }
|
|
1560
|
+
attr_accessor :key
|
|
1561
|
+
|
|
1562
|
+
sig { returns(String) }
|
|
1563
|
+
attr_accessor :value
|
|
1564
|
+
|
|
1565
|
+
sig { params(key: String, value: String).returns(T.attached_class) }
|
|
1566
|
+
def self.new(key:, value:)
|
|
1567
|
+
end
|
|
1568
|
+
|
|
1569
|
+
sig { override.returns({ key: String, value: String }) }
|
|
1570
|
+
def to_hash
|
|
1571
|
+
end
|
|
1572
|
+
end
|
|
1573
|
+
end
|
|
1574
|
+
|
|
1575
|
+
# The language used for the notification email content. One of "en" or "fr".
|
|
1576
|
+
module EmailNotificationLanguage
|
|
1577
|
+
extend Revox::Internal::Type::Enum
|
|
1578
|
+
|
|
1579
|
+
TaggedSymbol =
|
|
1580
|
+
T.type_alias do
|
|
1581
|
+
T.all(
|
|
1582
|
+
Symbol,
|
|
1583
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationLanguage
|
|
1584
|
+
)
|
|
1585
|
+
end
|
|
1586
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1587
|
+
|
|
1588
|
+
EN =
|
|
1589
|
+
T.let(
|
|
1590
|
+
:en,
|
|
1591
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationLanguage::TaggedSymbol
|
|
1592
|
+
)
|
|
1593
|
+
FR =
|
|
1594
|
+
T.let(
|
|
1595
|
+
:fr,
|
|
1596
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationLanguage::TaggedSymbol
|
|
1597
|
+
)
|
|
1598
|
+
|
|
1599
|
+
sig do
|
|
1600
|
+
override.returns(
|
|
1601
|
+
T::Array[
|
|
1602
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationLanguage::TaggedSymbol
|
|
1603
|
+
]
|
|
1604
|
+
)
|
|
1605
|
+
end
|
|
1606
|
+
def self.values
|
|
1607
|
+
end
|
|
1608
|
+
end
|
|
1609
|
+
|
|
1610
|
+
module EmailNotificationOutcome
|
|
1611
|
+
extend Revox::Internal::Type::Enum
|
|
1612
|
+
|
|
1613
|
+
TaggedSymbol =
|
|
1614
|
+
T.type_alias do
|
|
1615
|
+
T.all(
|
|
1616
|
+
Symbol,
|
|
1617
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationOutcome
|
|
1618
|
+
)
|
|
1619
|
+
end
|
|
1620
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1621
|
+
|
|
1622
|
+
NOT_INTERESTED =
|
|
1623
|
+
T.let(
|
|
1624
|
+
:not_interested,
|
|
1625
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
1626
|
+
)
|
|
1627
|
+
INTERESTED =
|
|
1628
|
+
T.let(
|
|
1629
|
+
:interested,
|
|
1630
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
1631
|
+
)
|
|
1632
|
+
COMPLETED =
|
|
1633
|
+
T.let(
|
|
1634
|
+
:completed,
|
|
1635
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
1636
|
+
)
|
|
1637
|
+
REQUESTED_CALLBACK_LATER =
|
|
1638
|
+
T.let(
|
|
1639
|
+
:requested_callback_later,
|
|
1640
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
1641
|
+
)
|
|
1642
|
+
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
1643
|
+
T.let(
|
|
1644
|
+
:requested_callback_new_number,
|
|
1645
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
1646
|
+
)
|
|
1647
|
+
DO_NOT_CONTACT =
|
|
1648
|
+
T.let(
|
|
1649
|
+
:do_not_contact,
|
|
1650
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
1651
|
+
)
|
|
1652
|
+
AI_AVERSE =
|
|
1653
|
+
T.let(
|
|
1654
|
+
:ai_averse,
|
|
1655
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
1656
|
+
)
|
|
1657
|
+
NONE =
|
|
1658
|
+
T.let(
|
|
1659
|
+
:none,
|
|
1660
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
1661
|
+
)
|
|
1662
|
+
|
|
1663
|
+
sig do
|
|
1664
|
+
override.returns(
|
|
1665
|
+
T::Array[
|
|
1666
|
+
Revox::Models::AssistantCreateResponse::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
1667
|
+
]
|
|
1668
|
+
)
|
|
1669
|
+
end
|
|
1670
|
+
def self.values
|
|
1671
|
+
end
|
|
1672
|
+
end
|
|
1673
|
+
|
|
1674
|
+
module FirstSentenceMode
|
|
1675
|
+
extend Revox::Internal::Type::Enum
|
|
1676
|
+
|
|
1677
|
+
TaggedSymbol =
|
|
1678
|
+
T.type_alias do
|
|
1679
|
+
T.all(
|
|
1680
|
+
Symbol,
|
|
1681
|
+
Revox::Models::AssistantCreateResponse::Assistant::FirstSentenceMode
|
|
1682
|
+
)
|
|
1683
|
+
end
|
|
1684
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1685
|
+
|
|
1686
|
+
GENERATED =
|
|
1687
|
+
T.let(
|
|
1688
|
+
:generated,
|
|
1689
|
+
Revox::Models::AssistantCreateResponse::Assistant::FirstSentenceMode::TaggedSymbol
|
|
1690
|
+
)
|
|
1691
|
+
STATIC =
|
|
1692
|
+
T.let(
|
|
1693
|
+
:static,
|
|
1694
|
+
Revox::Models::AssistantCreateResponse::Assistant::FirstSentenceMode::TaggedSymbol
|
|
1695
|
+
)
|
|
1696
|
+
NONE =
|
|
1697
|
+
T.let(
|
|
1698
|
+
:none,
|
|
1699
|
+
Revox::Models::AssistantCreateResponse::Assistant::FirstSentenceMode::TaggedSymbol
|
|
1700
|
+
)
|
|
1701
|
+
|
|
1702
|
+
sig do
|
|
1703
|
+
override.returns(
|
|
1704
|
+
T::Array[
|
|
1705
|
+
Revox::Models::AssistantCreateResponse::Assistant::FirstSentenceMode::TaggedSymbol
|
|
1706
|
+
]
|
|
1707
|
+
)
|
|
1708
|
+
end
|
|
1709
|
+
def self.values
|
|
1710
|
+
end
|
|
1711
|
+
end
|
|
1712
|
+
|
|
1713
|
+
# Warm or cold transfer when transfer_phone_number is set; null when transfer is
|
|
1714
|
+
# not configured.
|
|
1715
|
+
module HumanTransferMode
|
|
1716
|
+
extend Revox::Internal::Type::Enum
|
|
1717
|
+
|
|
1718
|
+
TaggedSymbol =
|
|
1719
|
+
T.type_alias do
|
|
1720
|
+
T.all(
|
|
1721
|
+
Symbol,
|
|
1722
|
+
Revox::Models::AssistantCreateResponse::Assistant::HumanTransferMode
|
|
1723
|
+
)
|
|
1724
|
+
end
|
|
1725
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1726
|
+
|
|
1727
|
+
WARM =
|
|
1728
|
+
T.let(
|
|
1729
|
+
:warm,
|
|
1730
|
+
Revox::Models::AssistantCreateResponse::Assistant::HumanTransferMode::TaggedSymbol
|
|
1731
|
+
)
|
|
1732
|
+
COLD =
|
|
1733
|
+
T.let(
|
|
1734
|
+
:cold,
|
|
1735
|
+
Revox::Models::AssistantCreateResponse::Assistant::HumanTransferMode::TaggedSymbol
|
|
1736
|
+
)
|
|
1737
|
+
|
|
1738
|
+
sig do
|
|
1739
|
+
override.returns(
|
|
1740
|
+
T::Array[
|
|
1741
|
+
Revox::Models::AssistantCreateResponse::Assistant::HumanTransferMode::TaggedSymbol
|
|
1742
|
+
]
|
|
1743
|
+
)
|
|
1744
|
+
end
|
|
1745
|
+
def self.values
|
|
1746
|
+
end
|
|
1747
|
+
end
|
|
1748
|
+
|
|
1749
|
+
module LlmModel
|
|
1750
|
+
extend Revox::Internal::Type::Union
|
|
1751
|
+
|
|
1752
|
+
Variants =
|
|
1753
|
+
T.type_alias do
|
|
1754
|
+
T.any(
|
|
1755
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember0,
|
|
1756
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember1,
|
|
1757
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember2,
|
|
1758
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember3
|
|
1759
|
+
)
|
|
1760
|
+
end
|
|
1761
|
+
|
|
1762
|
+
class UnionMember0 < Revox::Internal::Type::BaseModel
|
|
1763
|
+
OrHash =
|
|
1764
|
+
T.type_alias do
|
|
1765
|
+
T.any(
|
|
1766
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember0,
|
|
1767
|
+
Revox::Internal::AnyHash
|
|
1768
|
+
)
|
|
1769
|
+
end
|
|
1770
|
+
|
|
1771
|
+
sig do
|
|
1772
|
+
returns(
|
|
1773
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol
|
|
1774
|
+
)
|
|
1775
|
+
end
|
|
1776
|
+
attr_accessor :name
|
|
1777
|
+
|
|
1778
|
+
sig { returns(Symbol) }
|
|
711
1779
|
attr_accessor :type
|
|
712
1780
|
|
|
713
1781
|
sig do
|
|
714
1782
|
params(
|
|
715
|
-
|
|
716
|
-
|
|
1783
|
+
name:
|
|
1784
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember0::Name::OrSymbol,
|
|
717
1785
|
type: Symbol
|
|
718
1786
|
).returns(T.attached_class)
|
|
719
1787
|
end
|
|
720
|
-
def self.new(
|
|
721
|
-
# The model ID to use from OpenRouter. eg: openai/gpt-4.1
|
|
722
|
-
openrouter_model_id:,
|
|
723
|
-
# The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
|
|
724
|
-
openrouter_provider:,
|
|
725
|
-
# Use a model from OpenRouter.
|
|
726
|
-
type: :openrouter
|
|
727
|
-
)
|
|
1788
|
+
def self.new(name:, type: :"dedicated-instance")
|
|
728
1789
|
end
|
|
729
1790
|
|
|
730
1791
|
sig do
|
|
731
1792
|
override.returns(
|
|
732
1793
|
{
|
|
733
|
-
|
|
734
|
-
|
|
1794
|
+
name:
|
|
1795
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol,
|
|
735
1796
|
type: Symbol
|
|
736
1797
|
}
|
|
737
1798
|
)
|
|
738
1799
|
end
|
|
739
1800
|
def to_hash
|
|
740
1801
|
end
|
|
1802
|
+
|
|
1803
|
+
module Name
|
|
1804
|
+
extend Revox::Internal::Type::Enum
|
|
1805
|
+
|
|
1806
|
+
TaggedSymbol =
|
|
1807
|
+
T.type_alias do
|
|
1808
|
+
T.all(
|
|
1809
|
+
Symbol,
|
|
1810
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember0::Name
|
|
1811
|
+
)
|
|
1812
|
+
end
|
|
1813
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1814
|
+
|
|
1815
|
+
GPT_4_1 =
|
|
1816
|
+
T.let(
|
|
1817
|
+
:"gpt-4.1",
|
|
1818
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol
|
|
1819
|
+
)
|
|
1820
|
+
MINISTRAL_3_8B_INSTRUCT =
|
|
1821
|
+
T.let(
|
|
1822
|
+
:"ministral-3-8b-instruct",
|
|
1823
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol
|
|
1824
|
+
)
|
|
1825
|
+
|
|
1826
|
+
sig do
|
|
1827
|
+
override.returns(
|
|
1828
|
+
T::Array[
|
|
1829
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol
|
|
1830
|
+
]
|
|
1831
|
+
)
|
|
1832
|
+
end
|
|
1833
|
+
def self.values
|
|
1834
|
+
end
|
|
1835
|
+
end
|
|
741
1836
|
end
|
|
742
1837
|
|
|
1838
|
+
class UnionMember1 < Revox::Internal::Type::BaseModel
|
|
1839
|
+
OrHash =
|
|
1840
|
+
T.type_alias do
|
|
1841
|
+
T.any(
|
|
1842
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember1,
|
|
1843
|
+
Revox::Internal::AnyHash
|
|
1844
|
+
)
|
|
1845
|
+
end
|
|
1846
|
+
|
|
1847
|
+
# The model ID to use from OpenRouter. eg: openai/gpt-4.1
|
|
1848
|
+
sig { returns(String) }
|
|
1849
|
+
attr_accessor :openrouter_model_id
|
|
1850
|
+
|
|
1851
|
+
# The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
|
|
1852
|
+
sig { returns(String) }
|
|
1853
|
+
attr_accessor :openrouter_provider
|
|
1854
|
+
|
|
1855
|
+
# Use a model from OpenRouter.
|
|
1856
|
+
sig { returns(Symbol) }
|
|
1857
|
+
attr_accessor :type
|
|
1858
|
+
|
|
1859
|
+
sig do
|
|
1860
|
+
params(
|
|
1861
|
+
openrouter_model_id: String,
|
|
1862
|
+
openrouter_provider: String,
|
|
1863
|
+
type: Symbol
|
|
1864
|
+
).returns(T.attached_class)
|
|
1865
|
+
end
|
|
1866
|
+
def self.new(
|
|
1867
|
+
# The model ID to use from OpenRouter. eg: openai/gpt-4.1
|
|
1868
|
+
openrouter_model_id:,
|
|
1869
|
+
# The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
|
|
1870
|
+
openrouter_provider:,
|
|
1871
|
+
# Use a model from OpenRouter.
|
|
1872
|
+
type: :openrouter
|
|
1873
|
+
)
|
|
1874
|
+
end
|
|
1875
|
+
|
|
1876
|
+
sig do
|
|
1877
|
+
override.returns(
|
|
1878
|
+
{
|
|
1879
|
+
openrouter_model_id: String,
|
|
1880
|
+
openrouter_provider: String,
|
|
1881
|
+
type: Symbol
|
|
1882
|
+
}
|
|
1883
|
+
)
|
|
1884
|
+
end
|
|
1885
|
+
def to_hash
|
|
1886
|
+
end
|
|
1887
|
+
end
|
|
1888
|
+
|
|
1889
|
+
class UnionMember2 < Revox::Internal::Type::BaseModel
|
|
1890
|
+
OrHash =
|
|
1891
|
+
T.type_alias do
|
|
1892
|
+
T.any(
|
|
1893
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember2,
|
|
1894
|
+
Revox::Internal::AnyHash
|
|
1895
|
+
)
|
|
1896
|
+
end
|
|
1897
|
+
|
|
1898
|
+
# API key sent as Bearer token to the custom endpoint.
|
|
1899
|
+
sig { returns(String) }
|
|
1900
|
+
attr_accessor :api_key
|
|
1901
|
+
|
|
1902
|
+
# Base URL for the OpenAI-compatible API, e.g. https://api.together.xyz/v1
|
|
1903
|
+
sig { returns(String) }
|
|
1904
|
+
attr_accessor :api_url
|
|
1905
|
+
|
|
1906
|
+
# Model name as expected by the provider, e.g. meta-llama/llama-3-70b
|
|
1907
|
+
sig { returns(String) }
|
|
1908
|
+
attr_accessor :model_name
|
|
1909
|
+
|
|
1910
|
+
# OpenAI-compatible chat completions API (bring your own endpoint and key).
|
|
1911
|
+
sig { returns(Symbol) }
|
|
1912
|
+
attr_accessor :type
|
|
1913
|
+
|
|
1914
|
+
sig do
|
|
1915
|
+
params(
|
|
1916
|
+
api_key: String,
|
|
1917
|
+
api_url: String,
|
|
1918
|
+
model_name: String,
|
|
1919
|
+
type: Symbol
|
|
1920
|
+
).returns(T.attached_class)
|
|
1921
|
+
end
|
|
1922
|
+
def self.new(
|
|
1923
|
+
# API key sent as Bearer token to the custom endpoint.
|
|
1924
|
+
api_key:,
|
|
1925
|
+
# Base URL for the OpenAI-compatible API, e.g. https://api.together.xyz/v1
|
|
1926
|
+
api_url:,
|
|
1927
|
+
# Model name as expected by the provider, e.g. meta-llama/llama-3-70b
|
|
1928
|
+
model_name:,
|
|
1929
|
+
# OpenAI-compatible chat completions API (bring your own endpoint and key).
|
|
1930
|
+
type: :custom
|
|
1931
|
+
)
|
|
1932
|
+
end
|
|
1933
|
+
|
|
1934
|
+
sig do
|
|
1935
|
+
override.returns(
|
|
1936
|
+
{
|
|
1937
|
+
api_key: String,
|
|
1938
|
+
api_url: String,
|
|
1939
|
+
model_name: String,
|
|
1940
|
+
type: Symbol
|
|
1941
|
+
}
|
|
1942
|
+
)
|
|
1943
|
+
end
|
|
1944
|
+
def to_hash
|
|
1945
|
+
end
|
|
1946
|
+
end
|
|
1947
|
+
|
|
1948
|
+
class UnionMember3 < Revox::Internal::Type::BaseModel
|
|
1949
|
+
OrHash =
|
|
1950
|
+
T.type_alias do
|
|
1951
|
+
T.any(
|
|
1952
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember3,
|
|
1953
|
+
Revox::Internal::AnyHash
|
|
1954
|
+
)
|
|
1955
|
+
end
|
|
1956
|
+
|
|
1957
|
+
# The provider to use from Realtime. eg: openai, google.
|
|
1958
|
+
sig do
|
|
1959
|
+
returns(
|
|
1960
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember3::Provider::TaggedSymbol
|
|
1961
|
+
)
|
|
1962
|
+
end
|
|
1963
|
+
attr_accessor :provider
|
|
1964
|
+
|
|
1965
|
+
# The model ID to use from Realtime. eg: gpt-4.1
|
|
1966
|
+
sig { returns(String) }
|
|
1967
|
+
attr_accessor :realtime_model_id
|
|
1968
|
+
|
|
1969
|
+
# Use a model from Realtime.
|
|
1970
|
+
sig { returns(Symbol) }
|
|
1971
|
+
attr_accessor :type
|
|
1972
|
+
|
|
1973
|
+
# Output voice for the realtime provider (e.g. OpenAI: marin; Gemini: Puck).
|
|
1974
|
+
sig { returns(T.nilable(String)) }
|
|
1975
|
+
attr_reader :realtime_voice_id
|
|
1976
|
+
|
|
1977
|
+
sig { params(realtime_voice_id: String).void }
|
|
1978
|
+
attr_writer :realtime_voice_id
|
|
1979
|
+
|
|
1980
|
+
sig do
|
|
1981
|
+
params(
|
|
1982
|
+
provider:
|
|
1983
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember3::Provider::OrSymbol,
|
|
1984
|
+
realtime_model_id: String,
|
|
1985
|
+
realtime_voice_id: String,
|
|
1986
|
+
type: Symbol
|
|
1987
|
+
).returns(T.attached_class)
|
|
1988
|
+
end
|
|
1989
|
+
def self.new(
|
|
1990
|
+
# The provider to use from Realtime. eg: openai, google.
|
|
1991
|
+
provider:,
|
|
1992
|
+
# The model ID to use from Realtime. eg: gpt-4.1
|
|
1993
|
+
realtime_model_id:,
|
|
1994
|
+
# Output voice for the realtime provider (e.g. OpenAI: marin; Gemini: Puck).
|
|
1995
|
+
realtime_voice_id: nil,
|
|
1996
|
+
# Use a model from Realtime.
|
|
1997
|
+
type: :realtime
|
|
1998
|
+
)
|
|
1999
|
+
end
|
|
2000
|
+
|
|
2001
|
+
sig do
|
|
2002
|
+
override.returns(
|
|
2003
|
+
{
|
|
2004
|
+
provider:
|
|
2005
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember3::Provider::TaggedSymbol,
|
|
2006
|
+
realtime_model_id: String,
|
|
2007
|
+
type: Symbol,
|
|
2008
|
+
realtime_voice_id: String
|
|
2009
|
+
}
|
|
2010
|
+
)
|
|
2011
|
+
end
|
|
2012
|
+
def to_hash
|
|
2013
|
+
end
|
|
2014
|
+
|
|
2015
|
+
# The provider to use from Realtime. eg: openai, google.
|
|
2016
|
+
module Provider
|
|
2017
|
+
extend Revox::Internal::Type::Enum
|
|
2018
|
+
|
|
2019
|
+
TaggedSymbol =
|
|
2020
|
+
T.type_alias do
|
|
2021
|
+
T.all(
|
|
2022
|
+
Symbol,
|
|
2023
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember3::Provider
|
|
2024
|
+
)
|
|
2025
|
+
end
|
|
2026
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2027
|
+
|
|
2028
|
+
OPENAI =
|
|
2029
|
+
T.let(
|
|
2030
|
+
:openai,
|
|
2031
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember3::Provider::TaggedSymbol
|
|
2032
|
+
)
|
|
2033
|
+
GOOGLE =
|
|
2034
|
+
T.let(
|
|
2035
|
+
:google,
|
|
2036
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember3::Provider::TaggedSymbol
|
|
2037
|
+
)
|
|
2038
|
+
|
|
2039
|
+
sig do
|
|
2040
|
+
override.returns(
|
|
2041
|
+
T::Array[
|
|
2042
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember3::Provider::TaggedSymbol
|
|
2043
|
+
]
|
|
2044
|
+
)
|
|
2045
|
+
end
|
|
2046
|
+
def self.values
|
|
2047
|
+
end
|
|
2048
|
+
end
|
|
2049
|
+
end
|
|
2050
|
+
|
|
2051
|
+
sig do
|
|
2052
|
+
override.returns(
|
|
2053
|
+
T::Array[
|
|
2054
|
+
Revox::Models::AssistantCreateResponse::Assistant::LlmModel::Variants
|
|
2055
|
+
]
|
|
2056
|
+
)
|
|
2057
|
+
end
|
|
2058
|
+
def self.variants
|
|
2059
|
+
end
|
|
2060
|
+
end
|
|
2061
|
+
|
|
2062
|
+
class Position < Revox::Internal::Type::BaseModel
|
|
2063
|
+
OrHash =
|
|
2064
|
+
T.type_alias do
|
|
2065
|
+
T.any(
|
|
2066
|
+
Revox::Models::AssistantCreateResponse::Assistant::Position,
|
|
2067
|
+
Revox::Internal::AnyHash
|
|
2068
|
+
)
|
|
2069
|
+
end
|
|
2070
|
+
|
|
2071
|
+
sig { returns(Float) }
|
|
2072
|
+
attr_accessor :x
|
|
2073
|
+
|
|
2074
|
+
sig { returns(Float) }
|
|
2075
|
+
attr_accessor :y_
|
|
2076
|
+
|
|
2077
|
+
sig { params(x: Float, y_: Float).returns(T.attached_class) }
|
|
2078
|
+
def self.new(x:, y_:)
|
|
2079
|
+
end
|
|
2080
|
+
|
|
2081
|
+
sig { override.returns({ x: Float, y_: Float }) }
|
|
2082
|
+
def to_hash
|
|
2083
|
+
end
|
|
2084
|
+
end
|
|
2085
|
+
|
|
2086
|
+
class PromptFlow < Revox::Internal::Type::BaseModel
|
|
2087
|
+
OrHash =
|
|
2088
|
+
T.type_alias do
|
|
2089
|
+
T.any(
|
|
2090
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow,
|
|
2091
|
+
Revox::Internal::AnyHash
|
|
2092
|
+
)
|
|
2093
|
+
end
|
|
2094
|
+
|
|
2095
|
+
sig do
|
|
2096
|
+
returns(
|
|
2097
|
+
T::Array[
|
|
2098
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Edge
|
|
2099
|
+
]
|
|
2100
|
+
)
|
|
2101
|
+
end
|
|
2102
|
+
attr_accessor :edges
|
|
2103
|
+
|
|
2104
|
+
sig do
|
|
2105
|
+
returns(
|
|
2106
|
+
T::Array[
|
|
2107
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Node
|
|
2108
|
+
]
|
|
2109
|
+
)
|
|
2110
|
+
end
|
|
2111
|
+
attr_accessor :nodes
|
|
2112
|
+
|
|
2113
|
+
sig do
|
|
2114
|
+
params(
|
|
2115
|
+
edges:
|
|
2116
|
+
T::Array[
|
|
2117
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Edge::OrHash
|
|
2118
|
+
],
|
|
2119
|
+
nodes:
|
|
2120
|
+
T::Array[
|
|
2121
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Node::OrHash
|
|
2122
|
+
]
|
|
2123
|
+
).returns(T.attached_class)
|
|
2124
|
+
end
|
|
2125
|
+
def self.new(edges:, nodes:)
|
|
2126
|
+
end
|
|
2127
|
+
|
|
2128
|
+
sig do
|
|
2129
|
+
override.returns(
|
|
2130
|
+
{
|
|
2131
|
+
edges:
|
|
2132
|
+
T::Array[
|
|
2133
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Edge
|
|
2134
|
+
],
|
|
2135
|
+
nodes:
|
|
2136
|
+
T::Array[
|
|
2137
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Node
|
|
2138
|
+
]
|
|
2139
|
+
}
|
|
2140
|
+
)
|
|
2141
|
+
end
|
|
2142
|
+
def to_hash
|
|
2143
|
+
end
|
|
2144
|
+
|
|
2145
|
+
class Edge < Revox::Internal::Type::BaseModel
|
|
2146
|
+
OrHash =
|
|
2147
|
+
T.type_alias do
|
|
2148
|
+
T.any(
|
|
2149
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Edge,
|
|
2150
|
+
Revox::Internal::AnyHash
|
|
2151
|
+
)
|
|
2152
|
+
end
|
|
2153
|
+
|
|
2154
|
+
sig { returns(String) }
|
|
2155
|
+
attr_accessor :id
|
|
2156
|
+
|
|
2157
|
+
sig { returns(String) }
|
|
2158
|
+
attr_accessor :source
|
|
2159
|
+
|
|
2160
|
+
sig { returns(String) }
|
|
2161
|
+
attr_accessor :target
|
|
2162
|
+
|
|
2163
|
+
sig do
|
|
2164
|
+
params(id: String, source: String, target: String).returns(
|
|
2165
|
+
T.attached_class
|
|
2166
|
+
)
|
|
2167
|
+
end
|
|
2168
|
+
def self.new(id:, source:, target:)
|
|
2169
|
+
end
|
|
2170
|
+
|
|
2171
|
+
sig do
|
|
2172
|
+
override.returns({ id: String, source: String, target: String })
|
|
2173
|
+
end
|
|
2174
|
+
def to_hash
|
|
2175
|
+
end
|
|
2176
|
+
end
|
|
2177
|
+
|
|
2178
|
+
class Node < Revox::Internal::Type::BaseModel
|
|
2179
|
+
OrHash =
|
|
2180
|
+
T.type_alias do
|
|
2181
|
+
T.any(
|
|
2182
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Node,
|
|
2183
|
+
Revox::Internal::AnyHash
|
|
2184
|
+
)
|
|
2185
|
+
end
|
|
2186
|
+
|
|
2187
|
+
sig { returns(String) }
|
|
2188
|
+
attr_accessor :id
|
|
2189
|
+
|
|
2190
|
+
sig do
|
|
2191
|
+
returns(
|
|
2192
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Node::Data
|
|
2193
|
+
)
|
|
2194
|
+
end
|
|
2195
|
+
attr_reader :data
|
|
2196
|
+
|
|
2197
|
+
sig do
|
|
2198
|
+
params(
|
|
2199
|
+
data:
|
|
2200
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Node::Data::OrHash
|
|
2201
|
+
).void
|
|
2202
|
+
end
|
|
2203
|
+
attr_writer :data
|
|
2204
|
+
|
|
2205
|
+
sig do
|
|
2206
|
+
returns(
|
|
2207
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Node::Position
|
|
2208
|
+
)
|
|
2209
|
+
end
|
|
2210
|
+
attr_reader :position
|
|
2211
|
+
|
|
2212
|
+
sig do
|
|
2213
|
+
params(
|
|
2214
|
+
position:
|
|
2215
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Node::Position::OrHash
|
|
2216
|
+
).void
|
|
2217
|
+
end
|
|
2218
|
+
attr_writer :position
|
|
2219
|
+
|
|
2220
|
+
sig { returns(Symbol) }
|
|
2221
|
+
attr_accessor :type
|
|
2222
|
+
|
|
2223
|
+
sig do
|
|
2224
|
+
params(
|
|
2225
|
+
id: String,
|
|
2226
|
+
data:
|
|
2227
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Node::Data::OrHash,
|
|
2228
|
+
position:
|
|
2229
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Node::Position::OrHash,
|
|
2230
|
+
type: Symbol
|
|
2231
|
+
).returns(T.attached_class)
|
|
2232
|
+
end
|
|
2233
|
+
def self.new(id:, data:, position:, type: :promptBlock)
|
|
2234
|
+
end
|
|
2235
|
+
|
|
2236
|
+
sig do
|
|
2237
|
+
override.returns(
|
|
2238
|
+
{
|
|
2239
|
+
id: String,
|
|
2240
|
+
data:
|
|
2241
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Node::Data,
|
|
2242
|
+
position:
|
|
2243
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Node::Position,
|
|
2244
|
+
type: Symbol
|
|
2245
|
+
}
|
|
2246
|
+
)
|
|
2247
|
+
end
|
|
2248
|
+
def to_hash
|
|
2249
|
+
end
|
|
2250
|
+
|
|
2251
|
+
class Data < Revox::Internal::Type::BaseModel
|
|
2252
|
+
OrHash =
|
|
2253
|
+
T.type_alias do
|
|
2254
|
+
T.any(
|
|
2255
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Node::Data,
|
|
2256
|
+
Revox::Internal::AnyHash
|
|
2257
|
+
)
|
|
2258
|
+
end
|
|
2259
|
+
|
|
2260
|
+
sig { returns(String) }
|
|
2261
|
+
attr_accessor :body
|
|
2262
|
+
|
|
2263
|
+
sig { returns(String) }
|
|
2264
|
+
attr_accessor :title
|
|
2265
|
+
|
|
2266
|
+
sig do
|
|
2267
|
+
params(body: String, title: String).returns(T.attached_class)
|
|
2268
|
+
end
|
|
2269
|
+
def self.new(body:, title:)
|
|
2270
|
+
end
|
|
2271
|
+
|
|
2272
|
+
sig { override.returns({ body: String, title: String }) }
|
|
2273
|
+
def to_hash
|
|
2274
|
+
end
|
|
2275
|
+
end
|
|
2276
|
+
|
|
2277
|
+
class Position < Revox::Internal::Type::BaseModel
|
|
2278
|
+
OrHash =
|
|
2279
|
+
T.type_alias do
|
|
2280
|
+
T.any(
|
|
2281
|
+
Revox::Models::AssistantCreateResponse::Assistant::PromptFlow::Node::Position,
|
|
2282
|
+
Revox::Internal::AnyHash
|
|
2283
|
+
)
|
|
2284
|
+
end
|
|
2285
|
+
|
|
2286
|
+
sig { returns(Float) }
|
|
2287
|
+
attr_accessor :x
|
|
2288
|
+
|
|
2289
|
+
sig { returns(Float) }
|
|
2290
|
+
attr_accessor :y_
|
|
2291
|
+
|
|
2292
|
+
sig { params(x: Float, y_: Float).returns(T.attached_class) }
|
|
2293
|
+
def self.new(x:, y_:)
|
|
2294
|
+
end
|
|
2295
|
+
|
|
2296
|
+
sig { override.returns({ x: Float, y_: Float }) }
|
|
2297
|
+
def to_hash
|
|
2298
|
+
end
|
|
2299
|
+
end
|
|
2300
|
+
end
|
|
2301
|
+
end
|
|
2302
|
+
|
|
2303
|
+
class Slack < Revox::Internal::Type::BaseModel
|
|
2304
|
+
OrHash =
|
|
2305
|
+
T.type_alias do
|
|
2306
|
+
T.any(
|
|
2307
|
+
Revox::Models::AssistantCreateResponse::Assistant::Slack,
|
|
2308
|
+
Revox::Internal::AnyHash
|
|
2309
|
+
)
|
|
2310
|
+
end
|
|
2311
|
+
|
|
2312
|
+
# The Slack channel ID where the notification will be posted.
|
|
2313
|
+
sig { returns(String) }
|
|
2314
|
+
attr_accessor :channel_id
|
|
2315
|
+
|
|
2316
|
+
# The Nango connection ID linking the org's Slack workspace to Revox.
|
|
2317
|
+
sig { returns(String) }
|
|
2318
|
+
attr_accessor :connection_id
|
|
2319
|
+
|
|
2320
|
+
# Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
|
|
2321
|
+
# Use 'none' to notify when outcome is null.
|
|
2322
|
+
sig do
|
|
2323
|
+
returns(
|
|
2324
|
+
T::Array[
|
|
2325
|
+
Revox::Models::AssistantCreateResponse::Assistant::Slack::Outcome::TaggedSymbol
|
|
2326
|
+
]
|
|
2327
|
+
)
|
|
2328
|
+
end
|
|
2329
|
+
attr_accessor :outcomes
|
|
2330
|
+
|
|
2331
|
+
# Human-readable Slack channel name, cached for display in the UI.
|
|
2332
|
+
sig { returns(T.nilable(String)) }
|
|
2333
|
+
attr_accessor :channel_name
|
|
2334
|
+
|
|
2335
|
+
# Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
2336
|
+
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
|
|
2337
|
+
# {{last_name}}, {{email}}, {{company}}, {{contact_name}}, {{contact_line}}, plus
|
|
2338
|
+
# prompt_variables and structured_output keys. When null/empty a default template
|
|
2339
|
+
# is used.
|
|
2340
|
+
sig { returns(T.nilable(String)) }
|
|
2341
|
+
attr_accessor :template
|
|
2342
|
+
|
|
2343
|
+
sig do
|
|
2344
|
+
params(
|
|
2345
|
+
channel_id: String,
|
|
2346
|
+
connection_id: String,
|
|
2347
|
+
outcomes:
|
|
2348
|
+
T::Array[
|
|
2349
|
+
Revox::Models::AssistantCreateResponse::Assistant::Slack::Outcome::OrSymbol
|
|
2350
|
+
],
|
|
2351
|
+
channel_name: T.nilable(String),
|
|
2352
|
+
template: T.nilable(String)
|
|
2353
|
+
).returns(T.attached_class)
|
|
2354
|
+
end
|
|
2355
|
+
def self.new(
|
|
2356
|
+
# The Slack channel ID where the notification will be posted.
|
|
2357
|
+
channel_id:,
|
|
2358
|
+
# The Nango connection ID linking the org's Slack workspace to Revox.
|
|
2359
|
+
connection_id:,
|
|
2360
|
+
# Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
|
|
2361
|
+
# Use 'none' to notify when outcome is null.
|
|
2362
|
+
outcomes:,
|
|
2363
|
+
# Human-readable Slack channel name, cached for display in the UI.
|
|
2364
|
+
channel_name: nil,
|
|
2365
|
+
# Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
2366
|
+
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
|
|
2367
|
+
# {{last_name}}, {{email}}, {{company}}, {{contact_name}}, {{contact_line}}, plus
|
|
2368
|
+
# prompt_variables and structured_output keys. When null/empty a default template
|
|
2369
|
+
# is used.
|
|
2370
|
+
template: nil
|
|
2371
|
+
)
|
|
2372
|
+
end
|
|
2373
|
+
|
|
2374
|
+
sig do
|
|
2375
|
+
override.returns(
|
|
2376
|
+
{
|
|
2377
|
+
channel_id: String,
|
|
2378
|
+
connection_id: String,
|
|
2379
|
+
outcomes:
|
|
2380
|
+
T::Array[
|
|
2381
|
+
Revox::Models::AssistantCreateResponse::Assistant::Slack::Outcome::TaggedSymbol
|
|
2382
|
+
],
|
|
2383
|
+
channel_name: T.nilable(String),
|
|
2384
|
+
template: T.nilable(String)
|
|
2385
|
+
}
|
|
2386
|
+
)
|
|
2387
|
+
end
|
|
2388
|
+
def to_hash
|
|
2389
|
+
end
|
|
2390
|
+
|
|
2391
|
+
module Outcome
|
|
2392
|
+
extend Revox::Internal::Type::Enum
|
|
2393
|
+
|
|
2394
|
+
TaggedSymbol =
|
|
2395
|
+
T.type_alias do
|
|
2396
|
+
T.all(
|
|
2397
|
+
Symbol,
|
|
2398
|
+
Revox::Models::AssistantCreateResponse::Assistant::Slack::Outcome
|
|
2399
|
+
)
|
|
2400
|
+
end
|
|
2401
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2402
|
+
|
|
2403
|
+
NOT_INTERESTED =
|
|
2404
|
+
T.let(
|
|
2405
|
+
:not_interested,
|
|
2406
|
+
Revox::Models::AssistantCreateResponse::Assistant::Slack::Outcome::TaggedSymbol
|
|
2407
|
+
)
|
|
2408
|
+
INTERESTED =
|
|
2409
|
+
T.let(
|
|
2410
|
+
:interested,
|
|
2411
|
+
Revox::Models::AssistantCreateResponse::Assistant::Slack::Outcome::TaggedSymbol
|
|
2412
|
+
)
|
|
2413
|
+
COMPLETED =
|
|
2414
|
+
T.let(
|
|
2415
|
+
:completed,
|
|
2416
|
+
Revox::Models::AssistantCreateResponse::Assistant::Slack::Outcome::TaggedSymbol
|
|
2417
|
+
)
|
|
2418
|
+
REQUESTED_CALLBACK_LATER =
|
|
2419
|
+
T.let(
|
|
2420
|
+
:requested_callback_later,
|
|
2421
|
+
Revox::Models::AssistantCreateResponse::Assistant::Slack::Outcome::TaggedSymbol
|
|
2422
|
+
)
|
|
2423
|
+
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
2424
|
+
T.let(
|
|
2425
|
+
:requested_callback_new_number,
|
|
2426
|
+
Revox::Models::AssistantCreateResponse::Assistant::Slack::Outcome::TaggedSymbol
|
|
2427
|
+
)
|
|
2428
|
+
DO_NOT_CONTACT =
|
|
2429
|
+
T.let(
|
|
2430
|
+
:do_not_contact,
|
|
2431
|
+
Revox::Models::AssistantCreateResponse::Assistant::Slack::Outcome::TaggedSymbol
|
|
2432
|
+
)
|
|
2433
|
+
AI_AVERSE =
|
|
2434
|
+
T.let(
|
|
2435
|
+
:ai_averse,
|
|
2436
|
+
Revox::Models::AssistantCreateResponse::Assistant::Slack::Outcome::TaggedSymbol
|
|
2437
|
+
)
|
|
2438
|
+
NONE =
|
|
2439
|
+
T.let(
|
|
2440
|
+
:none,
|
|
2441
|
+
Revox::Models::AssistantCreateResponse::Assistant::Slack::Outcome::TaggedSymbol
|
|
2442
|
+
)
|
|
2443
|
+
|
|
2444
|
+
sig do
|
|
2445
|
+
override.returns(
|
|
2446
|
+
T::Array[
|
|
2447
|
+
Revox::Models::AssistantCreateResponse::Assistant::Slack::Outcome::TaggedSymbol
|
|
2448
|
+
]
|
|
2449
|
+
)
|
|
2450
|
+
end
|
|
2451
|
+
def self.values
|
|
2452
|
+
end
|
|
2453
|
+
end
|
|
2454
|
+
end
|
|
2455
|
+
|
|
2456
|
+
class StructuredOutputConfig < Revox::Internal::Type::BaseModel
|
|
2457
|
+
OrHash =
|
|
2458
|
+
T.type_alias do
|
|
2459
|
+
T.any(
|
|
2460
|
+
Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig,
|
|
2461
|
+
Revox::Internal::AnyHash
|
|
2462
|
+
)
|
|
2463
|
+
end
|
|
2464
|
+
|
|
2465
|
+
sig { returns(String) }
|
|
2466
|
+
attr_accessor :name
|
|
2467
|
+
|
|
2468
|
+
sig { returns(T::Boolean) }
|
|
2469
|
+
attr_accessor :required
|
|
2470
|
+
|
|
2471
|
+
sig do
|
|
2472
|
+
returns(
|
|
2473
|
+
Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2474
|
+
)
|
|
2475
|
+
end
|
|
2476
|
+
attr_accessor :type
|
|
2477
|
+
|
|
2478
|
+
sig { returns(T.nilable(String)) }
|
|
2479
|
+
attr_reader :description
|
|
2480
|
+
|
|
2481
|
+
sig { params(description: String).void }
|
|
2482
|
+
attr_writer :description
|
|
2483
|
+
|
|
2484
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
2485
|
+
attr_reader :enum_options
|
|
2486
|
+
|
|
2487
|
+
sig { params(enum_options: T::Array[String]).void }
|
|
2488
|
+
attr_writer :enum_options
|
|
2489
|
+
|
|
2490
|
+
sig do
|
|
2491
|
+
params(
|
|
2492
|
+
name: String,
|
|
2493
|
+
required: T::Boolean,
|
|
2494
|
+
type:
|
|
2495
|
+
Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig::Type::OrSymbol,
|
|
2496
|
+
description: String,
|
|
2497
|
+
enum_options: T::Array[String]
|
|
2498
|
+
).returns(T.attached_class)
|
|
2499
|
+
end
|
|
2500
|
+
def self.new(
|
|
2501
|
+
name:,
|
|
2502
|
+
required:,
|
|
2503
|
+
type:,
|
|
2504
|
+
description: nil,
|
|
2505
|
+
enum_options: nil
|
|
2506
|
+
)
|
|
2507
|
+
end
|
|
2508
|
+
|
|
2509
|
+
sig do
|
|
2510
|
+
override.returns(
|
|
2511
|
+
{
|
|
2512
|
+
name: String,
|
|
2513
|
+
required: T::Boolean,
|
|
2514
|
+
type:
|
|
2515
|
+
Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig::Type::TaggedSymbol,
|
|
2516
|
+
description: String,
|
|
2517
|
+
enum_options: T::Array[String]
|
|
2518
|
+
}
|
|
2519
|
+
)
|
|
2520
|
+
end
|
|
2521
|
+
def to_hash
|
|
2522
|
+
end
|
|
2523
|
+
|
|
2524
|
+
module Type
|
|
2525
|
+
extend Revox::Internal::Type::Enum
|
|
2526
|
+
|
|
2527
|
+
TaggedSymbol =
|
|
2528
|
+
T.type_alias do
|
|
2529
|
+
T.all(
|
|
2530
|
+
Symbol,
|
|
2531
|
+
Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig::Type
|
|
2532
|
+
)
|
|
2533
|
+
end
|
|
2534
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2535
|
+
|
|
2536
|
+
STRING =
|
|
2537
|
+
T.let(
|
|
2538
|
+
:string,
|
|
2539
|
+
Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2540
|
+
)
|
|
2541
|
+
NUMBER =
|
|
2542
|
+
T.let(
|
|
2543
|
+
:number,
|
|
2544
|
+
Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2545
|
+
)
|
|
2546
|
+
BOOLEAN =
|
|
2547
|
+
T.let(
|
|
2548
|
+
:boolean,
|
|
2549
|
+
Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2550
|
+
)
|
|
2551
|
+
ENUM =
|
|
2552
|
+
T.let(
|
|
2553
|
+
:enum,
|
|
2554
|
+
Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2555
|
+
)
|
|
2556
|
+
DATE =
|
|
2557
|
+
T.let(
|
|
2558
|
+
:date,
|
|
2559
|
+
Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2560
|
+
)
|
|
2561
|
+
DATETIME =
|
|
2562
|
+
T.let(
|
|
2563
|
+
:datetime,
|
|
2564
|
+
Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2565
|
+
)
|
|
2566
|
+
|
|
2567
|
+
sig do
|
|
2568
|
+
override.returns(
|
|
2569
|
+
T::Array[
|
|
2570
|
+
Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2571
|
+
]
|
|
2572
|
+
)
|
|
2573
|
+
end
|
|
2574
|
+
def self.values
|
|
2575
|
+
end
|
|
2576
|
+
end
|
|
2577
|
+
end
|
|
2578
|
+
|
|
2579
|
+
class SttContext < Revox::Internal::Type::BaseModel
|
|
2580
|
+
OrHash =
|
|
2581
|
+
T.type_alias do
|
|
2582
|
+
T.any(
|
|
2583
|
+
Revox::Models::AssistantCreateResponse::Assistant::SttContext,
|
|
2584
|
+
Revox::Internal::AnyHash
|
|
2585
|
+
)
|
|
2586
|
+
end
|
|
2587
|
+
|
|
2588
|
+
sig do
|
|
2589
|
+
returns(
|
|
2590
|
+
T::Array[
|
|
2591
|
+
Revox::Models::AssistantCreateResponse::Assistant::SttContext::General
|
|
2592
|
+
]
|
|
2593
|
+
)
|
|
2594
|
+
end
|
|
2595
|
+
attr_accessor :general
|
|
2596
|
+
|
|
2597
|
+
sig { returns(T::Array[String]) }
|
|
2598
|
+
attr_accessor :terms
|
|
2599
|
+
|
|
2600
|
+
# Assistant-level speech-to-text context: structured `general` key/value pairs
|
|
2601
|
+
# plus a list of domain `terms`. Prompt-derived context is merged in without
|
|
2602
|
+
# replacing existing entries.
|
|
2603
|
+
sig do
|
|
2604
|
+
params(
|
|
2605
|
+
general:
|
|
2606
|
+
T::Array[
|
|
2607
|
+
Revox::Models::AssistantCreateResponse::Assistant::SttContext::General::OrHash
|
|
2608
|
+
],
|
|
2609
|
+
terms: T::Array[String]
|
|
2610
|
+
).returns(T.attached_class)
|
|
2611
|
+
end
|
|
2612
|
+
def self.new(general:, terms:)
|
|
2613
|
+
end
|
|
2614
|
+
|
|
2615
|
+
sig do
|
|
2616
|
+
override.returns(
|
|
2617
|
+
{
|
|
2618
|
+
general:
|
|
2619
|
+
T::Array[
|
|
2620
|
+
Revox::Models::AssistantCreateResponse::Assistant::SttContext::General
|
|
2621
|
+
],
|
|
2622
|
+
terms: T::Array[String]
|
|
2623
|
+
}
|
|
2624
|
+
)
|
|
2625
|
+
end
|
|
2626
|
+
def to_hash
|
|
2627
|
+
end
|
|
2628
|
+
|
|
2629
|
+
class General < Revox::Internal::Type::BaseModel
|
|
2630
|
+
OrHash =
|
|
2631
|
+
T.type_alias do
|
|
2632
|
+
T.any(
|
|
2633
|
+
Revox::Models::AssistantCreateResponse::Assistant::SttContext::General,
|
|
2634
|
+
Revox::Internal::AnyHash
|
|
2635
|
+
)
|
|
2636
|
+
end
|
|
2637
|
+
|
|
2638
|
+
sig { returns(String) }
|
|
2639
|
+
attr_accessor :key
|
|
2640
|
+
|
|
2641
|
+
sig { returns(String) }
|
|
2642
|
+
attr_accessor :value
|
|
2643
|
+
|
|
2644
|
+
sig { params(key: String, value: String).returns(T.attached_class) }
|
|
2645
|
+
def self.new(key:, value:)
|
|
2646
|
+
end
|
|
2647
|
+
|
|
2648
|
+
sig { override.returns({ key: String, value: String }) }
|
|
2649
|
+
def to_hash
|
|
2650
|
+
end
|
|
2651
|
+
end
|
|
2652
|
+
end
|
|
2653
|
+
|
|
2654
|
+
# Transcriber (speech-to-text) model used for the assistant.
|
|
2655
|
+
module SttModel
|
|
2656
|
+
extend Revox::Internal::Type::Enum
|
|
2657
|
+
|
|
2658
|
+
TaggedSymbol =
|
|
2659
|
+
T.type_alias do
|
|
2660
|
+
T.all(
|
|
2661
|
+
Symbol,
|
|
2662
|
+
Revox::Models::AssistantCreateResponse::Assistant::SttModel
|
|
2663
|
+
)
|
|
2664
|
+
end
|
|
2665
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2666
|
+
|
|
2667
|
+
STT_RT_V4 =
|
|
2668
|
+
T.let(
|
|
2669
|
+
:"stt-rt-v4",
|
|
2670
|
+
Revox::Models::AssistantCreateResponse::Assistant::SttModel::TaggedSymbol
|
|
2671
|
+
)
|
|
2672
|
+
STT_RT_V5 =
|
|
2673
|
+
T.let(
|
|
2674
|
+
:"stt-rt-v5",
|
|
2675
|
+
Revox::Models::AssistantCreateResponse::Assistant::SttModel::TaggedSymbol
|
|
2676
|
+
)
|
|
2677
|
+
|
|
2678
|
+
sig do
|
|
2679
|
+
override.returns(
|
|
2680
|
+
T::Array[
|
|
2681
|
+
Revox::Models::AssistantCreateResponse::Assistant::SttModel::TaggedSymbol
|
|
2682
|
+
]
|
|
2683
|
+
)
|
|
2684
|
+
end
|
|
2685
|
+
def self.values
|
|
2686
|
+
end
|
|
2687
|
+
end
|
|
2688
|
+
|
|
2689
|
+
# Audio clip to play while the agent is processing a response. One of the built-in
|
|
2690
|
+
# LiveKit audio clips; null disables it.
|
|
2691
|
+
module ThinkingSound
|
|
2692
|
+
extend Revox::Internal::Type::Enum
|
|
2693
|
+
|
|
2694
|
+
TaggedSymbol =
|
|
2695
|
+
T.type_alias do
|
|
2696
|
+
T.all(
|
|
2697
|
+
Symbol,
|
|
2698
|
+
Revox::Models::AssistantCreateResponse::Assistant::ThinkingSound
|
|
2699
|
+
)
|
|
2700
|
+
end
|
|
2701
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2702
|
+
|
|
2703
|
+
CITY_AMBIENCE_OGG =
|
|
2704
|
+
T.let(
|
|
2705
|
+
:"city-ambience.ogg",
|
|
2706
|
+
Revox::Models::AssistantCreateResponse::Assistant::ThinkingSound::TaggedSymbol
|
|
2707
|
+
)
|
|
2708
|
+
FOREST_AMBIENCE_OGG =
|
|
2709
|
+
T.let(
|
|
2710
|
+
:"forest-ambience.ogg",
|
|
2711
|
+
Revox::Models::AssistantCreateResponse::Assistant::ThinkingSound::TaggedSymbol
|
|
2712
|
+
)
|
|
2713
|
+
OFFICE_AMBIENCE_OGG =
|
|
2714
|
+
T.let(
|
|
2715
|
+
:"office-ambience.ogg",
|
|
2716
|
+
Revox::Models::AssistantCreateResponse::Assistant::ThinkingSound::TaggedSymbol
|
|
2717
|
+
)
|
|
2718
|
+
CROWDED_ROOM_OGG =
|
|
2719
|
+
T.let(
|
|
2720
|
+
:"crowded-room.ogg",
|
|
2721
|
+
Revox::Models::AssistantCreateResponse::Assistant::ThinkingSound::TaggedSymbol
|
|
2722
|
+
)
|
|
2723
|
+
KEYBOARD_TYPING_OGG =
|
|
2724
|
+
T.let(
|
|
2725
|
+
:"keyboard-typing.ogg",
|
|
2726
|
+
Revox::Models::AssistantCreateResponse::Assistant::ThinkingSound::TaggedSymbol
|
|
2727
|
+
)
|
|
2728
|
+
KEYBOARD_TYPING2_OGG =
|
|
2729
|
+
T.let(
|
|
2730
|
+
:"keyboard-typing2.ogg",
|
|
2731
|
+
Revox::Models::AssistantCreateResponse::Assistant::ThinkingSound::TaggedSymbol
|
|
2732
|
+
)
|
|
2733
|
+
HOLD_MUSIC_OGG =
|
|
2734
|
+
T.let(
|
|
2735
|
+
:"hold_music.ogg",
|
|
2736
|
+
Revox::Models::AssistantCreateResponse::Assistant::ThinkingSound::TaggedSymbol
|
|
2737
|
+
)
|
|
2738
|
+
|
|
2739
|
+
sig do
|
|
2740
|
+
override.returns(
|
|
2741
|
+
T::Array[
|
|
2742
|
+
Revox::Models::AssistantCreateResponse::Assistant::ThinkingSound::TaggedSymbol
|
|
2743
|
+
]
|
|
2744
|
+
)
|
|
2745
|
+
end
|
|
2746
|
+
def self.values
|
|
2747
|
+
end
|
|
2748
|
+
end
|
|
2749
|
+
|
|
2750
|
+
module Type
|
|
2751
|
+
extend Revox::Internal::Type::Enum
|
|
2752
|
+
|
|
2753
|
+
TaggedSymbol =
|
|
2754
|
+
T.type_alias do
|
|
2755
|
+
T.all(
|
|
2756
|
+
Symbol,
|
|
2757
|
+
Revox::Models::AssistantCreateResponse::Assistant::Type
|
|
2758
|
+
)
|
|
2759
|
+
end
|
|
2760
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2761
|
+
|
|
2762
|
+
STANDALONE =
|
|
2763
|
+
T.let(
|
|
2764
|
+
:standalone,
|
|
2765
|
+
Revox::Models::AssistantCreateResponse::Assistant::Type::TaggedSymbol
|
|
2766
|
+
)
|
|
2767
|
+
MULTI_STEP =
|
|
2768
|
+
T.let(
|
|
2769
|
+
:"multi-step",
|
|
2770
|
+
Revox::Models::AssistantCreateResponse::Assistant::Type::TaggedSymbol
|
|
2771
|
+
)
|
|
2772
|
+
SUB_ASSISTANT =
|
|
2773
|
+
T.let(
|
|
2774
|
+
:"sub-assistant",
|
|
2775
|
+
Revox::Models::AssistantCreateResponse::Assistant::Type::TaggedSymbol
|
|
2776
|
+
)
|
|
2777
|
+
|
|
743
2778
|
sig do
|
|
744
2779
|
override.returns(
|
|
745
2780
|
T::Array[
|
|
746
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
2781
|
+
Revox::Models::AssistantCreateResponse::Assistant::Type::TaggedSymbol
|
|
747
2782
|
]
|
|
748
2783
|
)
|
|
749
2784
|
end
|
|
750
|
-
def self.
|
|
2785
|
+
def self.values
|
|
751
2786
|
end
|
|
752
2787
|
end
|
|
753
2788
|
|
|
754
|
-
class
|
|
2789
|
+
class Voice < Revox::Internal::Type::BaseModel
|
|
755
2790
|
OrHash =
|
|
756
2791
|
T.type_alias do
|
|
757
2792
|
T.any(
|
|
758
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
2793
|
+
Revox::Models::AssistantCreateResponse::Assistant::Voice,
|
|
759
2794
|
Revox::Internal::AnyHash
|
|
760
2795
|
)
|
|
761
2796
|
end
|
|
762
2797
|
|
|
2798
|
+
# The ID of the voice.
|
|
763
2799
|
sig { returns(String) }
|
|
764
|
-
attr_accessor :
|
|
2800
|
+
attr_accessor :id
|
|
765
2801
|
|
|
766
|
-
|
|
767
|
-
|
|
2802
|
+
# The provider of the voice.
|
|
2803
|
+
sig do
|
|
2804
|
+
returns(
|
|
2805
|
+
Revox::Models::AssistantCreateResponse::Assistant::Voice::Provider::TaggedSymbol
|
|
2806
|
+
)
|
|
2807
|
+
end
|
|
2808
|
+
attr_accessor :provider
|
|
768
2809
|
|
|
2810
|
+
# Cartesia TTS model (Cartesia only). Defaults to sonic-3 when omitted. Ignored
|
|
2811
|
+
# for other providers.
|
|
769
2812
|
sig do
|
|
770
2813
|
returns(
|
|
771
|
-
|
|
2814
|
+
T.nilable(
|
|
2815
|
+
Revox::Models::AssistantCreateResponse::Assistant::Voice::Model::TaggedSymbol
|
|
2816
|
+
)
|
|
772
2817
|
)
|
|
773
2818
|
end
|
|
774
|
-
|
|
2819
|
+
attr_reader :model
|
|
775
2820
|
|
|
776
|
-
sig
|
|
777
|
-
|
|
2821
|
+
sig do
|
|
2822
|
+
params(
|
|
2823
|
+
model:
|
|
2824
|
+
Revox::Models::AssistantCreateResponse::Assistant::Voice::Model::OrSymbol
|
|
2825
|
+
).void
|
|
2826
|
+
end
|
|
2827
|
+
attr_writer :model
|
|
778
2828
|
|
|
779
|
-
|
|
780
|
-
|
|
2829
|
+
# The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
|
|
2830
|
+
# 0.7–1.2. Default is 1.0.
|
|
2831
|
+
sig { returns(T.nilable(Float)) }
|
|
2832
|
+
attr_reader :speed
|
|
781
2833
|
|
|
782
|
-
sig {
|
|
783
|
-
|
|
2834
|
+
sig { params(speed: Float).void }
|
|
2835
|
+
attr_writer :speed
|
|
784
2836
|
|
|
785
|
-
|
|
786
|
-
|
|
2837
|
+
# Volume of the voice (Cartesia only). 0.5–2.0, default 1.0. Ignored for other
|
|
2838
|
+
# providers.
|
|
2839
|
+
sig { returns(T.nilable(Float)) }
|
|
2840
|
+
attr_reader :volume
|
|
2841
|
+
|
|
2842
|
+
sig { params(volume: Float).void }
|
|
2843
|
+
attr_writer :volume
|
|
787
2844
|
|
|
788
2845
|
sig do
|
|
789
2846
|
params(
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
2847
|
+
id: String,
|
|
2848
|
+
provider:
|
|
2849
|
+
Revox::Models::AssistantCreateResponse::Assistant::Voice::Provider::OrSymbol,
|
|
2850
|
+
model:
|
|
2851
|
+
Revox::Models::AssistantCreateResponse::Assistant::Voice::Model::OrSymbol,
|
|
2852
|
+
speed: Float,
|
|
2853
|
+
volume: Float
|
|
796
2854
|
).returns(T.attached_class)
|
|
797
2855
|
end
|
|
798
2856
|
def self.new(
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
2857
|
+
# The ID of the voice.
|
|
2858
|
+
id:,
|
|
2859
|
+
# The provider of the voice.
|
|
2860
|
+
provider:,
|
|
2861
|
+
# Cartesia TTS model (Cartesia only). Defaults to sonic-3 when omitted. Ignored
|
|
2862
|
+
# for other providers.
|
|
2863
|
+
model: nil,
|
|
2864
|
+
# The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
|
|
2865
|
+
# 0.7–1.2. Default is 1.0.
|
|
2866
|
+
speed: nil,
|
|
2867
|
+
# Volume of the voice (Cartesia only). 0.5–2.0, default 1.0. Ignored for other
|
|
2868
|
+
# providers.
|
|
2869
|
+
volume: nil
|
|
804
2870
|
)
|
|
805
2871
|
end
|
|
806
2872
|
|
|
807
2873
|
sig do
|
|
808
2874
|
override.returns(
|
|
809
2875
|
{
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
2876
|
+
id: String,
|
|
2877
|
+
provider:
|
|
2878
|
+
Revox::Models::AssistantCreateResponse::Assistant::Voice::Provider::TaggedSymbol,
|
|
2879
|
+
model:
|
|
2880
|
+
Revox::Models::AssistantCreateResponse::Assistant::Voice::Model::TaggedSymbol,
|
|
2881
|
+
speed: Float,
|
|
2882
|
+
volume: Float
|
|
816
2883
|
}
|
|
817
2884
|
)
|
|
818
2885
|
end
|
|
819
2886
|
def to_hash
|
|
820
2887
|
end
|
|
821
2888
|
|
|
822
|
-
|
|
2889
|
+
# The provider of the voice.
|
|
2890
|
+
module Provider
|
|
823
2891
|
extend Revox::Internal::Type::Enum
|
|
824
2892
|
|
|
825
2893
|
TaggedSymbol =
|
|
826
2894
|
T.type_alias do
|
|
827
2895
|
T.all(
|
|
828
2896
|
Symbol,
|
|
829
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
2897
|
+
Revox::Models::AssistantCreateResponse::Assistant::Voice::Provider
|
|
830
2898
|
)
|
|
831
2899
|
end
|
|
832
2900
|
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
833
2901
|
|
|
834
|
-
|
|
835
|
-
T.let(
|
|
836
|
-
:string,
|
|
837
|
-
Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
838
|
-
)
|
|
839
|
-
NUMBER =
|
|
2902
|
+
CARTESIA =
|
|
840
2903
|
T.let(
|
|
841
|
-
:
|
|
842
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
2904
|
+
:cartesia,
|
|
2905
|
+
Revox::Models::AssistantCreateResponse::Assistant::Voice::Provider::TaggedSymbol
|
|
843
2906
|
)
|
|
844
|
-
|
|
2907
|
+
ELEVENLABS =
|
|
845
2908
|
T.let(
|
|
846
|
-
:
|
|
847
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
2909
|
+
:elevenlabs,
|
|
2910
|
+
Revox::Models::AssistantCreateResponse::Assistant::Voice::Provider::TaggedSymbol
|
|
848
2911
|
)
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
2912
|
+
|
|
2913
|
+
sig do
|
|
2914
|
+
override.returns(
|
|
2915
|
+
T::Array[
|
|
2916
|
+
Revox::Models::AssistantCreateResponse::Assistant::Voice::Provider::TaggedSymbol
|
|
2917
|
+
]
|
|
853
2918
|
)
|
|
854
|
-
|
|
2919
|
+
end
|
|
2920
|
+
def self.values
|
|
2921
|
+
end
|
|
2922
|
+
end
|
|
2923
|
+
|
|
2924
|
+
# Cartesia TTS model (Cartesia only). Defaults to sonic-3 when omitted. Ignored
|
|
2925
|
+
# for other providers.
|
|
2926
|
+
module Model
|
|
2927
|
+
extend Revox::Internal::Type::Enum
|
|
2928
|
+
|
|
2929
|
+
TaggedSymbol =
|
|
2930
|
+
T.type_alias do
|
|
2931
|
+
T.all(
|
|
2932
|
+
Symbol,
|
|
2933
|
+
Revox::Models::AssistantCreateResponse::Assistant::Voice::Model
|
|
2934
|
+
)
|
|
2935
|
+
end
|
|
2936
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2937
|
+
|
|
2938
|
+
SONIC_3 =
|
|
855
2939
|
T.let(
|
|
856
|
-
:
|
|
857
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
2940
|
+
:"sonic-3",
|
|
2941
|
+
Revox::Models::AssistantCreateResponse::Assistant::Voice::Model::TaggedSymbol
|
|
858
2942
|
)
|
|
859
|
-
|
|
2943
|
+
SONIC_3_5 =
|
|
860
2944
|
T.let(
|
|
861
|
-
:
|
|
862
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
2945
|
+
:"sonic-3.5",
|
|
2946
|
+
Revox::Models::AssistantCreateResponse::Assistant::Voice::Model::TaggedSymbol
|
|
863
2947
|
)
|
|
864
2948
|
|
|
865
2949
|
sig do
|
|
866
2950
|
override.returns(
|
|
867
2951
|
T::Array[
|
|
868
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
2952
|
+
Revox::Models::AssistantCreateResponse::Assistant::Voice::Model::TaggedSymbol
|
|
869
2953
|
]
|
|
870
2954
|
)
|
|
871
2955
|
end
|
|
@@ -874,95 +2958,212 @@ module Revox
|
|
|
874
2958
|
end
|
|
875
2959
|
end
|
|
876
2960
|
|
|
877
|
-
class
|
|
2961
|
+
class Zoho < Revox::Internal::Type::BaseModel
|
|
878
2962
|
OrHash =
|
|
879
2963
|
T.type_alias do
|
|
880
2964
|
T.any(
|
|
881
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
2965
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho,
|
|
882
2966
|
Revox::Internal::AnyHash
|
|
883
2967
|
)
|
|
884
2968
|
end
|
|
885
2969
|
|
|
886
|
-
# The ID
|
|
2970
|
+
# The Nango connection ID linking the org's Zoho CRM account to Revox.
|
|
887
2971
|
sig { returns(String) }
|
|
888
|
-
attr_accessor :
|
|
2972
|
+
attr_accessor :connection_id
|
|
889
2973
|
|
|
890
|
-
#
|
|
2974
|
+
# Maps extracted call fields (structured_output / prompt variables) onto Zoho
|
|
2975
|
+
# field API names on the upserted record.
|
|
891
2976
|
sig do
|
|
892
2977
|
returns(
|
|
893
|
-
|
|
2978
|
+
T::Array[
|
|
2979
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::FieldMapping
|
|
2980
|
+
]
|
|
894
2981
|
)
|
|
895
2982
|
end
|
|
896
|
-
attr_accessor :
|
|
2983
|
+
attr_accessor :field_mapping
|
|
897
2984
|
|
|
898
|
-
#
|
|
899
|
-
#
|
|
900
|
-
sig { returns(T
|
|
901
|
-
|
|
2985
|
+
# When true, also log the call as a record in Zoho's Calls module (related to the
|
|
2986
|
+
# upserted prospect via Who_Id).
|
|
2987
|
+
sig { returns(T::Boolean) }
|
|
2988
|
+
attr_accessor :log_call_activity
|
|
902
2989
|
|
|
903
|
-
|
|
904
|
-
|
|
2990
|
+
# Zoho module the prospect record is upserted into (e.g. 'Leads' or 'Contacts').
|
|
2991
|
+
sig { returns(String) }
|
|
2992
|
+
attr_accessor :module_
|
|
2993
|
+
|
|
2994
|
+
# Which call outcomes trigger the Zoho push (e.g. ['interested', 'none']). Use
|
|
2995
|
+
# 'none' to push when outcome is null.
|
|
2996
|
+
sig do
|
|
2997
|
+
returns(
|
|
2998
|
+
T::Array[
|
|
2999
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3000
|
+
]
|
|
3001
|
+
)
|
|
3002
|
+
end
|
|
3003
|
+
attr_accessor :outcomes
|
|
3004
|
+
|
|
3005
|
+
# Optional Note body template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
3006
|
+
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{transcript}}, plus
|
|
3007
|
+
# prompt_variables and structured_output keys. When null/empty a default note
|
|
3008
|
+
# (outcome + summary + auto-listed extracted fields) is used.
|
|
3009
|
+
sig { returns(T.nilable(String)) }
|
|
3010
|
+
attr_accessor :template
|
|
905
3011
|
|
|
906
3012
|
sig do
|
|
907
3013
|
params(
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
3014
|
+
connection_id: String,
|
|
3015
|
+
field_mapping:
|
|
3016
|
+
T::Array[
|
|
3017
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::FieldMapping::OrHash
|
|
3018
|
+
],
|
|
3019
|
+
log_call_activity: T::Boolean,
|
|
3020
|
+
module_: String,
|
|
3021
|
+
outcomes:
|
|
3022
|
+
T::Array[
|
|
3023
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::Outcome::OrSymbol
|
|
3024
|
+
],
|
|
3025
|
+
template: T.nilable(String)
|
|
912
3026
|
).returns(T.attached_class)
|
|
913
3027
|
end
|
|
914
3028
|
def self.new(
|
|
915
|
-
# The ID
|
|
916
|
-
|
|
917
|
-
#
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
#
|
|
921
|
-
|
|
3029
|
+
# The Nango connection ID linking the org's Zoho CRM account to Revox.
|
|
3030
|
+
connection_id:,
|
|
3031
|
+
# Maps extracted call fields (structured_output / prompt variables) onto Zoho
|
|
3032
|
+
# field API names on the upserted record.
|
|
3033
|
+
field_mapping:,
|
|
3034
|
+
# When true, also log the call as a record in Zoho's Calls module (related to the
|
|
3035
|
+
# upserted prospect via Who_Id).
|
|
3036
|
+
log_call_activity:,
|
|
3037
|
+
# Zoho module the prospect record is upserted into (e.g. 'Leads' or 'Contacts').
|
|
3038
|
+
module_:,
|
|
3039
|
+
# Which call outcomes trigger the Zoho push (e.g. ['interested', 'none']). Use
|
|
3040
|
+
# 'none' to push when outcome is null.
|
|
3041
|
+
outcomes:,
|
|
3042
|
+
# Optional Note body template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
3043
|
+
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{transcript}}, plus
|
|
3044
|
+
# prompt_variables and structured_output keys. When null/empty a default note
|
|
3045
|
+
# (outcome + summary + auto-listed extracted fields) is used.
|
|
3046
|
+
template: nil
|
|
922
3047
|
)
|
|
923
3048
|
end
|
|
924
3049
|
|
|
925
3050
|
sig do
|
|
926
3051
|
override.returns(
|
|
927
3052
|
{
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
3053
|
+
connection_id: String,
|
|
3054
|
+
field_mapping:
|
|
3055
|
+
T::Array[
|
|
3056
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::FieldMapping
|
|
3057
|
+
],
|
|
3058
|
+
log_call_activity: T::Boolean,
|
|
3059
|
+
module_: String,
|
|
3060
|
+
outcomes:
|
|
3061
|
+
T::Array[
|
|
3062
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3063
|
+
],
|
|
3064
|
+
template: T.nilable(String)
|
|
932
3065
|
}
|
|
933
3066
|
)
|
|
934
3067
|
end
|
|
935
3068
|
def to_hash
|
|
936
3069
|
end
|
|
937
3070
|
|
|
938
|
-
|
|
939
|
-
|
|
3071
|
+
class FieldMapping < Revox::Internal::Type::BaseModel
|
|
3072
|
+
OrHash =
|
|
3073
|
+
T.type_alias do
|
|
3074
|
+
T.any(
|
|
3075
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::FieldMapping,
|
|
3076
|
+
Revox::Internal::AnyHash
|
|
3077
|
+
)
|
|
3078
|
+
end
|
|
3079
|
+
|
|
3080
|
+
# Source key to read from the call: a structured_output field name, falling back
|
|
3081
|
+
# to a prompt variable of the same name.
|
|
3082
|
+
sig { returns(String) }
|
|
3083
|
+
attr_accessor :source
|
|
3084
|
+
|
|
3085
|
+
# Destination Zoho field API name on the upserted record (e.g. 'Email', 'Company',
|
|
3086
|
+
# or a custom 'Budget\_\_c').
|
|
3087
|
+
sig { returns(String) }
|
|
3088
|
+
attr_accessor :zoho_field
|
|
3089
|
+
|
|
3090
|
+
sig do
|
|
3091
|
+
params(source: String, zoho_field: String).returns(
|
|
3092
|
+
T.attached_class
|
|
3093
|
+
)
|
|
3094
|
+
end
|
|
3095
|
+
def self.new(
|
|
3096
|
+
# Source key to read from the call: a structured_output field name, falling back
|
|
3097
|
+
# to a prompt variable of the same name.
|
|
3098
|
+
source:,
|
|
3099
|
+
# Destination Zoho field API name on the upserted record (e.g. 'Email', 'Company',
|
|
3100
|
+
# or a custom 'Budget\_\_c').
|
|
3101
|
+
zoho_field:
|
|
3102
|
+
)
|
|
3103
|
+
end
|
|
3104
|
+
|
|
3105
|
+
sig { override.returns({ source: String, zoho_field: String }) }
|
|
3106
|
+
def to_hash
|
|
3107
|
+
end
|
|
3108
|
+
end
|
|
3109
|
+
|
|
3110
|
+
module Outcome
|
|
940
3111
|
extend Revox::Internal::Type::Enum
|
|
941
3112
|
|
|
942
3113
|
TaggedSymbol =
|
|
943
3114
|
T.type_alias do
|
|
944
3115
|
T.all(
|
|
945
3116
|
Symbol,
|
|
946
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
3117
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::Outcome
|
|
947
3118
|
)
|
|
948
3119
|
end
|
|
949
3120
|
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
950
3121
|
|
|
951
|
-
|
|
3122
|
+
NOT_INTERESTED =
|
|
952
3123
|
T.let(
|
|
953
|
-
:
|
|
954
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
3124
|
+
:not_interested,
|
|
3125
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::Outcome::TaggedSymbol
|
|
955
3126
|
)
|
|
956
|
-
|
|
3127
|
+
INTERESTED =
|
|
957
3128
|
T.let(
|
|
958
|
-
:
|
|
959
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
3129
|
+
:interested,
|
|
3130
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3131
|
+
)
|
|
3132
|
+
COMPLETED =
|
|
3133
|
+
T.let(
|
|
3134
|
+
:completed,
|
|
3135
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3136
|
+
)
|
|
3137
|
+
REQUESTED_CALLBACK_LATER =
|
|
3138
|
+
T.let(
|
|
3139
|
+
:requested_callback_later,
|
|
3140
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3141
|
+
)
|
|
3142
|
+
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
3143
|
+
T.let(
|
|
3144
|
+
:requested_callback_new_number,
|
|
3145
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3146
|
+
)
|
|
3147
|
+
DO_NOT_CONTACT =
|
|
3148
|
+
T.let(
|
|
3149
|
+
:do_not_contact,
|
|
3150
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3151
|
+
)
|
|
3152
|
+
AI_AVERSE =
|
|
3153
|
+
T.let(
|
|
3154
|
+
:ai_averse,
|
|
3155
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3156
|
+
)
|
|
3157
|
+
NONE =
|
|
3158
|
+
T.let(
|
|
3159
|
+
:none,
|
|
3160
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::Outcome::TaggedSymbol
|
|
960
3161
|
)
|
|
961
3162
|
|
|
962
3163
|
sig do
|
|
963
3164
|
override.returns(
|
|
964
3165
|
T::Array[
|
|
965
|
-
Revox::Models::AssistantCreateResponse::Assistant::
|
|
3166
|
+
Revox::Models::AssistantCreateResponse::Assistant::Zoho::Outcome::TaggedSymbol
|
|
966
3167
|
]
|
|
967
3168
|
)
|
|
968
3169
|
end
|
|
@@ -971,6 +3172,60 @@ module Revox
|
|
|
971
3172
|
end
|
|
972
3173
|
end
|
|
973
3174
|
|
|
3175
|
+
class CreatedBy < Revox::Internal::Type::BaseModel
|
|
3176
|
+
OrHash =
|
|
3177
|
+
T.type_alias do
|
|
3178
|
+
T.any(
|
|
3179
|
+
Revox::Models::AssistantCreateResponse::Assistant::CreatedBy,
|
|
3180
|
+
Revox::Internal::AnyHash
|
|
3181
|
+
)
|
|
3182
|
+
end
|
|
3183
|
+
|
|
3184
|
+
# The database user id of the creator.
|
|
3185
|
+
sig { returns(String) }
|
|
3186
|
+
attr_accessor :id
|
|
3187
|
+
|
|
3188
|
+
sig { returns(String) }
|
|
3189
|
+
attr_accessor :email
|
|
3190
|
+
|
|
3191
|
+
sig { returns(T.nilable(String)) }
|
|
3192
|
+
attr_accessor :first_name
|
|
3193
|
+
|
|
3194
|
+
sig { returns(T.nilable(String)) }
|
|
3195
|
+
attr_accessor :last_name
|
|
3196
|
+
|
|
3197
|
+
# The user who created the assistant.
|
|
3198
|
+
sig do
|
|
3199
|
+
params(
|
|
3200
|
+
id: String,
|
|
3201
|
+
email: String,
|
|
3202
|
+
first_name: T.nilable(String),
|
|
3203
|
+
last_name: T.nilable(String)
|
|
3204
|
+
).returns(T.attached_class)
|
|
3205
|
+
end
|
|
3206
|
+
def self.new(
|
|
3207
|
+
# The database user id of the creator.
|
|
3208
|
+
id:,
|
|
3209
|
+
email:,
|
|
3210
|
+
first_name:,
|
|
3211
|
+
last_name:
|
|
3212
|
+
)
|
|
3213
|
+
end
|
|
3214
|
+
|
|
3215
|
+
sig do
|
|
3216
|
+
override.returns(
|
|
3217
|
+
{
|
|
3218
|
+
id: String,
|
|
3219
|
+
email: String,
|
|
3220
|
+
first_name: T.nilable(String),
|
|
3221
|
+
last_name: T.nilable(String)
|
|
3222
|
+
}
|
|
3223
|
+
)
|
|
3224
|
+
end
|
|
3225
|
+
def to_hash
|
|
3226
|
+
end
|
|
3227
|
+
end
|
|
3228
|
+
|
|
974
3229
|
class FaqItem < Revox::Internal::Type::BaseModel
|
|
975
3230
|
OrHash =
|
|
976
3231
|
T.type_alias do
|