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