revox 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -0
  3. data/README.md +40 -40
  4. data/lib/revox/models/assistant_clone_response.rb +87 -65
  5. data/lib/revox/models/assistant_create_params.rb +90 -66
  6. data/lib/revox/models/assistant_create_response.rb +87 -65
  7. data/lib/revox/models/assistant_list_response.rb +87 -65
  8. data/lib/revox/models/assistant_retrieve_response.rb +86 -65
  9. data/lib/revox/models/assistant_update_params.rb +90 -66
  10. data/lib/revox/models/assistant_update_response.rb +87 -65
  11. data/lib/revox/models/call_create_params.rb +117 -90
  12. data/lib/revox/models/call_create_response.rb +670 -90
  13. data/lib/revox/models/call_export_params.rb +1 -3
  14. data/lib/revox/models/call_phone_history_response.rb +0 -3
  15. data/lib/revox/models/call_retrieve_response.rb +671 -90
  16. data/lib/revox/models/call_search_params.rb +1 -3
  17. data/lib/revox/models/call_search_response.rb +670 -90
  18. data/lib/revox/models/campaign_create_params.rb +7 -57
  19. data/lib/revox/models/campaign_create_response.rb +108 -119
  20. data/lib/revox/models/campaign_get_rows_response.rb +672 -90
  21. data/lib/revox/models/campaign_launch_params.rb +182 -1
  22. data/lib/revox/models/campaign_launch_response.rb +3447 -1574
  23. data/lib/revox/models/campaign_list_response.rb +108 -119
  24. data/lib/revox/models/campaign_retrieve_response.rb +108 -119
  25. data/lib/revox/models/campaign_statistics_response.rb +51 -23
  26. data/lib/revox/models/campaign_update_params.rb +9 -78
  27. data/lib/revox/models/campaign_update_response.rb +108 -119
  28. data/lib/revox/models/phone_number_list_response.rb +87 -65
  29. data/lib/revox/models/phone_number_update_response.rb +87 -65
  30. data/lib/revox/models/voice_list_response.rb +1 -0
  31. data/lib/revox/models/voice_preview_params.rb +1 -0
  32. data/lib/revox/models/voice_retrieve_params.rb +1 -0
  33. data/lib/revox/resources/assistants.rb +10 -10
  34. data/lib/revox/resources/call.rb +4 -4
  35. data/lib/revox/resources/campaigns.rb +35 -31
  36. data/lib/revox/version.rb +1 -1
  37. data/rbi/revox/models/assistant_clone_response.rbi +157 -147
  38. data/rbi/revox/models/assistant_create_params.rbi +148 -162
  39. data/rbi/revox/models/assistant_create_response.rbi +157 -147
  40. data/rbi/revox/models/assistant_list_response.rbi +157 -147
  41. data/rbi/revox/models/assistant_retrieve_response.rbi +153 -147
  42. data/rbi/revox/models/assistant_update_params.rbi +148 -162
  43. data/rbi/revox/models/assistant_update_response.rbi +157 -147
  44. data/rbi/revox/models/call_create_params.rbi +190 -187
  45. data/rbi/revox/models/call_create_response.rbi +1138 -227
  46. data/rbi/revox/models/call_export_params.rbi +5 -15
  47. data/rbi/revox/models/call_phone_history_response.rbi +0 -15
  48. data/rbi/revox/models/call_retrieve_response.rbi +1138 -227
  49. data/rbi/revox/models/call_search_params.rbi +2 -9
  50. data/rbi/revox/models/call_search_response.rbi +1138 -227
  51. data/rbi/revox/models/campaign_create_params.rbi +9 -87
  52. data/rbi/revox/models/campaign_create_response.rbi +188 -266
  53. data/rbi/revox/models/campaign_get_rows_response.rbi +1138 -225
  54. data/rbi/revox/models/campaign_launch_params.rbi +511 -2
  55. data/rbi/revox/models/campaign_launch_response.rbi +6882 -3163
  56. data/rbi/revox/models/campaign_list_response.rbi +188 -262
  57. data/rbi/revox/models/campaign_retrieve_response.rbi +188 -266
  58. data/rbi/revox/models/campaign_statistics_response.rbi +94 -36
  59. data/rbi/revox/models/campaign_update_params.rbi +10 -128
  60. data/rbi/revox/models/campaign_update_response.rbi +188 -266
  61. data/rbi/revox/models/phone_number_list_response.rbi +157 -147
  62. data/rbi/revox/models/phone_number_update_response.rbi +157 -147
  63. data/rbi/revox/models/voice_list_response.rbi +5 -0
  64. data/rbi/revox/models/voice_preview_params.rbi +2 -0
  65. data/rbi/revox/models/voice_retrieve_params.rbi +2 -0
  66. data/rbi/revox/resources/assistants.rbi +40 -22
  67. data/rbi/revox/resources/call.rbi +7 -4
  68. data/rbi/revox/resources/campaigns.rbi +30 -36
  69. data/sig/revox/models/assistant_clone_response.rbs +46 -54
  70. data/sig/revox/models/assistant_create_params.rbs +39 -58
  71. data/sig/revox/models/assistant_create_response.rbs +46 -54
  72. data/sig/revox/models/assistant_list_response.rbs +46 -54
  73. data/sig/revox/models/assistant_retrieve_response.rbs +46 -54
  74. data/sig/revox/models/assistant_update_params.rbs +39 -58
  75. data/sig/revox/models/assistant_update_response.rbs +46 -54
  76. data/sig/revox/models/call_create_params.rbs +50 -71
  77. data/sig/revox/models/call_create_response.rbs +468 -77
  78. data/sig/revox/models/call_export_params.rbs +2 -6
  79. data/sig/revox/models/call_phone_history_response.rbs +1 -10
  80. data/sig/revox/models/call_retrieve_response.rbs +468 -77
  81. data/sig/revox/models/call_search_params.rbs +2 -6
  82. data/sig/revox/models/call_search_response.rbs +468 -77
  83. data/sig/revox/models/campaign_create_params.rbs +5 -50
  84. data/sig/revox/models/campaign_create_response.rbs +62 -98
  85. data/sig/revox/models/campaign_get_rows_response.rbs +467 -73
  86. data/sig/revox/models/campaign_launch_params.rbs +215 -2
  87. data/sig/revox/models/campaign_launch_response.rbs +2721 -1219
  88. data/sig/revox/models/campaign_list_response.rbs +62 -98
  89. data/sig/revox/models/campaign_retrieve_response.rbs +62 -98
  90. data/sig/revox/models/campaign_statistics_response.rbs +55 -24
  91. data/sig/revox/models/campaign_update_params.rbs +1 -69
  92. data/sig/revox/models/campaign_update_response.rbs +62 -98
  93. data/sig/revox/models/phone_number_list_response.rbs +46 -54
  94. data/sig/revox/models/phone_number_update_response.rbs +46 -54
  95. data/sig/revox/models/voice_list_response.rbs +2 -1
  96. data/sig/revox/models/voice_preview_params.rbs +2 -1
  97. data/sig/revox/models/voice_retrieve_params.rbs +2 -1
  98. data/sig/revox/resources/assistants.rbs +4 -4
  99. data/sig/revox/resources/call.rbs +1 -1
  100. data/sig/revox/resources/campaigns.rbs +3 -7
  101. metadata +2 -2
@@ -1,1692 +1,3194 @@
1
1
  module Revox
2
2
  module Models
3
3
  type campaign_launch_response =
4
- { campaign: Revox::Models::CampaignLaunchResponse::Campaign }
4
+ {
5
+ launched: Float,
6
+ skipped: Revox::Models::CampaignLaunchResponse::Skipped,
7
+ session: Revox::Models::CampaignLaunchResponse::Session
8
+ }
5
9
 
6
10
  class CampaignLaunchResponse < Revox::Internal::Type::BaseModel
7
- attr_accessor campaign: Revox::Models::CampaignLaunchResponse::Campaign
11
+ attr_accessor launched: Float
12
+
13
+ attr_accessor skipped: Revox::Models::CampaignLaunchResponse::Skipped
14
+
15
+ attr_reader session: Revox::Models::CampaignLaunchResponse::Session?
16
+
17
+ def session=: (
18
+ Revox::Models::CampaignLaunchResponse::Session
19
+ ) -> Revox::Models::CampaignLaunchResponse::Session
8
20
 
9
21
  def initialize: (
10
- campaign: Revox::Models::CampaignLaunchResponse::Campaign
22
+ launched: Float,
23
+ skipped: Revox::Models::CampaignLaunchResponse::Skipped,
24
+ ?session: Revox::Models::CampaignLaunchResponse::Session
11
25
  ) -> void
12
26
 
13
27
  def to_hash: -> {
14
- campaign: Revox::Models::CampaignLaunchResponse::Campaign
28
+ launched: Float,
29
+ skipped: Revox::Models::CampaignLaunchResponse::Skipped,
30
+ session: Revox::Models::CampaignLaunchResponse::Session
15
31
  }
16
32
 
17
- type campaign =
18
- {
19
- id: String,
20
- assistant_id: String,
21
- created_at: top,
22
- is_cancelled: bool,
23
- name: String,
24
- organization_id: String,
25
- status: Revox::Models::CampaignLaunchResponse::Campaign::status,
26
- type: Revox::Models::CampaignLaunchResponse::Campaign::type_,
27
- updated_at: top,
28
- active_takeover_call_id: String?,
29
- assistant: Revox::Models::CampaignLaunchResponse::Campaign::Assistant,
30
- call_retry_config: Revox::Models::CampaignLaunchResponse::Campaign::CallRetryConfig?,
31
- created_by: Revox::Models::CampaignLaunchResponse::Campaign::CreatedBy?,
32
- from_phone_number: String?,
33
- funnel_stats: Revox::Models::CampaignLaunchResponse::Campaign::FunnelStats,
34
- max_concurrent_calls: Float?,
35
- paused_reason: Revox::Models::CampaignLaunchResponse::Campaign::paused_reason?,
36
- present_count: Float,
37
- row_stats: Revox::Models::CampaignLaunchResponse::Campaign::RowStats,
38
- scheduled_at: top,
39
- structured_output_extraction: Revox::Models::CampaignLaunchResponse::Campaign::structured_output_extraction
40
- }
41
-
42
- class Campaign < Revox::Internal::Type::BaseModel
43
- attr_accessor id: String
44
-
45
- attr_accessor assistant_id: String
46
-
47
- attr_accessor created_at: top
48
-
49
- attr_accessor is_cancelled: bool
50
-
51
- attr_accessor name: String
52
-
53
- attr_accessor organization_id: String
54
-
55
- attr_accessor status: Revox::Models::CampaignLaunchResponse::Campaign::status
56
-
57
- attr_accessor type: Revox::Models::CampaignLaunchResponse::Campaign::type_
33
+ type skipped =
34
+ { active: Float, attempts_exhausted: Float, cancelled: Float }
58
35
 
59
- attr_accessor updated_at: top
36
+ class Skipped < Revox::Internal::Type::BaseModel
37
+ attr_accessor active: Float
60
38
 
61
- attr_accessor active_takeover_call_id: String?
39
+ attr_accessor attempts_exhausted: Float
62
40
 
63
- attr_reader assistant: Revox::Models::CampaignLaunchResponse::Campaign::Assistant?
41
+ attr_accessor cancelled: Float
64
42
 
65
- def assistant=: (
66
- Revox::Models::CampaignLaunchResponse::Campaign::Assistant
67
- ) -> Revox::Models::CampaignLaunchResponse::Campaign::Assistant
68
-
69
- attr_accessor call_retry_config: Revox::Models::CampaignLaunchResponse::Campaign::CallRetryConfig?
70
-
71
- attr_accessor created_by: Revox::Models::CampaignLaunchResponse::Campaign::CreatedBy?
43
+ def initialize: (
44
+ active: Float,
45
+ attempts_exhausted: Float,
46
+ cancelled: Float
47
+ ) -> void
72
48
 
73
- attr_accessor from_phone_number: String?
49
+ def to_hash: -> {
50
+ active: Float,
51
+ attempts_exhausted: Float,
52
+ cancelled: Float
53
+ }
54
+ end
74
55
 
75
- attr_reader funnel_stats: Revox::Models::CampaignLaunchResponse::Campaign::FunnelStats?
56
+ type session =
57
+ {
58
+ id: String,
59
+ campaign_id: String,
60
+ connected_count: Float,
61
+ created_at: Revox::Models::CampaignLaunchResponse::Session::created_at,
62
+ current_call_id: String?,
63
+ dialed_count: Float,
64
+ ended_at: Revox::Models::CampaignLaunchResponse::Session::ended_at?,
65
+ in_flight_calls: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall],
66
+ outcome_filter: ::Array[Revox::Models::CampaignLaunchResponse::Session::outcome_filter],
67
+ status: Revox::Models::CampaignLaunchResponse::Session::status,
68
+ total_targets: Float
69
+ }
76
70
 
77
- def funnel_stats=: (
78
- Revox::Models::CampaignLaunchResponse::Campaign::FunnelStats
79
- ) -> Revox::Models::CampaignLaunchResponse::Campaign::FunnelStats
71
+ class Session < Revox::Internal::Type::BaseModel
72
+ attr_accessor id: String
80
73
 
81
- attr_accessor max_concurrent_calls: Float?
74
+ attr_accessor campaign_id: String
82
75
 
83
- attr_accessor paused_reason: Revox::Models::CampaignLaunchResponse::Campaign::paused_reason?
76
+ attr_accessor connected_count: Float
84
77
 
85
- attr_reader present_count: Float?
78
+ attr_accessor created_at: Revox::Models::CampaignLaunchResponse::Session::created_at
86
79
 
87
- def present_count=: (Float) -> Float
80
+ attr_accessor current_call_id: String?
88
81
 
89
- attr_reader row_stats: Revox::Models::CampaignLaunchResponse::Campaign::RowStats?
82
+ attr_accessor dialed_count: Float
90
83
 
91
- def row_stats=: (
92
- Revox::Models::CampaignLaunchResponse::Campaign::RowStats
93
- ) -> Revox::Models::CampaignLaunchResponse::Campaign::RowStats
84
+ attr_accessor ended_at: Revox::Models::CampaignLaunchResponse::Session::ended_at?
94
85
 
95
- attr_reader scheduled_at: top?
86
+ attr_accessor in_flight_calls: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall]
96
87
 
97
- def scheduled_at=: (top) -> top
88
+ attr_accessor outcome_filter: ::Array[Revox::Models::CampaignLaunchResponse::Session::outcome_filter]
98
89
 
99
- attr_reader structured_output_extraction: Revox::Models::CampaignLaunchResponse::Campaign::structured_output_extraction?
90
+ attr_accessor status: Revox::Models::CampaignLaunchResponse::Session::status
100
91
 
101
- def structured_output_extraction=: (
102
- Revox::Models::CampaignLaunchResponse::Campaign::structured_output_extraction
103
- ) -> Revox::Models::CampaignLaunchResponse::Campaign::structured_output_extraction
92
+ attr_accessor total_targets: Float
104
93
 
105
94
  def initialize: (
106
95
  id: String,
107
- assistant_id: String,
108
- created_at: top,
109
- is_cancelled: bool,
110
- name: String,
111
- organization_id: String,
112
- status: Revox::Models::CampaignLaunchResponse::Campaign::status,
113
- type: Revox::Models::CampaignLaunchResponse::Campaign::type_,
114
- updated_at: top,
115
- ?active_takeover_call_id: String?,
116
- ?assistant: Revox::Models::CampaignLaunchResponse::Campaign::Assistant,
117
- ?call_retry_config: Revox::Models::CampaignLaunchResponse::Campaign::CallRetryConfig?,
118
- ?created_by: Revox::Models::CampaignLaunchResponse::Campaign::CreatedBy?,
119
- ?from_phone_number: String?,
120
- ?funnel_stats: Revox::Models::CampaignLaunchResponse::Campaign::FunnelStats,
121
- ?max_concurrent_calls: Float?,
122
- ?paused_reason: Revox::Models::CampaignLaunchResponse::Campaign::paused_reason?,
123
- ?present_count: Float,
124
- ?row_stats: Revox::Models::CampaignLaunchResponse::Campaign::RowStats,
125
- ?scheduled_at: top,
126
- ?structured_output_extraction: Revox::Models::CampaignLaunchResponse::Campaign::structured_output_extraction
96
+ campaign_id: String,
97
+ connected_count: Float,
98
+ created_at: Revox::Models::CampaignLaunchResponse::Session::created_at,
99
+ current_call_id: String?,
100
+ dialed_count: Float,
101
+ ended_at: Revox::Models::CampaignLaunchResponse::Session::ended_at?,
102
+ in_flight_calls: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall],
103
+ outcome_filter: ::Array[Revox::Models::CampaignLaunchResponse::Session::outcome_filter],
104
+ status: Revox::Models::CampaignLaunchResponse::Session::status,
105
+ total_targets: Float
127
106
  ) -> void
128
107
 
129
108
  def to_hash: -> {
130
109
  id: String,
131
- assistant_id: String,
132
- created_at: top,
133
- is_cancelled: bool,
134
- name: String,
135
- organization_id: String,
136
- status: Revox::Models::CampaignLaunchResponse::Campaign::status,
137
- type: Revox::Models::CampaignLaunchResponse::Campaign::type_,
138
- updated_at: top,
139
- active_takeover_call_id: String?,
140
- assistant: Revox::Models::CampaignLaunchResponse::Campaign::Assistant,
141
- call_retry_config: Revox::Models::CampaignLaunchResponse::Campaign::CallRetryConfig?,
142
- created_by: Revox::Models::CampaignLaunchResponse::Campaign::CreatedBy?,
143
- from_phone_number: String?,
144
- funnel_stats: Revox::Models::CampaignLaunchResponse::Campaign::FunnelStats,
145
- max_concurrent_calls: Float?,
146
- paused_reason: Revox::Models::CampaignLaunchResponse::Campaign::paused_reason?,
147
- present_count: Float,
148
- row_stats: Revox::Models::CampaignLaunchResponse::Campaign::RowStats,
149
- scheduled_at: top,
150
- structured_output_extraction: Revox::Models::CampaignLaunchResponse::Campaign::structured_output_extraction
110
+ campaign_id: String,
111
+ connected_count: Float,
112
+ created_at: Revox::Models::CampaignLaunchResponse::Session::created_at,
113
+ current_call_id: String?,
114
+ dialed_count: Float,
115
+ ended_at: Revox::Models::CampaignLaunchResponse::Session::ended_at?,
116
+ in_flight_calls: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall],
117
+ outcome_filter: ::Array[Revox::Models::CampaignLaunchResponse::Session::outcome_filter],
118
+ status: Revox::Models::CampaignLaunchResponse::Session::status,
119
+ total_targets: Float
151
120
  }
152
121
 
153
- type status = :draft | :running | :paused | :completed
154
-
155
- module Status
156
- extend Revox::Internal::Type::Enum
122
+ type created_at = Time | top
157
123
 
158
- DRAFT: :draft
159
- RUNNING: :running
160
- PAUSED: :paused
161
- COMPLETED: :completed
124
+ module CreatedAt
125
+ extend Revox::Internal::Type::Union
162
126
 
163
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::status]
127
+ def self?.variants: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::created_at]
164
128
  end
165
129
 
166
- type type_ = :regular | :jump_in
167
-
168
- module Type
169
- extend Revox::Internal::Type::Enum
130
+ type ended_at = Time | top
170
131
 
171
- REGULAR: :regular
172
- JUMP_IN: :jump_in
132
+ module EndedAt
133
+ extend Revox::Internal::Type::Union
173
134
 
174
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::type_]
135
+ def self?.variants: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::ended_at]
175
136
  end
176
137
 
177
- type assistant =
138
+ type in_flight_call =
178
139
  {
179
140
  id: String,
180
- after_call_sms_outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::after_call_sms_outcome]?,
181
- after_call_sms_prompt: String?,
182
- background_sound: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::background_sound?,
183
- background_sound_volume: Float,
184
- calendly: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Calendly?,
185
- call_retry_config: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CallRetryConfig?,
186
- cartesia_dictionary_pronunciation_id: String?,
141
+ assignee: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assignee?,
142
+ assistant: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant?,
143
+ call_attempts: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt],
144
+ call_retry_config: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallRetryConfig?,
145
+ calls_count: Float,
146
+ campaign: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Campaign?,
147
+ contact: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Contact,
187
148
  created_at: top,
188
- custom_tools: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool]?,
189
- email_notification_address: String?,
190
- email_notification_language: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::email_notification_language,
191
- email_notification_outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::email_notification_outcome]?,
192
- end_of_call_sentence: String?,
193
- first_sentence: String?,
149
+ direction: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::direction,
194
150
  first_sentence_delay_ms: Integer,
195
- first_sentence_mode: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::first_sentence_mode,
196
- from_phone_number: String?,
197
- human_transfer_mode: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::human_transfer_mode?,
198
- ivr_navigation_enabled: bool,
199
- llm_model: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::llm_model,
200
- logo_url: String?,
201
- max_call_duration_secs: Float,
202
- max_duration_end_message: String?,
203
- name: String,
151
+ from_phone_number: String,
152
+ is_cancelled: bool,
153
+ is_completed: bool,
154
+ last_call_attempt: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt?,
155
+ llm_model: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::llm_model,
156
+ metadata: ::Hash[Symbol, String]?,
204
157
  organization_id: String,
205
- position: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Position?,
206
- prompt: String,
207
- prompt_flow: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow?,
208
- slack: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Slack?,
209
- sms_enabled: bool,
210
- sms_template: String?,
211
- structured_output_config: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::StructuredOutputConfig]?,
212
- structured_output_prompt: String?,
213
- stt_context: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::SttContext?,
214
- stt_model: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::stt_model,
215
- thinking_sound: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::thinking_sound?,
216
- thinking_sound_probability: Float,
217
- thinking_sound_volume: Float,
218
- transfer_phone_number: String?,
219
- type: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::type_,
158
+ prompt_variables: ::Hash[Symbol, String]?,
159
+ scheduled_at: top,
160
+ status: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::status,
161
+ to_phone_number: String,
220
162
  updated_at: top,
221
- voice: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Voice?,
222
- voicemail_message: String?,
223
- voicemail_sms_prompt: String?,
224
- warm_transfer_summary_instructions: String?,
225
- webhook_url: String?,
226
- zoho: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Zoho?,
227
- created_by: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CreatedBy?,
228
- faq_items: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::FaqItem],
229
- is_realestate_assistant: bool,
230
- pending_faq_count: Float
163
+ follow_up_emails: ::Array[String]?,
164
+ outcome: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::outcome?,
165
+ outcome_summary: String?,
166
+ slack_channel_ids: ::Array[String]?
231
167
  }
232
168
 
233
- class Assistant < Revox::Internal::Type::BaseModel
169
+ class InFlightCall < Revox::Internal::Type::BaseModel
234
170
  attr_accessor id: String
235
171
 
236
- attr_accessor after_call_sms_outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::after_call_sms_outcome]?
172
+ attr_accessor assignee: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assignee?
237
173
 
238
- attr_accessor after_call_sms_prompt: String?
174
+ attr_accessor assistant: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant?
239
175
 
240
- attr_accessor background_sound: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::background_sound?
176
+ attr_accessor call_attempts: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt]
241
177
 
242
- attr_accessor background_sound_volume: Float
178
+ attr_accessor call_retry_config: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallRetryConfig?
243
179
 
244
- attr_accessor calendly: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Calendly?
180
+ attr_accessor calls_count: Float
245
181
 
246
- attr_accessor call_retry_config: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CallRetryConfig?
182
+ attr_accessor campaign: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Campaign?
247
183
 
248
- attr_accessor cartesia_dictionary_pronunciation_id: String?
184
+ attr_accessor contact: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Contact
249
185
 
250
186
  attr_accessor created_at: top
251
187
 
252
- attr_accessor custom_tools: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool]?
188
+ attr_accessor direction: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::direction
189
+
190
+ attr_accessor first_sentence_delay_ms: Integer
253
191
 
254
- attr_accessor email_notification_address: String?
192
+ attr_accessor from_phone_number: String
255
193
 
256
- attr_accessor email_notification_language: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::email_notification_language
194
+ attr_accessor is_cancelled: bool
257
195
 
258
- attr_accessor email_notification_outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::email_notification_outcome]?
196
+ attr_accessor is_completed: bool
259
197
 
260
- attr_accessor end_of_call_sentence: String?
198
+ attr_accessor last_call_attempt: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt?
261
199
 
262
- attr_accessor first_sentence: String?
200
+ attr_accessor llm_model: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::llm_model
263
201
 
264
- attr_accessor first_sentence_delay_ms: Integer
202
+ attr_accessor metadata: ::Hash[Symbol, String]?
265
203
 
266
- attr_accessor first_sentence_mode: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::first_sentence_mode
204
+ attr_accessor organization_id: String
205
+
206
+ attr_accessor prompt_variables: ::Hash[Symbol, String]?
267
207
 
268
- attr_accessor from_phone_number: String?
208
+ attr_accessor scheduled_at: top
269
209
 
270
- attr_accessor human_transfer_mode: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::human_transfer_mode?
210
+ attr_accessor status: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::status
271
211
 
272
- attr_accessor ivr_navigation_enabled: bool
212
+ attr_accessor to_phone_number: String
273
213
 
274
- attr_accessor llm_model: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::llm_model
214
+ attr_accessor updated_at: top
275
215
 
276
- attr_accessor logo_url: String?
216
+ attr_accessor follow_up_emails: ::Array[String]?
277
217
 
278
- attr_accessor max_call_duration_secs: Float
218
+ attr_accessor outcome: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::outcome?
279
219
 
280
- attr_accessor max_duration_end_message: String?
220
+ attr_accessor outcome_summary: String?
281
221
 
282
- attr_accessor name: String
222
+ attr_accessor slack_channel_ids: ::Array[String]?
283
223
 
284
- attr_accessor organization_id: String
224
+ def initialize: (
225
+ id: String,
226
+ assignee: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assignee?,
227
+ assistant: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant?,
228
+ call_attempts: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt],
229
+ call_retry_config: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallRetryConfig?,
230
+ calls_count: Float,
231
+ campaign: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Campaign?,
232
+ contact: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Contact,
233
+ created_at: top,
234
+ direction: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::direction,
235
+ first_sentence_delay_ms: Integer,
236
+ from_phone_number: String,
237
+ is_cancelled: bool,
238
+ is_completed: bool,
239
+ last_call_attempt: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt?,
240
+ llm_model: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::llm_model,
241
+ metadata: ::Hash[Symbol, String]?,
242
+ organization_id: String,
243
+ prompt_variables: ::Hash[Symbol, String]?,
244
+ scheduled_at: top,
245
+ status: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::status,
246
+ to_phone_number: String,
247
+ updated_at: top,
248
+ ?follow_up_emails: ::Array[String]?,
249
+ ?outcome: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::outcome?,
250
+ ?outcome_summary: String?,
251
+ ?slack_channel_ids: ::Array[String]?
252
+ ) -> void
253
+
254
+ def to_hash: -> {
255
+ id: String,
256
+ assignee: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assignee?,
257
+ assistant: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant?,
258
+ call_attempts: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt],
259
+ call_retry_config: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallRetryConfig?,
260
+ calls_count: Float,
261
+ campaign: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Campaign?,
262
+ contact: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Contact,
263
+ created_at: top,
264
+ direction: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::direction,
265
+ first_sentence_delay_ms: Integer,
266
+ from_phone_number: String,
267
+ is_cancelled: bool,
268
+ is_completed: bool,
269
+ last_call_attempt: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt?,
270
+ llm_model: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::llm_model,
271
+ metadata: ::Hash[Symbol, String]?,
272
+ organization_id: String,
273
+ prompt_variables: ::Hash[Symbol, String]?,
274
+ scheduled_at: top,
275
+ status: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::status,
276
+ to_phone_number: String,
277
+ updated_at: top,
278
+ follow_up_emails: ::Array[String]?,
279
+ outcome: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::outcome?,
280
+ outcome_summary: String?,
281
+ slack_channel_ids: ::Array[String]?
282
+ }
283
+
284
+ type assignee =
285
+ {
286
+ id: String,
287
+ email: String,
288
+ first_name: String?,
289
+ last_name: String?
290
+ }
291
+
292
+ class Assignee < Revox::Internal::Type::BaseModel
293
+ attr_accessor id: String
285
294
 
286
- attr_accessor position: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Position?
295
+ attr_accessor email: String
287
296
 
288
- attr_accessor prompt: String
297
+ attr_accessor first_name: String?
289
298
 
290
- attr_accessor prompt_flow: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow?
299
+ attr_accessor last_name: String?
291
300
 
292
- attr_accessor slack: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Slack?
301
+ def initialize: (
302
+ id: String,
303
+ email: String,
304
+ first_name: String?,
305
+ last_name: String?
306
+ ) -> void
293
307
 
294
- attr_accessor sms_enabled: bool
308
+ def to_hash: -> {
309
+ id: String,
310
+ email: String,
311
+ first_name: String?,
312
+ last_name: String?
313
+ }
314
+ end
295
315
 
296
- attr_accessor sms_template: String?
316
+ type assistant =
317
+ {
318
+ id: String,
319
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::after_call_sms_outcome]?,
320
+ after_call_sms_prompt: String?,
321
+ background_sound: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::background_sound?,
322
+ background_sound_volume: Float,
323
+ calendly: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Calendly?,
324
+ call_retry_config: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CallRetryConfig?,
325
+ cartesia_dictionary_pronunciation_id: String?,
326
+ created_at: top,
327
+ custom_tools: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool]?,
328
+ email_notification_address: String?,
329
+ email_notification_outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::email_notification_outcome]?,
330
+ end_of_call_sentence: String?,
331
+ first_sentence: String?,
332
+ first_sentence_delay_ms: Integer,
333
+ first_sentence_mode: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::first_sentence_mode,
334
+ from_phone_number: String?,
335
+ human_transfer_mode: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::human_transfer_mode?,
336
+ ivr_navigation_enabled: bool,
337
+ llm_model: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::llm_model,
338
+ logo_url: String?,
339
+ max_call_duration_secs: Float,
340
+ max_duration_end_message: String?,
341
+ name: String,
342
+ organization_id: String,
343
+ position: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Position?,
344
+ precall_lookup_url: String?,
345
+ prompt: String,
346
+ prompt_flow: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow?,
347
+ slack: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Slack?,
348
+ sms_enabled: bool,
349
+ sms_template: String?,
350
+ structured_output_config: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::StructuredOutputConfig]?,
351
+ structured_output_prompt: String?,
352
+ stt_context: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::SttContext?,
353
+ stt_model: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::stt_model,
354
+ thinking_sound: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::thinking_sound?,
355
+ thinking_sound_probability: Float,
356
+ thinking_sound_volume: Float,
357
+ transfer_destinations: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::TransferDestination]?,
358
+ type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::type_,
359
+ updated_at: top,
360
+ voice: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Voice?,
361
+ voicemail_message: String?,
362
+ voicemail_sms_prompt: String?,
363
+ warm_transfer_summary_instructions: String?,
364
+ webhook_url: String?,
365
+ zoho: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Zoho?,
366
+ created_by: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CreatedBy?,
367
+ faq_items: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::FaqItem],
368
+ is_inbound_receptionist: bool,
369
+ is_realestate_assistant: bool,
370
+ pending_faq_count: Float
371
+ }
297
372
 
298
- attr_accessor structured_output_config: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::StructuredOutputConfig]?
373
+ class Assistant < Revox::Internal::Type::BaseModel
374
+ attr_accessor id: String
299
375
 
300
- attr_accessor structured_output_prompt: String?
376
+ attr_accessor after_call_sms_outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::after_call_sms_outcome]?
301
377
 
302
- attr_accessor stt_context: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::SttContext?
378
+ attr_accessor after_call_sms_prompt: String?
303
379
 
304
- attr_accessor stt_model: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::stt_model
380
+ attr_accessor background_sound: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::background_sound?
305
381
 
306
- attr_accessor thinking_sound: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::thinking_sound?
382
+ attr_accessor background_sound_volume: Float
307
383
 
308
- attr_accessor thinking_sound_probability: Float
384
+ attr_accessor calendly: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Calendly?
309
385
 
310
- attr_accessor thinking_sound_volume: Float
386
+ attr_accessor call_retry_config: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CallRetryConfig?
311
387
 
312
- attr_accessor transfer_phone_number: String?
388
+ attr_accessor cartesia_dictionary_pronunciation_id: String?
313
389
 
314
- attr_accessor type: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::type_
390
+ attr_accessor created_at: top
315
391
 
316
- attr_accessor updated_at: top
392
+ attr_accessor custom_tools: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool]?
317
393
 
318
- attr_accessor voice: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Voice?
394
+ attr_accessor email_notification_address: String?
319
395
 
320
- attr_accessor voicemail_message: String?
396
+ attr_accessor email_notification_outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::email_notification_outcome]?
321
397
 
322
- attr_accessor voicemail_sms_prompt: String?
398
+ attr_accessor end_of_call_sentence: String?
323
399
 
324
- attr_accessor warm_transfer_summary_instructions: String?
400
+ attr_accessor first_sentence: String?
325
401
 
326
- attr_accessor webhook_url: String?
402
+ attr_accessor first_sentence_delay_ms: Integer
327
403
 
328
- attr_accessor zoho: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Zoho?
404
+ attr_accessor first_sentence_mode: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::first_sentence_mode
329
405
 
330
- attr_accessor created_by: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CreatedBy?
406
+ attr_accessor from_phone_number: String?
331
407
 
332
- attr_reader faq_items: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::FaqItem]?
408
+ attr_accessor human_transfer_mode: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::human_transfer_mode?
333
409
 
334
- def faq_items=: (
335
- ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::FaqItem]
336
- ) -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::FaqItem]
410
+ attr_accessor ivr_navigation_enabled: bool
337
411
 
338
- attr_reader is_realestate_assistant: bool?
412
+ attr_accessor llm_model: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::llm_model
339
413
 
340
- def is_realestate_assistant=: (bool) -> bool
414
+ attr_accessor logo_url: String?
341
415
 
342
- attr_reader pending_faq_count: Float?
416
+ attr_accessor max_call_duration_secs: Float
343
417
 
344
- def pending_faq_count=: (Float) -> Float
418
+ attr_accessor max_duration_end_message: String?
345
419
 
346
- def initialize: (
347
- id: String,
348
- after_call_sms_outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::after_call_sms_outcome]?,
349
- after_call_sms_prompt: String?,
350
- background_sound: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::background_sound?,
351
- background_sound_volume: Float,
352
- calendly: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Calendly?,
353
- call_retry_config: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CallRetryConfig?,
354
- cartesia_dictionary_pronunciation_id: String?,
355
- created_at: top,
356
- custom_tools: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool]?,
357
- email_notification_address: String?,
358
- email_notification_language: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::email_notification_language,
359
- email_notification_outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::email_notification_outcome]?,
360
- end_of_call_sentence: String?,
361
- first_sentence: String?,
362
- first_sentence_delay_ms: Integer,
363
- first_sentence_mode: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::first_sentence_mode,
364
- from_phone_number: String?,
365
- human_transfer_mode: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::human_transfer_mode?,
366
- ivr_navigation_enabled: bool,
367
- llm_model: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::llm_model,
368
- logo_url: String?,
369
- max_call_duration_secs: Float,
370
- max_duration_end_message: String?,
371
- name: String,
372
- organization_id: String,
373
- position: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Position?,
374
- prompt: String,
375
- prompt_flow: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow?,
376
- slack: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Slack?,
377
- sms_enabled: bool,
378
- sms_template: String?,
379
- structured_output_config: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::StructuredOutputConfig]?,
380
- structured_output_prompt: String?,
381
- stt_context: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::SttContext?,
382
- stt_model: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::stt_model,
383
- thinking_sound: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::thinking_sound?,
384
- thinking_sound_probability: Float,
385
- thinking_sound_volume: Float,
386
- transfer_phone_number: String?,
387
- type: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::type_,
388
- updated_at: top,
389
- voice: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Voice?,
390
- voicemail_message: String?,
391
- voicemail_sms_prompt: String?,
392
- warm_transfer_summary_instructions: String?,
393
- webhook_url: String?,
394
- zoho: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Zoho?,
395
- ?created_by: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CreatedBy?,
396
- ?faq_items: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::FaqItem],
397
- ?is_realestate_assistant: bool,
398
- ?pending_faq_count: Float
399
- ) -> void
420
+ attr_accessor name: String
400
421
 
401
- def to_hash: -> {
402
- id: String,
403
- after_call_sms_outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::after_call_sms_outcome]?,
404
- after_call_sms_prompt: String?,
405
- background_sound: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::background_sound?,
406
- background_sound_volume: Float,
407
- calendly: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Calendly?,
408
- call_retry_config: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CallRetryConfig?,
409
- cartesia_dictionary_pronunciation_id: String?,
410
- created_at: top,
411
- custom_tools: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool]?,
412
- email_notification_address: String?,
413
- email_notification_language: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::email_notification_language,
414
- email_notification_outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::email_notification_outcome]?,
415
- end_of_call_sentence: String?,
416
- first_sentence: String?,
417
- first_sentence_delay_ms: Integer,
418
- first_sentence_mode: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::first_sentence_mode,
419
- from_phone_number: String?,
420
- human_transfer_mode: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::human_transfer_mode?,
421
- ivr_navigation_enabled: bool,
422
- llm_model: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::llm_model,
423
- logo_url: String?,
424
- max_call_duration_secs: Float,
425
- max_duration_end_message: String?,
426
- name: String,
427
- organization_id: String,
428
- position: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Position?,
429
- prompt: String,
430
- prompt_flow: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow?,
431
- slack: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Slack?,
432
- sms_enabled: bool,
433
- sms_template: String?,
434
- structured_output_config: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::StructuredOutputConfig]?,
435
- structured_output_prompt: String?,
436
- stt_context: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::SttContext?,
437
- stt_model: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::stt_model,
438
- thinking_sound: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::thinking_sound?,
439
- thinking_sound_probability: Float,
440
- thinking_sound_volume: Float,
441
- transfer_phone_number: String?,
442
- type: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::type_,
443
- updated_at: top,
444
- voice: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Voice?,
445
- voicemail_message: String?,
446
- voicemail_sms_prompt: String?,
447
- warm_transfer_summary_instructions: String?,
448
- webhook_url: String?,
449
- zoho: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Zoho?,
450
- created_by: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CreatedBy?,
451
- faq_items: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::FaqItem],
452
- is_realestate_assistant: bool,
453
- pending_faq_count: Float
454
- }
422
+ attr_accessor organization_id: String
455
423
 
456
- type after_call_sms_outcome =
457
- :not_interested
458
- | :interested
459
- | :completed
460
- | :requested_callback_later
461
- | :requested_callback_new_number
462
- | :do_not_contact
463
- | :ai_averse
464
- | :none
424
+ attr_accessor position: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Position?
465
425
 
466
- module AfterCallSMSOutcome
467
- extend Revox::Internal::Type::Enum
426
+ attr_accessor precall_lookup_url: String?
468
427
 
469
- NOT_INTERESTED: :not_interested
470
- INTERESTED: :interested
471
- COMPLETED: :completed
472
- REQUESTED_CALLBACK_LATER: :requested_callback_later
473
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
474
- DO_NOT_CONTACT: :do_not_contact
475
- AI_AVERSE: :ai_averse
476
- NONE: :none
428
+ attr_accessor prompt: String
477
429
 
478
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::after_call_sms_outcome]
479
- end
430
+ attr_accessor prompt_flow: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow?
480
431
 
481
- type background_sound = :"audio/office.ogg"
432
+ attr_accessor slack: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Slack?
482
433
 
483
- module BackgroundSound
484
- extend Revox::Internal::Type::Enum
434
+ attr_accessor sms_enabled: bool
485
435
 
486
- AUDIO_OFFICE_OGG: :"audio/office.ogg"
436
+ attr_accessor sms_template: String?
487
437
 
488
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::background_sound]
489
- end
438
+ attr_accessor structured_output_config: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::StructuredOutputConfig]?
490
439
 
491
- type calendly = { connection_id: String, event_type_id: String }
440
+ attr_accessor structured_output_prompt: String?
492
441
 
493
- class Calendly < Revox::Internal::Type::BaseModel
494
- attr_accessor connection_id: String
442
+ attr_accessor stt_context: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::SttContext?
495
443
 
496
- attr_accessor event_type_id: String
444
+ attr_accessor stt_model: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::stt_model
497
445
 
498
- def initialize: (
499
- connection_id: String,
500
- event_type_id: String
501
- ) -> void
446
+ attr_accessor thinking_sound: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::thinking_sound?
502
447
 
503
- def to_hash: -> { connection_id: String, event_type_id: String }
504
- end
448
+ attr_accessor thinking_sound_probability: Float
505
449
 
506
- type call_retry_config =
507
- {
508
- allowed_days: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CallRetryConfig::allowed_day],
509
- call_twice_in_a_row: bool,
510
- calling_windows: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CallRetryConfig::CallingWindow],
511
- max_retry_attempts: Integer,
512
- timezone: String?
513
- }
450
+ attr_accessor thinking_sound_volume: Float
514
451
 
515
- class CallRetryConfig < Revox::Internal::Type::BaseModel
516
- attr_accessor allowed_days: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CallRetryConfig::allowed_day]
452
+ attr_accessor transfer_destinations: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::TransferDestination]?
517
453
 
518
- attr_accessor call_twice_in_a_row: bool
454
+ attr_accessor type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::type_
519
455
 
520
- attr_accessor calling_windows: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CallRetryConfig::CallingWindow]
456
+ attr_accessor updated_at: top
521
457
 
522
- attr_accessor max_retry_attempts: Integer
458
+ attr_accessor voice: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Voice?
523
459
 
524
- attr_accessor timezone: String?
460
+ attr_accessor voicemail_message: String?
461
+
462
+ attr_accessor voicemail_sms_prompt: String?
463
+
464
+ attr_accessor warm_transfer_summary_instructions: String?
465
+
466
+ attr_accessor webhook_url: String?
467
+
468
+ attr_accessor zoho: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Zoho?
469
+
470
+ attr_accessor created_by: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CreatedBy?
471
+
472
+ attr_reader faq_items: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::FaqItem]?
473
+
474
+ def faq_items=: (
475
+ ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::FaqItem]
476
+ ) -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::FaqItem]
477
+
478
+ attr_reader is_inbound_receptionist: bool?
479
+
480
+ def is_inbound_receptionist=: (bool) -> bool
481
+
482
+ attr_reader is_realestate_assistant: bool?
483
+
484
+ def is_realestate_assistant=: (bool) -> bool
485
+
486
+ attr_reader pending_faq_count: Float?
487
+
488
+ def pending_faq_count=: (Float) -> Float
525
489
 
526
490
  def initialize: (
527
- allowed_days: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CallRetryConfig::allowed_day],
528
- call_twice_in_a_row: bool,
529
- calling_windows: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CallRetryConfig::CallingWindow],
530
- max_retry_attempts: Integer,
531
- ?timezone: String?
491
+ id: String,
492
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::after_call_sms_outcome]?,
493
+ after_call_sms_prompt: String?,
494
+ background_sound: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::background_sound?,
495
+ background_sound_volume: Float,
496
+ calendly: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Calendly?,
497
+ call_retry_config: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CallRetryConfig?,
498
+ cartesia_dictionary_pronunciation_id: String?,
499
+ created_at: top,
500
+ custom_tools: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool]?,
501
+ email_notification_address: String?,
502
+ email_notification_outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::email_notification_outcome]?,
503
+ end_of_call_sentence: String?,
504
+ first_sentence: String?,
505
+ first_sentence_delay_ms: Integer,
506
+ first_sentence_mode: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::first_sentence_mode,
507
+ from_phone_number: String?,
508
+ human_transfer_mode: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::human_transfer_mode?,
509
+ ivr_navigation_enabled: bool,
510
+ llm_model: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::llm_model,
511
+ logo_url: String?,
512
+ max_call_duration_secs: Float,
513
+ max_duration_end_message: String?,
514
+ name: String,
515
+ organization_id: String,
516
+ position: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Position?,
517
+ precall_lookup_url: String?,
518
+ prompt: String,
519
+ prompt_flow: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow?,
520
+ slack: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Slack?,
521
+ sms_enabled: bool,
522
+ sms_template: String?,
523
+ structured_output_config: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::StructuredOutputConfig]?,
524
+ structured_output_prompt: String?,
525
+ stt_context: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::SttContext?,
526
+ stt_model: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::stt_model,
527
+ thinking_sound: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::thinking_sound?,
528
+ thinking_sound_probability: Float,
529
+ thinking_sound_volume: Float,
530
+ transfer_destinations: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::TransferDestination]?,
531
+ type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::type_,
532
+ updated_at: top,
533
+ voice: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Voice?,
534
+ voicemail_message: String?,
535
+ voicemail_sms_prompt: String?,
536
+ warm_transfer_summary_instructions: String?,
537
+ webhook_url: String?,
538
+ zoho: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Zoho?,
539
+ ?created_by: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CreatedBy?,
540
+ ?faq_items: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::FaqItem],
541
+ ?is_inbound_receptionist: bool,
542
+ ?is_realestate_assistant: bool,
543
+ ?pending_faq_count: Float
532
544
  ) -> void
533
545
 
534
546
  def to_hash: -> {
535
- allowed_days: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CallRetryConfig::allowed_day],
536
- call_twice_in_a_row: bool,
537
- calling_windows: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CallRetryConfig::CallingWindow],
538
- max_retry_attempts: Integer,
539
- timezone: String?
547
+ id: String,
548
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::after_call_sms_outcome]?,
549
+ after_call_sms_prompt: String?,
550
+ background_sound: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::background_sound?,
551
+ background_sound_volume: Float,
552
+ calendly: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Calendly?,
553
+ call_retry_config: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CallRetryConfig?,
554
+ cartesia_dictionary_pronunciation_id: String?,
555
+ created_at: top,
556
+ custom_tools: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool]?,
557
+ email_notification_address: String?,
558
+ email_notification_outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::email_notification_outcome]?,
559
+ end_of_call_sentence: String?,
560
+ first_sentence: String?,
561
+ first_sentence_delay_ms: Integer,
562
+ first_sentence_mode: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::first_sentence_mode,
563
+ from_phone_number: String?,
564
+ human_transfer_mode: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::human_transfer_mode?,
565
+ ivr_navigation_enabled: bool,
566
+ llm_model: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::llm_model,
567
+ logo_url: String?,
568
+ max_call_duration_secs: Float,
569
+ max_duration_end_message: String?,
570
+ name: String,
571
+ organization_id: String,
572
+ position: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Position?,
573
+ precall_lookup_url: String?,
574
+ prompt: String,
575
+ prompt_flow: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow?,
576
+ slack: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Slack?,
577
+ sms_enabled: bool,
578
+ sms_template: String?,
579
+ structured_output_config: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::StructuredOutputConfig]?,
580
+ structured_output_prompt: String?,
581
+ stt_context: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::SttContext?,
582
+ stt_model: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::stt_model,
583
+ thinking_sound: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::thinking_sound?,
584
+ thinking_sound_probability: Float,
585
+ thinking_sound_volume: Float,
586
+ transfer_destinations: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::TransferDestination]?,
587
+ type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::type_,
588
+ updated_at: top,
589
+ voice: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Voice?,
590
+ voicemail_message: String?,
591
+ voicemail_sms_prompt: String?,
592
+ warm_transfer_summary_instructions: String?,
593
+ webhook_url: String?,
594
+ zoho: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Zoho?,
595
+ created_by: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CreatedBy?,
596
+ faq_items: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::FaqItem],
597
+ is_inbound_receptionist: bool,
598
+ is_realestate_assistant: bool,
599
+ pending_faq_count: Float
540
600
  }
541
601
 
542
- type allowed_day =
543
- :monday
544
- | :tuesday
545
- | :wednesday
546
- | :thursday
547
- | :friday
548
- | :saturday
549
- | :sunday
602
+ type after_call_sms_outcome =
603
+ :not_interested
604
+ | :interested
605
+ | :completed
606
+ | :requested_callback_later
607
+ | :none
550
608
 
551
- module AllowedDay
609
+ module AfterCallSMSOutcome
552
610
  extend Revox::Internal::Type::Enum
553
611
 
554
- MONDAY: :monday
555
- TUESDAY: :tuesday
556
- WEDNESDAY: :wednesday
557
- THURSDAY: :thursday
558
- FRIDAY: :friday
559
- SATURDAY: :saturday
560
- SUNDAY: :sunday
612
+ NOT_INTERESTED: :not_interested
613
+ INTERESTED: :interested
614
+ COMPLETED: :completed
615
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
616
+ NONE: :none
561
617
 
562
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CallRetryConfig::allowed_day]
618
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::after_call_sms_outcome]
563
619
  end
564
620
 
565
- type calling_window =
566
- {
567
- calling_window_end_time: String,
568
- calling_window_start_time: String,
569
- retry_delay_seconds: Integer
570
- }
621
+ type background_sound = :"audio/office.ogg"
571
622
 
572
- class CallingWindow < Revox::Internal::Type::BaseModel
573
- attr_accessor calling_window_end_time: String
623
+ module BackgroundSound
624
+ extend Revox::Internal::Type::Enum
574
625
 
575
- attr_accessor calling_window_start_time: String
626
+ AUDIO_OFFICE_OGG: :"audio/office.ogg"
576
627
 
577
- attr_accessor retry_delay_seconds: Integer
628
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::background_sound]
629
+ end
630
+
631
+ type calendly = { connection_id: String, event_type_id: String }
632
+
633
+ class Calendly < Revox::Internal::Type::BaseModel
634
+ attr_accessor connection_id: String
635
+
636
+ attr_accessor event_type_id: String
578
637
 
579
638
  def initialize: (
580
- calling_window_end_time: String,
581
- calling_window_start_time: String,
582
- retry_delay_seconds: Integer
639
+ connection_id: String,
640
+ event_type_id: String
583
641
  ) -> void
584
642
 
585
- def to_hash: -> {
586
- calling_window_end_time: String,
587
- calling_window_start_time: String,
588
- retry_delay_seconds: Integer
589
- }
643
+ def to_hash: -> { connection_id: String, event_type_id: String }
590
644
  end
591
- end
592
645
 
593
- type custom_tool =
594
- {
595
- body_template: String?,
596
- description: String,
597
- headers: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::Header],
598
- input_schema: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::InputSchema],
599
- method_: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::method_,
600
- name: String,
601
- query_params: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::QueryParam],
602
- url: String
603
- }
646
+ type call_retry_config =
647
+ {
648
+ allowed_days: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CallRetryConfig::allowed_day],
649
+ call_twice_in_a_row: bool,
650
+ calling_windows: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CallRetryConfig::CallingWindow],
651
+ max_retry_attempts: Integer,
652
+ timezone: String?
653
+ }
604
654
 
605
- class CustomTool < Revox::Internal::Type::BaseModel
606
- attr_accessor body_template: String?
655
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
656
+ attr_accessor allowed_days: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CallRetryConfig::allowed_day]
607
657
 
608
- attr_accessor description: String
658
+ attr_accessor call_twice_in_a_row: bool
609
659
 
610
- attr_accessor headers: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::Header]
660
+ attr_accessor calling_windows: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CallRetryConfig::CallingWindow]
611
661
 
612
- attr_accessor input_schema: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::InputSchema]
662
+ attr_accessor max_retry_attempts: Integer
613
663
 
614
- attr_accessor method_: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::method_
664
+ attr_accessor timezone: String?
615
665
 
616
- attr_accessor name: String
666
+ def initialize: (
667
+ allowed_days: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CallRetryConfig::allowed_day],
668
+ call_twice_in_a_row: bool,
669
+ calling_windows: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CallRetryConfig::CallingWindow],
670
+ max_retry_attempts: Integer,
671
+ ?timezone: String?
672
+ ) -> void
673
+
674
+ def to_hash: -> {
675
+ allowed_days: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CallRetryConfig::allowed_day],
676
+ call_twice_in_a_row: bool,
677
+ calling_windows: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CallRetryConfig::CallingWindow],
678
+ max_retry_attempts: Integer,
679
+ timezone: String?
680
+ }
617
681
 
618
- attr_accessor query_params: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::QueryParam]
682
+ type allowed_day =
683
+ :monday
684
+ | :tuesday
685
+ | :wednesday
686
+ | :thursday
687
+ | :friday
688
+ | :saturday
689
+ | :sunday
619
690
 
620
- attr_accessor url: String
691
+ module AllowedDay
692
+ extend Revox::Internal::Type::Enum
621
693
 
622
- def initialize: (
623
- body_template: String?,
624
- description: String,
625
- headers: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::Header],
626
- input_schema: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::InputSchema],
627
- method_: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::method_,
628
- name: String,
629
- query_params: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::QueryParam],
630
- url: String
631
- ) -> void
694
+ MONDAY: :monday
695
+ TUESDAY: :tuesday
696
+ WEDNESDAY: :wednesday
697
+ THURSDAY: :thursday
698
+ FRIDAY: :friday
699
+ SATURDAY: :saturday
700
+ SUNDAY: :sunday
632
701
 
633
- def to_hash: -> {
634
- body_template: String?,
635
- description: String,
636
- headers: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::Header],
637
- input_schema: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::InputSchema],
638
- method_: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::method_,
639
- name: String,
640
- query_params: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::QueryParam],
641
- url: String
642
- }
702
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CallRetryConfig::allowed_day]
703
+ end
643
704
 
644
- type header = { key: String, value: String }
705
+ type calling_window =
706
+ {
707
+ calling_window_end_time: String,
708
+ calling_window_start_time: String,
709
+ retry_delay_seconds: Integer
710
+ }
645
711
 
646
- class Header < Revox::Internal::Type::BaseModel
647
- attr_accessor key: String
712
+ class CallingWindow < Revox::Internal::Type::BaseModel
713
+ attr_accessor calling_window_end_time: String
648
714
 
649
- attr_accessor value: String
715
+ attr_accessor calling_window_start_time: String
650
716
 
651
- def initialize: (key: String, value: String) -> void
717
+ attr_accessor retry_delay_seconds: Integer
652
718
 
653
- def to_hash: -> { key: String, value: String }
719
+ def initialize: (
720
+ calling_window_end_time: String,
721
+ calling_window_start_time: String,
722
+ retry_delay_seconds: Integer
723
+ ) -> void
724
+
725
+ def to_hash: -> {
726
+ calling_window_end_time: String,
727
+ calling_window_start_time: String,
728
+ retry_delay_seconds: Integer
729
+ }
730
+ end
654
731
  end
655
732
 
656
- type input_schema =
733
+ type custom_tool =
657
734
  {
658
- name: String,
659
- required: bool,
660
- type: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::InputSchema::type_,
735
+ body_template: String?,
661
736
  description: String,
662
- enum_options: ::Array[String]
737
+ headers: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::Header],
738
+ input_schema: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::InputSchema],
739
+ method_: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::method_,
740
+ name: String,
741
+ query_params: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::QueryParam],
742
+ url: String
663
743
  }
664
744
 
665
- class InputSchema < Revox::Internal::Type::BaseModel
666
- attr_accessor name: String
745
+ class CustomTool < Revox::Internal::Type::BaseModel
746
+ attr_accessor body_template: String?
667
747
 
668
- attr_accessor required: bool
748
+ attr_accessor description: String
669
749
 
670
- attr_accessor type: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::InputSchema::type_
750
+ attr_accessor headers: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::Header]
671
751
 
672
- attr_reader description: String?
752
+ attr_accessor input_schema: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::InputSchema]
673
753
 
674
- def description=: (String) -> String
754
+ attr_accessor method_: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::method_
675
755
 
676
- attr_reader enum_options: ::Array[String]?
756
+ attr_accessor name: String
677
757
 
678
- def enum_options=: (::Array[String]) -> ::Array[String]
758
+ attr_accessor query_params: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::QueryParam]
759
+
760
+ attr_accessor url: String
679
761
 
680
762
  def initialize: (
763
+ body_template: String?,
764
+ description: String,
765
+ headers: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::Header],
766
+ input_schema: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::InputSchema],
767
+ method_: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::method_,
681
768
  name: String,
682
- required: bool,
683
- type: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::InputSchema::type_,
684
- ?description: String,
685
- ?enum_options: ::Array[String]
769
+ query_params: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::QueryParam],
770
+ url: String
686
771
  ) -> void
687
772
 
688
773
  def to_hash: -> {
689
- name: String,
690
- required: bool,
691
- type: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::InputSchema::type_,
774
+ body_template: String?,
692
775
  description: String,
693
- enum_options: ::Array[String]
776
+ headers: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::Header],
777
+ input_schema: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::InputSchema],
778
+ method_: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::method_,
779
+ name: String,
780
+ query_params: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::QueryParam],
781
+ url: String
694
782
  }
695
783
 
696
- type type_ =
697
- :string | :number | :boolean | :enum | :date | :datetime
784
+ type header = { key: String, value: String }
698
785
 
699
- module Type
700
- extend Revox::Internal::Type::Enum
786
+ class Header < Revox::Internal::Type::BaseModel
787
+ attr_accessor key: String
701
788
 
702
- STRING: :string
703
- NUMBER: :number
704
- BOOLEAN: :boolean
705
- ENUM: :enum
706
- DATE: :date
707
- DATETIME: :datetime
789
+ attr_accessor value: String
708
790
 
709
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::InputSchema::type_]
791
+ def initialize: (key: String, value: String) -> void
792
+
793
+ def to_hash: -> { key: String, value: String }
710
794
  end
711
- end
712
795
 
713
- type method_ = :GET | :POST | :PUT | :PATCH | :DELETE
796
+ type input_schema =
797
+ {
798
+ name: String,
799
+ required: bool,
800
+ type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::InputSchema::type_,
801
+ description: String,
802
+ enum_options: ::Array[String]
803
+ }
714
804
 
715
- module Method
716
- extend Revox::Internal::Type::Enum
805
+ class InputSchema < Revox::Internal::Type::BaseModel
806
+ attr_accessor name: String
717
807
 
718
- GET: :GET
719
- POST: :POST
720
- PUT: :PUT
721
- PATCH: :PATCH
722
- DELETE: :DELETE
808
+ attr_accessor required: bool
723
809
 
724
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::CustomTool::method_]
725
- end
810
+ attr_accessor type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::InputSchema::type_
726
811
 
727
- type query_param = { key: String, value: String }
812
+ attr_reader description: String?
728
813
 
729
- class QueryParam < Revox::Internal::Type::BaseModel
730
- attr_accessor key: String
814
+ def description=: (String) -> String
731
815
 
732
- attr_accessor value: String
816
+ attr_reader enum_options: ::Array[String]?
733
817
 
734
- def initialize: (key: String, value: String) -> void
818
+ def enum_options=: (::Array[String]) -> ::Array[String]
735
819
 
736
- def to_hash: -> { key: String, value: String }
737
- end
738
- end
820
+ def initialize: (
821
+ name: String,
822
+ required: bool,
823
+ type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::InputSchema::type_,
824
+ ?description: String,
825
+ ?enum_options: ::Array[String]
826
+ ) -> void
739
827
 
740
- type email_notification_language = :en | :fr
828
+ def to_hash: -> {
829
+ name: String,
830
+ required: bool,
831
+ type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::InputSchema::type_,
832
+ description: String,
833
+ enum_options: ::Array[String]
834
+ }
741
835
 
742
- module EmailNotificationLanguage
743
- extend Revox::Internal::Type::Enum
744
-
745
- EN: :en
746
- FR: :fr
836
+ type type_ =
837
+ :string | :number | :boolean | :enum | :date | :datetime
747
838
 
748
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::email_notification_language]
749
- end
839
+ module Type
840
+ extend Revox::Internal::Type::Enum
750
841
 
751
- type email_notification_outcome =
752
- :not_interested
753
- | :interested
754
- | :completed
755
- | :requested_callback_later
756
- | :requested_callback_new_number
757
- | :do_not_contact
758
- | :ai_averse
759
- | :none
842
+ STRING: :string
843
+ NUMBER: :number
844
+ BOOLEAN: :boolean
845
+ ENUM: :enum
846
+ DATE: :date
847
+ DATETIME: :datetime
760
848
 
761
- module EmailNotificationOutcome
762
- extend Revox::Internal::Type::Enum
849
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::InputSchema::type_]
850
+ end
851
+ end
763
852
 
764
- NOT_INTERESTED: :not_interested
765
- INTERESTED: :interested
766
- COMPLETED: :completed
767
- REQUESTED_CALLBACK_LATER: :requested_callback_later
768
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
769
- DO_NOT_CONTACT: :do_not_contact
770
- AI_AVERSE: :ai_averse
771
- NONE: :none
853
+ type method_ = :GET | :POST | :PUT | :PATCH | :DELETE
772
854
 
773
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::email_notification_outcome]
774
- end
855
+ module Method
856
+ extend Revox::Internal::Type::Enum
775
857
 
776
- type first_sentence_mode = :generated | :static | :none
858
+ GET: :GET
859
+ POST: :POST
860
+ PUT: :PUT
861
+ PATCH: :PATCH
862
+ DELETE: :DELETE
777
863
 
778
- module FirstSentenceMode
779
- extend Revox::Internal::Type::Enum
864
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::CustomTool::method_]
865
+ end
780
866
 
781
- GENERATED: :generated
782
- STATIC: :static
783
- NONE: :none
867
+ type query_param = { key: String, value: String }
784
868
 
785
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::first_sentence_mode]
786
- end
869
+ class QueryParam < Revox::Internal::Type::BaseModel
870
+ attr_accessor key: String
787
871
 
788
- type human_transfer_mode = :warm | :cold
872
+ attr_accessor value: String
789
873
 
790
- module HumanTransferMode
791
- extend Revox::Internal::Type::Enum
874
+ def initialize: (key: String, value: String) -> void
792
875
 
793
- WARM: :warm
794
- COLD: :cold
876
+ def to_hash: -> { key: String, value: String }
877
+ end
878
+ end
795
879
 
796
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::human_transfer_mode]
797
- end
880
+ type email_notification_outcome =
881
+ :not_interested
882
+ | :interested
883
+ | :completed
884
+ | :requested_callback_later
885
+ | :none
798
886
 
799
- type llm_model =
800
- Revox::Models::CampaignLaunchResponse::Campaign::Assistant::LlmModel::UnionMember0
801
- | Revox::Models::CampaignLaunchResponse::Campaign::Assistant::LlmModel::UnionMember1
802
- | Revox::Models::CampaignLaunchResponse::Campaign::Assistant::LlmModel::UnionMember2
803
- | Revox::Models::CampaignLaunchResponse::Campaign::Assistant::LlmModel::UnionMember3
887
+ module EmailNotificationOutcome
888
+ extend Revox::Internal::Type::Enum
804
889
 
805
- module LlmModel
806
- extend Revox::Internal::Type::Union
890
+ NOT_INTERESTED: :not_interested
891
+ INTERESTED: :interested
892
+ COMPLETED: :completed
893
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
894
+ NONE: :none
807
895
 
808
- type union_member0 =
809
- {
810
- name: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::LlmModel::UnionMember0::name_,
811
- type: :"dedicated-instance"
812
- }
896
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::email_notification_outcome]
897
+ end
813
898
 
814
- class UnionMember0 < Revox::Internal::Type::BaseModel
815
- attr_accessor name: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::LlmModel::UnionMember0::name_
899
+ type first_sentence_mode = :generated | :static | :none
816
900
 
817
- attr_accessor type: :"dedicated-instance"
901
+ module FirstSentenceMode
902
+ extend Revox::Internal::Type::Enum
818
903
 
819
- def initialize: (
820
- name: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::LlmModel::UnionMember0::name_,
821
- ?type: :"dedicated-instance"
822
- ) -> void
904
+ GENERATED: :generated
905
+ STATIC: :static
906
+ NONE: :none
823
907
 
824
- def to_hash: -> {
825
- name: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::LlmModel::UnionMember0::name_,
826
- type: :"dedicated-instance"
827
- }
908
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::first_sentence_mode]
909
+ end
828
910
 
829
- type name_ = :"gpt-4.1" | :"ministral-3-8b-instruct"
911
+ type human_transfer_mode = :warm | :cold
830
912
 
831
- module Name
832
- extend Revox::Internal::Type::Enum
913
+ module HumanTransferMode
914
+ extend Revox::Internal::Type::Enum
833
915
 
834
- GPT_4_1: :"gpt-4.1"
835
- MINISTRAL_3_8B_INSTRUCT: :"ministral-3-8b-instruct"
916
+ WARM: :warm
917
+ COLD: :cold
836
918
 
837
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::LlmModel::UnionMember0::name_]
838
- end
919
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::human_transfer_mode]
839
920
  end
840
921
 
841
- type union_member1 =
842
- {
843
- openrouter_model_id: String,
844
- openrouter_provider: String,
845
- type: :openrouter
846
- }
847
-
848
- class UnionMember1 < Revox::Internal::Type::BaseModel
849
- attr_accessor openrouter_model_id: String
922
+ type llm_model =
923
+ Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::LlmModel::UnionMember0
924
+ | Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::LlmModel::UnionMember1
925
+ | Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::LlmModel::UnionMember2
926
+ | Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::LlmModel::UnionMember3
850
927
 
851
- attr_accessor openrouter_provider: String
928
+ module LlmModel
929
+ extend Revox::Internal::Type::Union
852
930
 
853
- attr_accessor type: :openrouter
931
+ type union_member0 =
932
+ {
933
+ name: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::LlmModel::UnionMember0::name_,
934
+ type: :"dedicated-instance"
935
+ }
854
936
 
855
- def initialize: (
856
- openrouter_model_id: String,
857
- openrouter_provider: String,
858
- ?type: :openrouter
859
- ) -> void
937
+ class UnionMember0 < Revox::Internal::Type::BaseModel
938
+ attr_accessor name: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::LlmModel::UnionMember0::name_
860
939
 
861
- def to_hash: -> {
862
- openrouter_model_id: String,
863
- openrouter_provider: String,
864
- type: :openrouter
865
- }
866
- end
940
+ attr_accessor type: :"dedicated-instance"
867
941
 
868
- type union_member2 =
869
- {
870
- api_key: String,
871
- api_url: String,
872
- model_name: String,
873
- type: :custom
874
- }
942
+ def initialize: (
943
+ name: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::LlmModel::UnionMember0::name_,
944
+ ?type: :"dedicated-instance"
945
+ ) -> void
875
946
 
876
- class UnionMember2 < Revox::Internal::Type::BaseModel
877
- attr_accessor api_key: String
947
+ def to_hash: -> {
948
+ name: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::LlmModel::UnionMember0::name_,
949
+ type: :"dedicated-instance"
950
+ }
878
951
 
879
- attr_accessor api_url: String
952
+ type name_ = :"gpt-4.1" | :"ministral-3-8b-instruct"
880
953
 
881
- attr_accessor model_name: String
954
+ module Name
955
+ extend Revox::Internal::Type::Enum
882
956
 
883
- attr_accessor type: :custom
957
+ GPT_4_1: :"gpt-4.1"
958
+ MINISTRAL_3_8B_INSTRUCT: :"ministral-3-8b-instruct"
884
959
 
885
- def initialize: (
886
- api_key: String,
887
- api_url: String,
888
- model_name: String,
889
- ?type: :custom
890
- ) -> void
960
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::LlmModel::UnionMember0::name_]
961
+ end
962
+ end
891
963
 
892
- def to_hash: -> {
893
- api_key: String,
894
- api_url: String,
895
- model_name: String,
896
- type: :custom
897
- }
898
- end
964
+ type union_member1 =
965
+ {
966
+ openrouter_model_id: String,
967
+ openrouter_provider: String,
968
+ type: :openrouter
969
+ }
899
970
 
900
- type union_member3 =
901
- {
902
- provider: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::LlmModel::UnionMember3::provider,
903
- realtime_model_id: String,
904
- type: :realtime,
905
- realtime_voice_id: String
906
- }
971
+ class UnionMember1 < Revox::Internal::Type::BaseModel
972
+ attr_accessor openrouter_model_id: String
907
973
 
908
- class UnionMember3 < Revox::Internal::Type::BaseModel
909
- attr_accessor provider: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::LlmModel::UnionMember3::provider
974
+ attr_accessor openrouter_provider: String
910
975
 
911
- attr_accessor realtime_model_id: String
976
+ attr_accessor type: :openrouter
912
977
 
913
- attr_accessor type: :realtime
978
+ def initialize: (
979
+ openrouter_model_id: String,
980
+ openrouter_provider: String,
981
+ ?type: :openrouter
982
+ ) -> void
914
983
 
915
- attr_reader realtime_voice_id: String?
984
+ def to_hash: -> {
985
+ openrouter_model_id: String,
986
+ openrouter_provider: String,
987
+ type: :openrouter
988
+ }
989
+ end
916
990
 
917
- def realtime_voice_id=: (String) -> String
991
+ type union_member2 =
992
+ {
993
+ api_key: String,
994
+ api_url: String,
995
+ model_name: String,
996
+ type: :custom
997
+ }
918
998
 
919
- def initialize: (
920
- provider: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::LlmModel::UnionMember3::provider,
921
- realtime_model_id: String,
922
- ?realtime_voice_id: String,
923
- ?type: :realtime
924
- ) -> void
999
+ class UnionMember2 < Revox::Internal::Type::BaseModel
1000
+ attr_accessor api_key: String
925
1001
 
926
- def to_hash: -> {
927
- provider: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::LlmModel::UnionMember3::provider,
928
- realtime_model_id: String,
929
- type: :realtime,
930
- realtime_voice_id: String
931
- }
1002
+ attr_accessor api_url: String
932
1003
 
933
- type provider = :openai | :google
1004
+ attr_accessor model_name: String
934
1005
 
935
- module Provider
936
- extend Revox::Internal::Type::Enum
1006
+ attr_accessor type: :custom
937
1007
 
938
- OPENAI: :openai
939
- GOOGLE: :google
1008
+ def initialize: (
1009
+ api_key: String,
1010
+ api_url: String,
1011
+ model_name: String,
1012
+ ?type: :custom
1013
+ ) -> void
940
1014
 
941
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::LlmModel::UnionMember3::provider]
1015
+ def to_hash: -> {
1016
+ api_key: String,
1017
+ api_url: String,
1018
+ model_name: String,
1019
+ type: :custom
1020
+ }
942
1021
  end
943
- end
944
1022
 
945
- def self?.variants: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::llm_model]
946
- end
1023
+ type union_member3 =
1024
+ {
1025
+ provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::LlmModel::UnionMember3::provider,
1026
+ realtime_model_id: String,
1027
+ type: :realtime,
1028
+ realtime_voice_id: String
1029
+ }
947
1030
 
948
- type position = { x: Float, y_: Float }
1031
+ class UnionMember3 < Revox::Internal::Type::BaseModel
1032
+ attr_accessor provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::LlmModel::UnionMember3::provider
949
1033
 
950
- class Position < Revox::Internal::Type::BaseModel
951
- attr_accessor x: Float
1034
+ attr_accessor realtime_model_id: String
952
1035
 
953
- attr_accessor y_: Float
1036
+ attr_accessor type: :realtime
954
1037
 
955
- def initialize: (x: Float, y_: Float) -> void
1038
+ attr_reader realtime_voice_id: String?
956
1039
 
957
- def to_hash: -> { x: Float, y_: Float }
958
- end
1040
+ def realtime_voice_id=: (String) -> String
959
1041
 
960
- type prompt_flow =
961
- {
962
- edges: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow::Edge],
963
- nodes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow::Node]
964
- }
1042
+ def initialize: (
1043
+ provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::LlmModel::UnionMember3::provider,
1044
+ realtime_model_id: String,
1045
+ ?realtime_voice_id: String,
1046
+ ?type: :realtime
1047
+ ) -> void
965
1048
 
966
- class PromptFlow < Revox::Internal::Type::BaseModel
967
- attr_accessor edges: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow::Edge]
1049
+ def to_hash: -> {
1050
+ provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::LlmModel::UnionMember3::provider,
1051
+ realtime_model_id: String,
1052
+ type: :realtime,
1053
+ realtime_voice_id: String
1054
+ }
968
1055
 
969
- attr_accessor nodes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow::Node]
1056
+ type provider = :openai | :google
970
1057
 
971
- def initialize: (
972
- edges: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow::Edge],
973
- nodes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow::Node]
974
- ) -> void
1058
+ module Provider
1059
+ extend Revox::Internal::Type::Enum
975
1060
 
976
- def to_hash: -> {
977
- edges: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow::Edge],
978
- nodes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow::Node]
979
- }
1061
+ OPENAI: :openai
1062
+ GOOGLE: :google
1063
+
1064
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::LlmModel::UnionMember3::provider]
1065
+ end
1066
+ end
980
1067
 
981
- type edge = { id: String, source: String, target: String }
1068
+ def self?.variants: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::llm_model]
1069
+ end
982
1070
 
983
- class Edge < Revox::Internal::Type::BaseModel
984
- attr_accessor id: String
1071
+ type position = { x: Float, y_: Float }
985
1072
 
986
- attr_accessor source: String
1073
+ class Position < Revox::Internal::Type::BaseModel
1074
+ attr_accessor x: Float
987
1075
 
988
- attr_accessor target: String
1076
+ attr_accessor y_: Float
989
1077
 
990
- def initialize: (
991
- id: String,
992
- source: String,
993
- target: String
994
- ) -> void
1078
+ def initialize: (x: Float, y_: Float) -> void
995
1079
 
996
- def to_hash: -> { id: String, source: String, target: String }
1080
+ def to_hash: -> { x: Float, y_: Float }
997
1081
  end
998
1082
 
999
- type node =
1083
+ type prompt_flow =
1000
1084
  {
1001
- id: String,
1002
- data: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow::Node::Data,
1003
- position: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow::Node::Position,
1004
- type: :promptBlock
1085
+ edges: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow::Edge],
1086
+ nodes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow::Node]
1005
1087
  }
1006
1088
 
1007
- class Node < Revox::Internal::Type::BaseModel
1008
- attr_accessor id: String
1009
-
1010
- attr_accessor data: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow::Node::Data
1011
-
1012
- attr_accessor position: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow::Node::Position
1089
+ class PromptFlow < Revox::Internal::Type::BaseModel
1090
+ attr_accessor edges: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow::Edge]
1013
1091
 
1014
- attr_accessor type: :promptBlock
1092
+ attr_accessor nodes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow::Node]
1015
1093
 
1016
1094
  def initialize: (
1017
- id: String,
1018
- data: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow::Node::Data,
1019
- position: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow::Node::Position,
1020
- ?type: :promptBlock
1095
+ edges: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow::Edge],
1096
+ nodes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow::Node]
1021
1097
  ) -> void
1022
1098
 
1023
1099
  def to_hash: -> {
1024
- id: String,
1025
- data: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow::Node::Data,
1026
- position: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::PromptFlow::Node::Position,
1027
- type: :promptBlock
1100
+ edges: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow::Edge],
1101
+ nodes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow::Node]
1028
1102
  }
1029
1103
 
1030
- type data = { body: String, title: String }
1104
+ type edge = { id: String, source: String, target: String }
1031
1105
 
1032
- class Data < Revox::Internal::Type::BaseModel
1033
- attr_accessor body: String
1106
+ class Edge < Revox::Internal::Type::BaseModel
1107
+ attr_accessor id: String
1034
1108
 
1035
- attr_accessor title: String
1109
+ attr_accessor source: String
1036
1110
 
1037
- def initialize: (body: String, title: String) -> void
1111
+ attr_accessor target: String
1038
1112
 
1039
- def to_hash: -> { body: String, title: String }
1113
+ def initialize: (
1114
+ id: String,
1115
+ source: String,
1116
+ target: String
1117
+ ) -> void
1118
+
1119
+ def to_hash: -> { id: String, source: String, target: String }
1040
1120
  end
1041
1121
 
1042
- type position = { x: Float, y_: Float }
1122
+ type node =
1123
+ {
1124
+ id: String,
1125
+ data: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow::Node::Data,
1126
+ position: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow::Node::Position,
1127
+ type: :promptBlock
1128
+ }
1043
1129
 
1044
- class Position < Revox::Internal::Type::BaseModel
1045
- attr_accessor x: Float
1130
+ class Node < Revox::Internal::Type::BaseModel
1131
+ attr_accessor id: String
1046
1132
 
1047
- attr_accessor y_: Float
1133
+ attr_accessor data: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow::Node::Data
1048
1134
 
1049
- def initialize: (x: Float, y_: Float) -> void
1135
+ attr_accessor position: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow::Node::Position
1050
1136
 
1051
- def to_hash: -> { x: Float, y_: Float }
1052
- end
1053
- end
1054
- end
1137
+ attr_accessor type: :promptBlock
1055
1138
 
1056
- type slack =
1057
- {
1058
- channel_id: String,
1059
- connection_id: String,
1060
- outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Slack::outcome],
1061
- channel_name: String?,
1062
- template: String?
1063
- }
1139
+ def initialize: (
1140
+ id: String,
1141
+ data: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow::Node::Data,
1142
+ position: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow::Node::Position,
1143
+ ?type: :promptBlock
1144
+ ) -> void
1064
1145
 
1065
- class Slack < Revox::Internal::Type::BaseModel
1066
- attr_accessor channel_id: String
1146
+ def to_hash: -> {
1147
+ id: String,
1148
+ data: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow::Node::Data,
1149
+ position: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::PromptFlow::Node::Position,
1150
+ type: :promptBlock
1151
+ }
1067
1152
 
1068
- attr_accessor connection_id: String
1153
+ type data = { body: String, title: String }
1069
1154
 
1070
- attr_accessor outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Slack::outcome]
1155
+ class Data < Revox::Internal::Type::BaseModel
1156
+ attr_accessor body: String
1071
1157
 
1072
- attr_accessor channel_name: String?
1158
+ attr_accessor title: String
1073
1159
 
1074
- attr_accessor template: String?
1160
+ def initialize: (body: String, title: String) -> void
1075
1161
 
1076
- def initialize: (
1077
- channel_id: String,
1078
- connection_id: String,
1079
- outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Slack::outcome],
1080
- ?channel_name: String?,
1081
- ?template: String?
1082
- ) -> void
1162
+ def to_hash: -> { body: String, title: String }
1163
+ end
1083
1164
 
1084
- def to_hash: -> {
1085
- channel_id: String,
1086
- connection_id: String,
1087
- outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Slack::outcome],
1088
- channel_name: String?,
1089
- template: String?
1090
- }
1165
+ type position = { x: Float, y_: Float }
1091
1166
 
1092
- type outcome =
1093
- :not_interested
1094
- | :interested
1095
- | :completed
1096
- | :requested_callback_later
1097
- | :requested_callback_new_number
1098
- | :do_not_contact
1099
- | :ai_averse
1100
- | :none
1167
+ class Position < Revox::Internal::Type::BaseModel
1168
+ attr_accessor x: Float
1101
1169
 
1102
- module Outcome
1103
- extend Revox::Internal::Type::Enum
1170
+ attr_accessor y_: Float
1104
1171
 
1105
- NOT_INTERESTED: :not_interested
1106
- INTERESTED: :interested
1107
- COMPLETED: :completed
1108
- REQUESTED_CALLBACK_LATER: :requested_callback_later
1109
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1110
- DO_NOT_CONTACT: :do_not_contact
1111
- AI_AVERSE: :ai_averse
1112
- NONE: :none
1172
+ def initialize: (x: Float, y_: Float) -> void
1113
1173
 
1114
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Slack::outcome]
1174
+ def to_hash: -> { x: Float, y_: Float }
1175
+ end
1176
+ end
1115
1177
  end
1116
- end
1117
1178
 
1118
- type structured_output_config =
1119
- {
1120
- name: String,
1121
- required: bool,
1122
- type: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::StructuredOutputConfig::type_,
1123
- description: String,
1124
- enum_options: ::Array[String]
1125
- }
1179
+ type slack =
1180
+ {
1181
+ channels: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Slack::Channel],
1182
+ connection_id: String,
1183
+ outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Slack::outcome],
1184
+ template: String?
1185
+ }
1126
1186
 
1127
- class StructuredOutputConfig < Revox::Internal::Type::BaseModel
1128
- attr_accessor name: String
1187
+ class Slack < Revox::Internal::Type::BaseModel
1188
+ attr_accessor channels: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Slack::Channel]
1129
1189
 
1130
- attr_accessor required: bool
1190
+ attr_accessor connection_id: String
1131
1191
 
1132
- attr_accessor type: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::StructuredOutputConfig::type_
1192
+ attr_accessor outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Slack::outcome]
1133
1193
 
1134
- attr_reader description: String?
1194
+ attr_accessor template: String?
1135
1195
 
1136
- def description=: (String) -> String
1196
+ def initialize: (
1197
+ channels: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Slack::Channel],
1198
+ connection_id: String,
1199
+ outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Slack::outcome],
1200
+ ?template: String?
1201
+ ) -> void
1137
1202
 
1138
- attr_reader enum_options: ::Array[String]?
1203
+ def to_hash: -> {
1204
+ channels: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Slack::Channel],
1205
+ connection_id: String,
1206
+ outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Slack::outcome],
1207
+ template: String?
1208
+ }
1139
1209
 
1140
- def enum_options=: (::Array[String]) -> ::Array[String]
1210
+ type channel = { id: String, name: String? }
1141
1211
 
1142
- def initialize: (
1143
- name: String,
1144
- required: bool,
1145
- type: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::StructuredOutputConfig::type_,
1146
- ?description: String,
1147
- ?enum_options: ::Array[String]
1148
- ) -> void
1212
+ class Channel < Revox::Internal::Type::BaseModel
1213
+ attr_accessor id: String
1149
1214
 
1150
- def to_hash: -> {
1151
- name: String,
1152
- required: bool,
1153
- type: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::StructuredOutputConfig::type_,
1154
- description: String,
1155
- enum_options: ::Array[String]
1156
- }
1215
+ attr_accessor name: String?
1157
1216
 
1158
- type type_ =
1159
- :string | :number | :boolean | :enum | :date | :datetime
1217
+ def initialize: (id: String, ?name: String?) -> void
1160
1218
 
1161
- module Type
1162
- extend Revox::Internal::Type::Enum
1219
+ def to_hash: -> { id: String, name: String? }
1220
+ end
1163
1221
 
1164
- STRING: :string
1165
- NUMBER: :number
1166
- BOOLEAN: :boolean
1167
- ENUM: :enum
1168
- DATE: :date
1169
- DATETIME: :datetime
1222
+ type outcome =
1223
+ :not_interested
1224
+ | :interested
1225
+ | :completed
1226
+ | :requested_callback_later
1227
+ | :none
1170
1228
 
1171
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::StructuredOutputConfig::type_]
1172
- end
1173
- end
1229
+ module Outcome
1230
+ extend Revox::Internal::Type::Enum
1174
1231
 
1175
- type stt_context =
1176
- {
1177
- general: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::SttContext::General],
1178
- terms: ::Array[String]
1179
- }
1232
+ NOT_INTERESTED: :not_interested
1233
+ INTERESTED: :interested
1234
+ COMPLETED: :completed
1235
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
1236
+ NONE: :none
1180
1237
 
1181
- class SttContext < Revox::Internal::Type::BaseModel
1182
- attr_accessor general: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::SttContext::General]
1238
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Slack::outcome]
1239
+ end
1240
+ end
1183
1241
 
1184
- attr_accessor terms: ::Array[String]
1242
+ type structured_output_config =
1243
+ {
1244
+ name: String,
1245
+ required: bool,
1246
+ type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::StructuredOutputConfig::type_,
1247
+ description: String,
1248
+ enum_options: ::Array[String]
1249
+ }
1185
1250
 
1186
- def initialize: (
1187
- general: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::SttContext::General],
1188
- terms: ::Array[String]
1189
- ) -> void
1251
+ class StructuredOutputConfig < Revox::Internal::Type::BaseModel
1252
+ attr_accessor name: String
1190
1253
 
1191
- def to_hash: -> {
1192
- general: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::SttContext::General],
1193
- terms: ::Array[String]
1194
- }
1254
+ attr_accessor required: bool
1195
1255
 
1196
- type general = { key: String, value: String }
1256
+ attr_accessor type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::StructuredOutputConfig::type_
1197
1257
 
1198
- class General < Revox::Internal::Type::BaseModel
1199
- attr_accessor key: String
1258
+ attr_reader description: String?
1200
1259
 
1201
- attr_accessor value: String
1260
+ def description=: (String) -> String
1202
1261
 
1203
- def initialize: (key: String, value: String) -> void
1262
+ attr_reader enum_options: ::Array[String]?
1204
1263
 
1205
- def to_hash: -> { key: String, value: String }
1206
- end
1207
- end
1264
+ def enum_options=: (::Array[String]) -> ::Array[String]
1208
1265
 
1209
- type stt_model = :"stt-rt-v4" | :"stt-rt-v5"
1266
+ def initialize: (
1267
+ name: String,
1268
+ required: bool,
1269
+ type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::StructuredOutputConfig::type_,
1270
+ ?description: String,
1271
+ ?enum_options: ::Array[String]
1272
+ ) -> void
1210
1273
 
1211
- module SttModel
1212
- extend Revox::Internal::Type::Enum
1274
+ def to_hash: -> {
1275
+ name: String,
1276
+ required: bool,
1277
+ type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::StructuredOutputConfig::type_,
1278
+ description: String,
1279
+ enum_options: ::Array[String]
1280
+ }
1213
1281
 
1214
- STT_RT_V4: :"stt-rt-v4"
1215
- STT_RT_V5: :"stt-rt-v5"
1282
+ type type_ =
1283
+ :string | :number | :boolean | :enum | :date | :datetime
1216
1284
 
1217
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::stt_model]
1218
- end
1285
+ module Type
1286
+ extend Revox::Internal::Type::Enum
1219
1287
 
1220
- type thinking_sound =
1221
- :"city-ambience.ogg"
1222
- | :"forest-ambience.ogg"
1223
- | :"office-ambience.ogg"
1224
- | :"crowded-room.ogg"
1225
- | :"keyboard-typing.ogg"
1226
- | :"keyboard-typing2.ogg"
1227
- | :"hold_music.ogg"
1288
+ STRING: :string
1289
+ NUMBER: :number
1290
+ BOOLEAN: :boolean
1291
+ ENUM: :enum
1292
+ DATE: :date
1293
+ DATETIME: :datetime
1228
1294
 
1229
- module ThinkingSound
1230
- extend Revox::Internal::Type::Enum
1295
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::StructuredOutputConfig::type_]
1296
+ end
1297
+ end
1231
1298
 
1232
- CITY_AMBIENCE_OGG: :"city-ambience.ogg"
1233
- FOREST_AMBIENCE_OGG: :"forest-ambience.ogg"
1234
- OFFICE_AMBIENCE_OGG: :"office-ambience.ogg"
1235
- CROWDED_ROOM_OGG: :"crowded-room.ogg"
1236
- KEYBOARD_TYPING_OGG: :"keyboard-typing.ogg"
1237
- KEYBOARD_TYPING2_OGG: :"keyboard-typing2.ogg"
1238
- HOLD_MUSIC_OGG: :"hold_music.ogg"
1299
+ type stt_context =
1300
+ {
1301
+ general: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::SttContext::General],
1302
+ terms: ::Array[String]
1303
+ }
1239
1304
 
1240
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::thinking_sound]
1241
- end
1305
+ class SttContext < Revox::Internal::Type::BaseModel
1306
+ attr_accessor general: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::SttContext::General]
1242
1307
 
1243
- type type_ = :standalone | :"multi-step" | :"sub-assistant"
1308
+ attr_accessor terms: ::Array[String]
1244
1309
 
1245
- module Type
1246
- extend Revox::Internal::Type::Enum
1310
+ def initialize: (
1311
+ general: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::SttContext::General],
1312
+ terms: ::Array[String]
1313
+ ) -> void
1247
1314
 
1248
- STANDALONE: :standalone
1249
- MULTI_STEP: :"multi-step"
1250
- SUB_ASSISTANT: :"sub-assistant"
1315
+ def to_hash: -> {
1316
+ general: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::SttContext::General],
1317
+ terms: ::Array[String]
1318
+ }
1251
1319
 
1252
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::type_]
1253
- end
1320
+ type general = { key: String, value: String }
1254
1321
 
1255
- type voice =
1256
- {
1257
- id: String,
1258
- provider: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Voice::provider,
1259
- model: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Voice::model,
1260
- speed: Float,
1261
- volume: Float
1262
- }
1322
+ class General < Revox::Internal::Type::BaseModel
1323
+ attr_accessor key: String
1263
1324
 
1264
- class Voice < Revox::Internal::Type::BaseModel
1265
- attr_accessor id: String
1325
+ attr_accessor value: String
1266
1326
 
1267
- attr_accessor provider: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Voice::provider
1327
+ def initialize: (key: String, value: String) -> void
1268
1328
 
1269
- attr_reader model: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Voice::model?
1329
+ def to_hash: -> { key: String, value: String }
1330
+ end
1331
+ end
1270
1332
 
1271
- def model=: (
1272
- Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Voice::model
1273
- ) -> Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Voice::model
1333
+ type stt_model = :"stt-rt-v4" | :"stt-rt-v5"
1274
1334
 
1275
- attr_reader speed: Float?
1335
+ module SttModel
1336
+ extend Revox::Internal::Type::Enum
1276
1337
 
1277
- def speed=: (Float) -> Float
1338
+ STT_RT_V4: :"stt-rt-v4"
1339
+ STT_RT_V5: :"stt-rt-v5"
1278
1340
 
1279
- attr_reader volume: Float?
1341
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::stt_model]
1342
+ end
1280
1343
 
1281
- def volume=: (Float) -> Float
1344
+ type thinking_sound =
1345
+ :"city-ambience.ogg"
1346
+ | :"forest-ambience.ogg"
1347
+ | :"office-ambience.ogg"
1348
+ | :"crowded-room.ogg"
1349
+ | :"keyboard-typing.ogg"
1350
+ | :"keyboard-typing2.ogg"
1351
+ | :"hold_music.ogg"
1282
1352
 
1283
- def initialize: (
1284
- id: String,
1285
- provider: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Voice::provider,
1286
- ?model: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Voice::model,
1287
- ?speed: Float,
1288
- ?volume: Float
1289
- ) -> void
1353
+ module ThinkingSound
1354
+ extend Revox::Internal::Type::Enum
1290
1355
 
1291
- def to_hash: -> {
1292
- id: String,
1293
- provider: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Voice::provider,
1294
- model: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Voice::model,
1295
- speed: Float,
1296
- volume: Float
1297
- }
1356
+ CITY_AMBIENCE_OGG: :"city-ambience.ogg"
1357
+ FOREST_AMBIENCE_OGG: :"forest-ambience.ogg"
1358
+ OFFICE_AMBIENCE_OGG: :"office-ambience.ogg"
1359
+ CROWDED_ROOM_OGG: :"crowded-room.ogg"
1360
+ KEYBOARD_TYPING_OGG: :"keyboard-typing.ogg"
1361
+ KEYBOARD_TYPING2_OGG: :"keyboard-typing2.ogg"
1362
+ HOLD_MUSIC_OGG: :"hold_music.ogg"
1298
1363
 
1299
- type provider = :cartesia | :elevenlabs
1364
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::thinking_sound]
1365
+ end
1300
1366
 
1301
- module Provider
1302
- extend Revox::Internal::Type::Enum
1367
+ type transfer_destination = { label: String, phone_number: String }
1303
1368
 
1304
- CARTESIA: :cartesia
1305
- ELEVENLABS: :elevenlabs
1369
+ class TransferDestination < Revox::Internal::Type::BaseModel
1370
+ attr_accessor label: String
1306
1371
 
1307
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Voice::provider]
1372
+ attr_accessor phone_number: String
1373
+
1374
+ def initialize: (label: String, phone_number: String) -> void
1375
+
1376
+ def to_hash: -> { label: String, phone_number: String }
1308
1377
  end
1309
1378
 
1310
- type model = :"sonic-3" | :"sonic-3.5"
1379
+ type type_ = :standalone | :"multi-step" | :"sub-assistant"
1311
1380
 
1312
- module Model
1381
+ module Type
1313
1382
  extend Revox::Internal::Type::Enum
1314
1383
 
1315
- SONIC_3: :"sonic-3"
1316
- SONIC_3_5: :"sonic-3.5"
1384
+ STANDALONE: :standalone
1385
+ MULTI_STEP: :"multi-step"
1386
+ SUB_ASSISTANT: :"sub-assistant"
1317
1387
 
1318
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Voice::model]
1388
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::type_]
1319
1389
  end
1320
- end
1321
1390
 
1322
- type zoho =
1323
- {
1324
- connection_id: String,
1325
- field_mapping: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Zoho::FieldMapping],
1326
- log_call_activity: bool,
1327
- module_: String,
1328
- outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Zoho::outcome],
1329
- template: String?
1330
- }
1391
+ type voice =
1392
+ {
1393
+ id: String,
1394
+ provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Voice::provider,
1395
+ model: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Voice::model,
1396
+ speed: Float,
1397
+ volume: Float
1398
+ }
1331
1399
 
1332
- class Zoho < Revox::Internal::Type::BaseModel
1333
- attr_accessor connection_id: String
1400
+ class Voice < Revox::Internal::Type::BaseModel
1401
+ attr_accessor id: String
1334
1402
 
1335
- attr_accessor field_mapping: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Zoho::FieldMapping]
1403
+ attr_accessor provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Voice::provider
1336
1404
 
1337
- attr_accessor log_call_activity: bool
1405
+ attr_reader model: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Voice::model?
1338
1406
 
1339
- attr_accessor module_: String
1407
+ def model=: (
1408
+ Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Voice::model
1409
+ ) -> Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Voice::model
1340
1410
 
1341
- attr_accessor outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Zoho::outcome]
1411
+ attr_reader speed: Float?
1342
1412
 
1343
- attr_accessor template: String?
1413
+ def speed=: (Float) -> Float
1344
1414
 
1345
- def initialize: (
1346
- connection_id: String,
1347
- field_mapping: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Zoho::FieldMapping],
1348
- log_call_activity: bool,
1349
- module_: String,
1350
- outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Zoho::outcome],
1351
- ?template: String?
1352
- ) -> void
1415
+ attr_reader volume: Float?
1353
1416
 
1354
- def to_hash: -> {
1355
- connection_id: String,
1356
- field_mapping: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Zoho::FieldMapping],
1357
- log_call_activity: bool,
1358
- module_: String,
1359
- outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Zoho::outcome],
1360
- template: String?
1361
- }
1417
+ def volume=: (Float) -> Float
1418
+
1419
+ def initialize: (
1420
+ id: String,
1421
+ provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Voice::provider,
1422
+ ?model: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Voice::model,
1423
+ ?speed: Float,
1424
+ ?volume: Float
1425
+ ) -> void
1426
+
1427
+ def to_hash: -> {
1428
+ id: String,
1429
+ provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Voice::provider,
1430
+ model: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Voice::model,
1431
+ speed: Float,
1432
+ volume: Float
1433
+ }
1434
+
1435
+ type provider = :cartesia | :elevenlabs | :gradium
1436
+
1437
+ module Provider
1438
+ extend Revox::Internal::Type::Enum
1362
1439
 
1363
- type field_mapping = { source: String, zoho_field: String }
1440
+ CARTESIA: :cartesia
1441
+ ELEVENLABS: :elevenlabs
1442
+ GRADIUM: :gradium
1443
+
1444
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Voice::provider]
1445
+ end
1364
1446
 
1365
- class FieldMapping < Revox::Internal::Type::BaseModel
1366
- attr_accessor source: String
1447
+ type model = :"sonic-3" | :"sonic-3.5"
1367
1448
 
1368
- attr_accessor zoho_field: String
1449
+ module Model
1450
+ extend Revox::Internal::Type::Enum
1369
1451
 
1370
- def initialize: (source: String, zoho_field: String) -> void
1452
+ SONIC_3: :"sonic-3"
1453
+ SONIC_3_5: :"sonic-3.5"
1371
1454
 
1372
- def to_hash: -> { source: String, zoho_field: String }
1455
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Voice::model]
1456
+ end
1373
1457
  end
1374
1458
 
1375
- type outcome =
1376
- :not_interested
1377
- | :interested
1378
- | :completed
1379
- | :requested_callback_later
1380
- | :requested_callback_new_number
1381
- | :do_not_contact
1382
- | :ai_averse
1383
- | :none
1459
+ type zoho =
1460
+ {
1461
+ connection_id: String,
1462
+ field_mapping: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Zoho::FieldMapping],
1463
+ log_call_activity: bool,
1464
+ module_: String,
1465
+ outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Zoho::outcome],
1466
+ template: String?
1467
+ }
1384
1468
 
1385
- module Outcome
1386
- extend Revox::Internal::Type::Enum
1469
+ class Zoho < Revox::Internal::Type::BaseModel
1470
+ attr_accessor connection_id: String
1387
1471
 
1388
- NOT_INTERESTED: :not_interested
1389
- INTERESTED: :interested
1390
- COMPLETED: :completed
1391
- REQUESTED_CALLBACK_LATER: :requested_callback_later
1392
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1393
- DO_NOT_CONTACT: :do_not_contact
1394
- AI_AVERSE: :ai_averse
1395
- NONE: :none
1472
+ attr_accessor field_mapping: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Zoho::FieldMapping]
1473
+
1474
+ attr_accessor log_call_activity: bool
1396
1475
 
1397
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::Zoho::outcome]
1476
+ attr_accessor module_: String
1477
+
1478
+ attr_accessor outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Zoho::outcome]
1479
+
1480
+ attr_accessor template: String?
1481
+
1482
+ def initialize: (
1483
+ connection_id: String,
1484
+ field_mapping: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Zoho::FieldMapping],
1485
+ log_call_activity: bool,
1486
+ module_: String,
1487
+ outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Zoho::outcome],
1488
+ ?template: String?
1489
+ ) -> void
1490
+
1491
+ def to_hash: -> {
1492
+ connection_id: String,
1493
+ field_mapping: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Zoho::FieldMapping],
1494
+ log_call_activity: bool,
1495
+ module_: String,
1496
+ outcomes: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Zoho::outcome],
1497
+ template: String?
1498
+ }
1499
+
1500
+ type field_mapping = { source: String, zoho_field: String }
1501
+
1502
+ class FieldMapping < Revox::Internal::Type::BaseModel
1503
+ attr_accessor source: String
1504
+
1505
+ attr_accessor zoho_field: String
1506
+
1507
+ def initialize: (source: String, zoho_field: String) -> void
1508
+
1509
+ def to_hash: -> { source: String, zoho_field: String }
1510
+ end
1511
+
1512
+ type outcome =
1513
+ :not_interested
1514
+ | :interested
1515
+ | :completed
1516
+ | :requested_callback_later
1517
+ | :none
1518
+
1519
+ module Outcome
1520
+ extend Revox::Internal::Type::Enum
1521
+
1522
+ NOT_INTERESTED: :not_interested
1523
+ INTERESTED: :interested
1524
+ COMPLETED: :completed
1525
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
1526
+ NONE: :none
1527
+
1528
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::Zoho::outcome]
1529
+ end
1530
+ end
1531
+
1532
+ type created_by =
1533
+ {
1534
+ id: String,
1535
+ email: String,
1536
+ first_name: String?,
1537
+ last_name: String?
1538
+ }
1539
+
1540
+ class CreatedBy < Revox::Internal::Type::BaseModel
1541
+ attr_accessor id: String
1542
+
1543
+ attr_accessor email: String
1544
+
1545
+ attr_accessor first_name: String?
1546
+
1547
+ attr_accessor last_name: String?
1548
+
1549
+ def initialize: (
1550
+ id: String,
1551
+ email: String,
1552
+ first_name: String?,
1553
+ last_name: String?
1554
+ ) -> void
1555
+
1556
+ def to_hash: -> {
1557
+ id: String,
1558
+ email: String,
1559
+ first_name: String?,
1560
+ last_name: String?
1561
+ }
1562
+ end
1563
+
1564
+ type faq_item =
1565
+ {
1566
+ answer: String,
1567
+ question: String,
1568
+ id: String,
1569
+ needs_human_answer: bool,
1570
+ source: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::FaqItem::source
1571
+ }
1572
+
1573
+ class FaqItem < Revox::Internal::Type::BaseModel
1574
+ attr_accessor answer: String
1575
+
1576
+ attr_accessor question: String
1577
+
1578
+ attr_reader id: String?
1579
+
1580
+ def id=: (String) -> String
1581
+
1582
+ attr_reader needs_human_answer: bool?
1583
+
1584
+ def needs_human_answer=: (bool) -> bool
1585
+
1586
+ attr_reader source: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::FaqItem::source?
1587
+
1588
+ def source=: (
1589
+ Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::FaqItem::source
1590
+ ) -> Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::FaqItem::source
1591
+
1592
+ def initialize: (
1593
+ answer: String,
1594
+ question: String,
1595
+ ?id: String,
1596
+ ?needs_human_answer: bool,
1597
+ ?source: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::FaqItem::source
1598
+ ) -> void
1599
+
1600
+ def to_hash: -> {
1601
+ answer: String,
1602
+ question: String,
1603
+ id: String,
1604
+ needs_human_answer: bool,
1605
+ source: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::FaqItem::source
1606
+ }
1607
+
1608
+ type source = :human | :ai
1609
+
1610
+ module Source
1611
+ extend Revox::Internal::Type::Enum
1612
+
1613
+ HUMAN: :human
1614
+ AI: :ai
1615
+
1616
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::Assistant::FaqItem::source]
1617
+ end
1398
1618
  end
1399
1619
  end
1400
1620
 
1401
- type created_by =
1621
+ type call_attempt =
1402
1622
  {
1403
1623
  id: String,
1404
- email: String,
1405
- first_name: String?,
1406
- last_name: String?
1624
+ answered_at: top,
1625
+ dial_error: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::dial_error?,
1626
+ ended_at: top,
1627
+ handled_by_ai: bool,
1628
+ handled_by_human: bool,
1629
+ handled_by_user: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::HandledByUser?,
1630
+ phone_number: String,
1631
+ recording_url: String?,
1632
+ result: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::result?,
1633
+ started_at: top,
1634
+ status: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::status,
1635
+ assistants_used: ::Array[String]?,
1636
+ email_log: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::EmailLog]?,
1637
+ end_reason: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::end_reason?,
1638
+ ended_by: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::ended_by?,
1639
+ post_call_transcript: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::PostCallTranscript]?,
1640
+ sms_log: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SMSLog]?,
1641
+ speech_events: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SpeechEvent]?,
1642
+ structured_output: ::Hash[Symbol, top]?,
1643
+ transcript: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::Transcript]?
1407
1644
  }
1408
1645
 
1409
- class CreatedBy < Revox::Internal::Type::BaseModel
1646
+ class CallAttempt < Revox::Internal::Type::BaseModel
1410
1647
  attr_accessor id: String
1411
1648
 
1412
- attr_accessor email: String
1649
+ attr_accessor answered_at: top
1413
1650
 
1414
- attr_accessor first_name: String?
1651
+ attr_accessor dial_error: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::dial_error?
1415
1652
 
1416
- attr_accessor last_name: String?
1653
+ attr_accessor ended_at: top
1417
1654
 
1418
- def initialize: (
1419
- id: String,
1420
- email: String,
1421
- first_name: String?,
1422
- last_name: String?
1423
- ) -> void
1655
+ attr_accessor handled_by_ai: bool
1424
1656
 
1425
- def to_hash: -> {
1426
- id: String,
1427
- email: String,
1428
- first_name: String?,
1429
- last_name: String?
1430
- }
1431
- end
1657
+ attr_accessor handled_by_human: bool
1432
1658
 
1433
- type faq_item =
1434
- {
1435
- answer: String,
1436
- question: String,
1437
- id: String,
1438
- needs_human_answer: bool,
1439
- source: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::FaqItem::source
1440
- }
1659
+ attr_accessor handled_by_user: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::HandledByUser?
1660
+
1661
+ attr_accessor phone_number: String
1662
+
1663
+ attr_accessor recording_url: String?
1441
1664
 
1442
- class FaqItem < Revox::Internal::Type::BaseModel
1443
- attr_accessor answer: String
1665
+ attr_accessor result: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::result?
1444
1666
 
1445
- attr_accessor question: String
1667
+ attr_accessor started_at: top
1446
1668
 
1447
- attr_reader id: String?
1669
+ attr_accessor status: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::status
1448
1670
 
1449
- def id=: (String) -> String
1671
+ attr_accessor assistants_used: ::Array[String]?
1450
1672
 
1451
- attr_reader needs_human_answer: bool?
1673
+ attr_accessor email_log: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::EmailLog]?
1452
1674
 
1453
- def needs_human_answer=: (bool) -> bool
1675
+ attr_accessor end_reason: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::end_reason?
1454
1676
 
1455
- attr_reader source: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::FaqItem::source?
1677
+ attr_accessor ended_by: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::ended_by?
1456
1678
 
1457
- def source=: (
1458
- Revox::Models::CampaignLaunchResponse::Campaign::Assistant::FaqItem::source
1459
- ) -> Revox::Models::CampaignLaunchResponse::Campaign::Assistant::FaqItem::source
1679
+ attr_accessor post_call_transcript: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::PostCallTranscript]?
1680
+
1681
+ attr_accessor sms_log: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SMSLog]?
1682
+
1683
+ attr_accessor speech_events: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SpeechEvent]?
1684
+
1685
+ attr_accessor structured_output: ::Hash[Symbol, top]?
1686
+
1687
+ attr_accessor transcript: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::Transcript]?
1460
1688
 
1461
1689
  def initialize: (
1462
- answer: String,
1463
- question: String,
1464
- ?id: String,
1465
- ?needs_human_answer: bool,
1466
- ?source: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::FaqItem::source
1690
+ id: String,
1691
+ answered_at: top,
1692
+ dial_error: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::dial_error?,
1693
+ ended_at: top,
1694
+ handled_by_ai: bool,
1695
+ handled_by_human: bool,
1696
+ handled_by_user: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::HandledByUser?,
1697
+ phone_number: String,
1698
+ recording_url: String?,
1699
+ result: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::result?,
1700
+ started_at: top,
1701
+ status: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::status,
1702
+ ?assistants_used: ::Array[String]?,
1703
+ ?email_log: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::EmailLog]?,
1704
+ ?end_reason: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::end_reason?,
1705
+ ?ended_by: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::ended_by?,
1706
+ ?post_call_transcript: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::PostCallTranscript]?,
1707
+ ?sms_log: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SMSLog]?,
1708
+ ?speech_events: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SpeechEvent]?,
1709
+ ?structured_output: ::Hash[Symbol, top]?,
1710
+ ?transcript: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::Transcript]?
1467
1711
  ) -> void
1468
1712
 
1469
1713
  def to_hash: -> {
1470
- answer: String,
1471
- question: String,
1472
1714
  id: String,
1473
- needs_human_answer: bool,
1474
- source: Revox::Models::CampaignLaunchResponse::Campaign::Assistant::FaqItem::source
1715
+ answered_at: top,
1716
+ dial_error: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::dial_error?,
1717
+ ended_at: top,
1718
+ handled_by_ai: bool,
1719
+ handled_by_human: bool,
1720
+ handled_by_user: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::HandledByUser?,
1721
+ phone_number: String,
1722
+ recording_url: String?,
1723
+ result: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::result?,
1724
+ started_at: top,
1725
+ status: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::status,
1726
+ assistants_used: ::Array[String]?,
1727
+ email_log: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::EmailLog]?,
1728
+ end_reason: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::end_reason?,
1729
+ ended_by: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::ended_by?,
1730
+ post_call_transcript: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::PostCallTranscript]?,
1731
+ sms_log: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SMSLog]?,
1732
+ speech_events: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SpeechEvent]?,
1733
+ structured_output: ::Hash[Symbol, top]?,
1734
+ transcript: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::Transcript]?
1475
1735
  }
1476
1736
 
1477
- type source = :human | :ai
1737
+ type dial_error =
1738
+ :number_non_attributed
1739
+ | :too_many_calls
1740
+ | :busy
1741
+ | :temporarily_unavailable
1742
+ | :no_answer
1743
+ | :no_international_permission
1744
+ | :precondition_failed
1745
+ | :non_classified_error
1746
+
1747
+ module DialError
1748
+ extend Revox::Internal::Type::Enum
1749
+
1750
+ NUMBER_NON_ATTRIBUTED: :number_non_attributed
1751
+ TOO_MANY_CALLS: :too_many_calls
1752
+ BUSY: :busy
1753
+ TEMPORARILY_UNAVAILABLE: :temporarily_unavailable
1754
+ NO_ANSWER: :no_answer
1755
+ NO_INTERNATIONAL_PERMISSION: :no_international_permission
1756
+ PRECONDITION_FAILED: :precondition_failed
1757
+ NON_CLASSIFIED_ERROR: :non_classified_error
1758
+
1759
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::dial_error]
1760
+ end
1761
+
1762
+ type handled_by_user =
1763
+ {
1764
+ id: String,
1765
+ email: String,
1766
+ first_name: String?,
1767
+ last_name: String?
1768
+ }
1769
+
1770
+ class HandledByUser < Revox::Internal::Type::BaseModel
1771
+ attr_accessor id: String
1772
+
1773
+ attr_accessor email: String
1774
+
1775
+ attr_accessor first_name: String?
1776
+
1777
+ attr_accessor last_name: String?
1778
+
1779
+ def initialize: (
1780
+ id: String,
1781
+ email: String,
1782
+ first_name: String?,
1783
+ last_name: String?
1784
+ ) -> void
1785
+
1786
+ def to_hash: -> {
1787
+ id: String,
1788
+ email: String,
1789
+ first_name: String?,
1790
+ last_name: String?
1791
+ }
1792
+ end
1793
+
1794
+ type result =
1795
+ :IVR | :voicemail | :human | :unknown | :"ios-screening-filter"
1478
1796
 
1479
- module Source
1797
+ module Result
1480
1798
  extend Revox::Internal::Type::Enum
1481
1799
 
1800
+ IVR: :IVR
1801
+ VOICEMAIL: :voicemail
1482
1802
  HUMAN: :human
1483
- AI: :ai
1803
+ UNKNOWN: :unknown
1804
+ IOS_SCREENING_FILTER: :"ios-screening-filter"
1484
1805
 
1485
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::Assistant::FaqItem::source]
1806
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::result]
1486
1807
  end
1487
- end
1488
- end
1489
1808
 
1490
- type call_retry_config =
1491
- {
1492
- allowed_days: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::CallRetryConfig::allowed_day],
1493
- call_twice_in_a_row: bool,
1494
- calling_windows: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::CallRetryConfig::CallingWindow],
1495
- max_retry_attempts: Integer,
1496
- timezone: String?
1497
- }
1809
+ type status = :queued | :ringing | :ongoing | :completed | :error
1498
1810
 
1499
- class CallRetryConfig < Revox::Internal::Type::BaseModel
1500
- attr_accessor allowed_days: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::CallRetryConfig::allowed_day]
1811
+ module Status
1812
+ extend Revox::Internal::Type::Enum
1501
1813
 
1502
- attr_accessor call_twice_in_a_row: bool
1814
+ QUEUED: :queued
1815
+ RINGING: :ringing
1816
+ ONGOING: :ongoing
1817
+ COMPLETED: :completed
1818
+ ERROR: :error
1503
1819
 
1504
- attr_accessor calling_windows: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::CallRetryConfig::CallingWindow]
1820
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::status]
1821
+ end
1505
1822
 
1506
- attr_accessor max_retry_attempts: Integer
1823
+ type email_log =
1824
+ {
1825
+ id: String,
1826
+ created_at: top,
1827
+ from_address: String,
1828
+ resend_message_id: String?,
1829
+ subject: String,
1830
+ to_emails: ::Array[String]
1831
+ }
1507
1832
 
1508
- attr_accessor timezone: String?
1833
+ class EmailLog < Revox::Internal::Type::BaseModel
1834
+ attr_accessor id: String
1509
1835
 
1510
- def initialize: (
1511
- allowed_days: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::CallRetryConfig::allowed_day],
1512
- call_twice_in_a_row: bool,
1513
- calling_windows: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::CallRetryConfig::CallingWindow],
1514
- max_retry_attempts: Integer,
1515
- ?timezone: String?
1516
- ) -> void
1836
+ attr_accessor created_at: top
1517
1837
 
1518
- def to_hash: -> {
1519
- allowed_days: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::CallRetryConfig::allowed_day],
1520
- call_twice_in_a_row: bool,
1521
- calling_windows: ::Array[Revox::Models::CampaignLaunchResponse::Campaign::CallRetryConfig::CallingWindow],
1522
- max_retry_attempts: Integer,
1523
- timezone: String?
1524
- }
1838
+ attr_accessor from_address: String
1525
1839
 
1526
- type allowed_day =
1527
- :monday
1528
- | :tuesday
1529
- | :wednesday
1530
- | :thursday
1531
- | :friday
1532
- | :saturday
1533
- | :sunday
1840
+ attr_accessor resend_message_id: String?
1534
1841
 
1535
- module AllowedDay
1536
- extend Revox::Internal::Type::Enum
1842
+ attr_accessor subject: String
1537
1843
 
1538
- MONDAY: :monday
1539
- TUESDAY: :tuesday
1540
- WEDNESDAY: :wednesday
1541
- THURSDAY: :thursday
1542
- FRIDAY: :friday
1543
- SATURDAY: :saturday
1544
- SUNDAY: :sunday
1844
+ attr_accessor to_emails: ::Array[String]
1545
1845
 
1546
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::CallRetryConfig::allowed_day]
1547
- end
1846
+ def initialize: (
1847
+ id: String,
1848
+ created_at: top,
1849
+ from_address: String,
1850
+ resend_message_id: String?,
1851
+ subject: String,
1852
+ to_emails: ::Array[String]
1853
+ ) -> void
1548
1854
 
1549
- type calling_window =
1550
- {
1551
- calling_window_end_time: String,
1552
- calling_window_start_time: String,
1553
- retry_delay_seconds: Integer
1554
- }
1855
+ def to_hash: -> {
1856
+ id: String,
1857
+ created_at: top,
1858
+ from_address: String,
1859
+ resend_message_id: String?,
1860
+ subject: String,
1861
+ to_emails: ::Array[String]
1862
+ }
1863
+ end
1555
1864
 
1556
- class CallingWindow < Revox::Internal::Type::BaseModel
1557
- attr_accessor calling_window_end_time: String
1865
+ type end_reason =
1866
+ :client_initiated
1867
+ | :connection_timeout
1868
+ | :human_takeover
1869
+ | :ivr_no_navigate
1870
+ | :max_duration
1871
+ | :participant_removed
1872
+ | :tool_end_call
1873
+ | :transfer
1874
+ | :user_inactive
1875
+ | :user_rejected
1876
+ | :user_unavailable
1877
+ | :voicemail
1878
+ | :speed_dial_abandoned
1879
+ | :speed_dial_operator_missed
1880
+ | :speed_dial_timeout
1881
+ | :speed_dial_hangup
1882
+
1883
+ module EndReason
1884
+ extend Revox::Internal::Type::Enum
1558
1885
 
1559
- attr_accessor calling_window_start_time: String
1886
+ CLIENT_INITIATED: :client_initiated
1887
+ CONNECTION_TIMEOUT: :connection_timeout
1888
+ HUMAN_TAKEOVER: :human_takeover
1889
+ IVR_NO_NAVIGATE: :ivr_no_navigate
1890
+ MAX_DURATION: :max_duration
1891
+ PARTICIPANT_REMOVED: :participant_removed
1892
+ TOOL_END_CALL: :tool_end_call
1893
+ TRANSFER: :transfer
1894
+ USER_INACTIVE: :user_inactive
1895
+ USER_REJECTED: :user_rejected
1896
+ USER_UNAVAILABLE: :user_unavailable
1897
+ VOICEMAIL: :voicemail
1898
+ SPEED_DIAL_ABANDONED: :speed_dial_abandoned
1899
+ SPEED_DIAL_OPERATOR_MISSED: :speed_dial_operator_missed
1900
+ SPEED_DIAL_TIMEOUT: :speed_dial_timeout
1901
+ SPEED_DIAL_HANGUP: :speed_dial_hangup
1902
+
1903
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::end_reason]
1904
+ end
1560
1905
 
1561
- attr_accessor retry_delay_seconds: Integer
1906
+ type ended_by = :agent | :user | :system
1562
1907
 
1563
- def initialize: (
1564
- calling_window_end_time: String,
1565
- calling_window_start_time: String,
1566
- retry_delay_seconds: Integer
1567
- ) -> void
1908
+ module EndedBy
1909
+ extend Revox::Internal::Type::Enum
1568
1910
 
1569
- def to_hash: -> {
1570
- calling_window_end_time: String,
1571
- calling_window_start_time: String,
1572
- retry_delay_seconds: Integer
1573
- }
1574
- end
1575
- end
1911
+ AGENT: :agent
1912
+ USER: :user
1913
+ SYSTEM: :system
1576
1914
 
1577
- type created_by =
1578
- { id: String, email: String, first_name: String?, last_name: String? }
1915
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::ended_by]
1916
+ end
1579
1917
 
1580
- class CreatedBy < Revox::Internal::Type::BaseModel
1581
- attr_accessor id: String
1918
+ type post_call_transcript =
1919
+ {
1920
+ content: String,
1921
+ role: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::PostCallTranscript::role,
1922
+ tool_arguments: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::PostCallTranscript::tool_arguments,
1923
+ tool_is_error: bool,
1924
+ tool_name: String,
1925
+ tool_output: String
1926
+ }
1582
1927
 
1583
- attr_accessor email: String
1928
+ class PostCallTranscript < Revox::Internal::Type::BaseModel
1929
+ attr_accessor content: String
1584
1930
 
1585
- attr_accessor first_name: String?
1931
+ attr_accessor role: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::PostCallTranscript::role
1586
1932
 
1587
- attr_accessor last_name: String?
1933
+ attr_reader tool_arguments: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::PostCallTranscript::tool_arguments?
1588
1934
 
1589
- def initialize: (
1590
- id: String,
1591
- email: String,
1592
- first_name: String?,
1593
- last_name: String?
1594
- ) -> void
1935
+ def tool_arguments=: (
1936
+ Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::PostCallTranscript::tool_arguments
1937
+ ) -> Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::PostCallTranscript::tool_arguments
1595
1938
 
1596
- def to_hash: -> {
1597
- id: String,
1598
- email: String,
1599
- first_name: String?,
1600
- last_name: String?
1601
- }
1602
- end
1939
+ attr_reader tool_is_error: bool?
1603
1940
 
1604
- type funnel_stats =
1605
- { hot: Float, talked_to_human: Float, total_leads: Float }
1941
+ def tool_is_error=: (bool) -> bool
1606
1942
 
1607
- class FunnelStats < Revox::Internal::Type::BaseModel
1608
- attr_accessor hot: Float
1943
+ attr_reader tool_name: String?
1609
1944
 
1610
- attr_accessor talked_to_human: Float
1945
+ def tool_name=: (String) -> String
1611
1946
 
1612
- attr_accessor total_leads: Float
1947
+ attr_reader tool_output: String?
1613
1948
 
1614
- def initialize: (
1615
- hot: Float,
1616
- talked_to_human: Float,
1617
- total_leads: Float
1618
- ) -> void
1949
+ def tool_output=: (String) -> String
1619
1950
 
1620
- def to_hash: -> {
1621
- hot: Float,
1622
- talked_to_human: Float,
1623
- total_leads: Float
1624
- }
1625
- end
1951
+ def initialize: (
1952
+ content: String,
1953
+ role: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::PostCallTranscript::role,
1954
+ ?tool_arguments: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::PostCallTranscript::tool_arguments,
1955
+ ?tool_is_error: bool,
1956
+ ?tool_name: String,
1957
+ ?tool_output: String
1958
+ ) -> void
1626
1959
 
1627
- type paused_reason = :manual | :no_presence
1960
+ def to_hash: -> {
1961
+ content: String,
1962
+ role: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::PostCallTranscript::role,
1963
+ tool_arguments: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::PostCallTranscript::tool_arguments,
1964
+ tool_is_error: bool,
1965
+ tool_name: String,
1966
+ tool_output: String
1967
+ }
1628
1968
 
1629
- module PausedReason
1630
- extend Revox::Internal::Type::Enum
1969
+ type role = :user | :assistant | :human_agent | :tool
1631
1970
 
1632
- MANUAL: :manual
1633
- NO_PRESENCE: :no_presence
1971
+ module Role
1972
+ extend Revox::Internal::Type::Enum
1634
1973
 
1635
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::paused_reason]
1636
- end
1974
+ USER: :user
1975
+ ASSISTANT: :assistant
1976
+ HUMAN_AGENT: :human_agent
1977
+ TOOL: :tool
1637
1978
 
1638
- type row_stats =
1639
- {
1640
- calling: Float,
1641
- completed: Float,
1642
- failed: Float,
1643
- pending: Float,
1644
- retry_: Float,
1645
- total: Float
1646
- }
1979
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::PostCallTranscript::role]
1980
+ end
1647
1981
 
1648
- class RowStats < Revox::Internal::Type::BaseModel
1649
- attr_accessor calling: Float
1982
+ type tool_arguments = ::Hash[Symbol, top] | String
1650
1983
 
1651
- attr_accessor completed: Float
1984
+ module ToolArguments
1985
+ extend Revox::Internal::Type::Union
1652
1986
 
1653
- attr_accessor failed: Float
1987
+ def self?.variants: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::PostCallTranscript::tool_arguments]
1654
1988
 
1655
- attr_accessor pending: Float
1989
+ UnionMember0Map: Revox::Internal::Type::Converter
1990
+ end
1991
+ end
1656
1992
 
1657
- attr_accessor retry_: Float
1993
+ type sms_log =
1994
+ {
1995
+ id: String,
1996
+ created_at: top,
1997
+ message_body: String,
1998
+ provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SMSLog::provider,
1999
+ provider_message_id: String?,
2000
+ to_phone_number: String,
2001
+ type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SMSLog::type_
2002
+ }
1658
2003
 
1659
- attr_accessor total: Float
2004
+ class SMSLog < Revox::Internal::Type::BaseModel
2005
+ attr_accessor id: String
1660
2006
 
1661
- def initialize: (
1662
- calling: Float,
1663
- completed: Float,
1664
- failed: Float,
1665
- pending: Float,
1666
- retry_: Float,
1667
- total: Float
1668
- ) -> void
2007
+ attr_accessor created_at: top
1669
2008
 
1670
- def to_hash: -> {
1671
- calling: Float,
1672
- completed: Float,
1673
- failed: Float,
1674
- pending: Float,
1675
- retry_: Float,
1676
- total: Float
1677
- }
1678
- end
2009
+ attr_accessor message_body: String
1679
2010
 
1680
- type structured_output_extraction = :none | :running | :completed
2011
+ attr_accessor provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SMSLog::provider
1681
2012
 
1682
- module StructuredOutputExtraction
2013
+ attr_accessor provider_message_id: String?
2014
+
2015
+ attr_accessor to_phone_number: String
2016
+
2017
+ attr_accessor type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SMSLog::type_
2018
+
2019
+ def initialize: (
2020
+ id: String,
2021
+ created_at: top,
2022
+ message_body: String,
2023
+ provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SMSLog::provider,
2024
+ provider_message_id: String?,
2025
+ to_phone_number: String,
2026
+ type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SMSLog::type_
2027
+ ) -> void
2028
+
2029
+ def to_hash: -> {
2030
+ id: String,
2031
+ created_at: top,
2032
+ message_body: String,
2033
+ provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SMSLog::provider,
2034
+ provider_message_id: String?,
2035
+ to_phone_number: String,
2036
+ type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SMSLog::type_
2037
+ }
2038
+
2039
+ type provider = :twilio | :vonage
2040
+
2041
+ module Provider
2042
+ extend Revox::Internal::Type::Enum
2043
+
2044
+ TWILIO: :twilio
2045
+ VONAGE: :vonage
2046
+
2047
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SMSLog::provider]
2048
+ end
2049
+
2050
+ type type_ = :in_call | :voicemail | :after_call
2051
+
2052
+ module Type
2053
+ extend Revox::Internal::Type::Enum
2054
+
2055
+ IN_CALL: :in_call
2056
+ VOICEMAIL: :voicemail
2057
+ AFTER_CALL: :after_call
2058
+
2059
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SMSLog::type_]
2060
+ end
2061
+ end
2062
+
2063
+ type speech_event =
2064
+ {
2065
+ id: String,
2066
+ is_real_turn: bool,
2067
+ llm_system_prompt: String?,
2068
+ llm_ttft_ms: Float?,
2069
+ llm_winner_model: String?,
2070
+ speaker: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SpeechEvent::speaker,
2071
+ started_speaking_at_ms: Float,
2072
+ stopped_speaking_at_ms: Float?,
2073
+ stt_transcription_delay_ms: Float?,
2074
+ transcript: String?,
2075
+ tts_ttfb_ms: Float?,
2076
+ was_cut: bool?
2077
+ }
2078
+
2079
+ class SpeechEvent < Revox::Internal::Type::BaseModel
2080
+ attr_accessor id: String
2081
+
2082
+ attr_accessor is_real_turn: bool
2083
+
2084
+ attr_accessor llm_system_prompt: String?
2085
+
2086
+ attr_accessor llm_ttft_ms: Float?
2087
+
2088
+ attr_accessor llm_winner_model: String?
2089
+
2090
+ attr_accessor speaker: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SpeechEvent::speaker
2091
+
2092
+ attr_accessor started_speaking_at_ms: Float
2093
+
2094
+ attr_accessor stopped_speaking_at_ms: Float?
2095
+
2096
+ attr_accessor stt_transcription_delay_ms: Float?
2097
+
2098
+ attr_accessor transcript: String?
2099
+
2100
+ attr_accessor tts_ttfb_ms: Float?
2101
+
2102
+ attr_accessor was_cut: bool?
2103
+
2104
+ def initialize: (
2105
+ id: String,
2106
+ is_real_turn: bool,
2107
+ llm_system_prompt: String?,
2108
+ llm_ttft_ms: Float?,
2109
+ llm_winner_model: String?,
2110
+ speaker: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SpeechEvent::speaker,
2111
+ started_speaking_at_ms: Float,
2112
+ stopped_speaking_at_ms: Float?,
2113
+ stt_transcription_delay_ms: Float?,
2114
+ transcript: String?,
2115
+ tts_ttfb_ms: Float?,
2116
+ was_cut: bool?
2117
+ ) -> void
2118
+
2119
+ def to_hash: -> {
2120
+ id: String,
2121
+ is_real_turn: bool,
2122
+ llm_system_prompt: String?,
2123
+ llm_ttft_ms: Float?,
2124
+ llm_winner_model: String?,
2125
+ speaker: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SpeechEvent::speaker,
2126
+ started_speaking_at_ms: Float,
2127
+ stopped_speaking_at_ms: Float?,
2128
+ stt_transcription_delay_ms: Float?,
2129
+ transcript: String?,
2130
+ tts_ttfb_ms: Float?,
2131
+ was_cut: bool?
2132
+ }
2133
+
2134
+ type speaker = :user | :agent
2135
+
2136
+ module Speaker
2137
+ extend Revox::Internal::Type::Enum
2138
+
2139
+ USER: :user
2140
+ AGENT: :agent
2141
+
2142
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::SpeechEvent::speaker]
2143
+ end
2144
+ end
2145
+
2146
+ type transcript =
2147
+ {
2148
+ content: String,
2149
+ role: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::Transcript::role,
2150
+ tool_arguments: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::Transcript::tool_arguments,
2151
+ tool_is_error: bool,
2152
+ tool_name: String,
2153
+ tool_output: String
2154
+ }
2155
+
2156
+ class Transcript < Revox::Internal::Type::BaseModel
2157
+ attr_accessor content: String
2158
+
2159
+ attr_accessor role: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::Transcript::role
2160
+
2161
+ attr_reader tool_arguments: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::Transcript::tool_arguments?
2162
+
2163
+ def tool_arguments=: (
2164
+ Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::Transcript::tool_arguments
2165
+ ) -> Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::Transcript::tool_arguments
2166
+
2167
+ attr_reader tool_is_error: bool?
2168
+
2169
+ def tool_is_error=: (bool) -> bool
2170
+
2171
+ attr_reader tool_name: String?
2172
+
2173
+ def tool_name=: (String) -> String
2174
+
2175
+ attr_reader tool_output: String?
2176
+
2177
+ def tool_output=: (String) -> String
2178
+
2179
+ def initialize: (
2180
+ content: String,
2181
+ role: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::Transcript::role,
2182
+ ?tool_arguments: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::Transcript::tool_arguments,
2183
+ ?tool_is_error: bool,
2184
+ ?tool_name: String,
2185
+ ?tool_output: String
2186
+ ) -> void
2187
+
2188
+ def to_hash: -> {
2189
+ content: String,
2190
+ role: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::Transcript::role,
2191
+ tool_arguments: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::Transcript::tool_arguments,
2192
+ tool_is_error: bool,
2193
+ tool_name: String,
2194
+ tool_output: String
2195
+ }
2196
+
2197
+ type role = :user | :assistant | :human_agent | :tool
2198
+
2199
+ module Role
2200
+ extend Revox::Internal::Type::Enum
2201
+
2202
+ USER: :user
2203
+ ASSISTANT: :assistant
2204
+ HUMAN_AGENT: :human_agent
2205
+ TOOL: :tool
2206
+
2207
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::Transcript::role]
2208
+ end
2209
+
2210
+ type tool_arguments = ::Hash[Symbol, top] | String
2211
+
2212
+ module ToolArguments
2213
+ extend Revox::Internal::Type::Union
2214
+
2215
+ def self?.variants: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallAttempt::Transcript::tool_arguments]
2216
+
2217
+ UnionMember0Map: Revox::Internal::Type::Converter
2218
+ end
2219
+ end
2220
+ end
2221
+
2222
+ type call_retry_config =
2223
+ {
2224
+ allowed_days: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallRetryConfig::allowed_day],
2225
+ call_twice_in_a_row: bool,
2226
+ calling_windows: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallRetryConfig::CallingWindow],
2227
+ max_retry_attempts: Integer,
2228
+ timezone: String?
2229
+ }
2230
+
2231
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
2232
+ attr_accessor allowed_days: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallRetryConfig::allowed_day]
2233
+
2234
+ attr_accessor call_twice_in_a_row: bool
2235
+
2236
+ attr_accessor calling_windows: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallRetryConfig::CallingWindow]
2237
+
2238
+ attr_accessor max_retry_attempts: Integer
2239
+
2240
+ attr_accessor timezone: String?
2241
+
2242
+ def initialize: (
2243
+ allowed_days: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallRetryConfig::allowed_day],
2244
+ call_twice_in_a_row: bool,
2245
+ calling_windows: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallRetryConfig::CallingWindow],
2246
+ max_retry_attempts: Integer,
2247
+ ?timezone: String?
2248
+ ) -> void
2249
+
2250
+ def to_hash: -> {
2251
+ allowed_days: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallRetryConfig::allowed_day],
2252
+ call_twice_in_a_row: bool,
2253
+ calling_windows: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallRetryConfig::CallingWindow],
2254
+ max_retry_attempts: Integer,
2255
+ timezone: String?
2256
+ }
2257
+
2258
+ type allowed_day =
2259
+ :monday
2260
+ | :tuesday
2261
+ | :wednesday
2262
+ | :thursday
2263
+ | :friday
2264
+ | :saturday
2265
+ | :sunday
2266
+
2267
+ module AllowedDay
2268
+ extend Revox::Internal::Type::Enum
2269
+
2270
+ MONDAY: :monday
2271
+ TUESDAY: :tuesday
2272
+ WEDNESDAY: :wednesday
2273
+ THURSDAY: :thursday
2274
+ FRIDAY: :friday
2275
+ SATURDAY: :saturday
2276
+ SUNDAY: :sunday
2277
+
2278
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::CallRetryConfig::allowed_day]
2279
+ end
2280
+
2281
+ type calling_window =
2282
+ {
2283
+ calling_window_end_time: String,
2284
+ calling_window_start_time: String,
2285
+ retry_delay_seconds: Integer
2286
+ }
2287
+
2288
+ class CallingWindow < Revox::Internal::Type::BaseModel
2289
+ attr_accessor calling_window_end_time: String
2290
+
2291
+ attr_accessor calling_window_start_time: String
2292
+
2293
+ attr_accessor retry_delay_seconds: Integer
2294
+
2295
+ def initialize: (
2296
+ calling_window_end_time: String,
2297
+ calling_window_start_time: String,
2298
+ retry_delay_seconds: Integer
2299
+ ) -> void
2300
+
2301
+ def to_hash: -> {
2302
+ calling_window_end_time: String,
2303
+ calling_window_start_time: String,
2304
+ retry_delay_seconds: Integer
2305
+ }
2306
+ end
2307
+ end
2308
+
2309
+ type campaign = { id: String, name: String }
2310
+
2311
+ class Campaign < Revox::Internal::Type::BaseModel
2312
+ attr_accessor id: String
2313
+
2314
+ attr_accessor name: String
2315
+
2316
+ def initialize: (id: String, name: String) -> void
2317
+
2318
+ def to_hash: -> { id: String, name: String }
2319
+ end
2320
+
2321
+ type contact =
2322
+ {
2323
+ company: String?,
2324
+ email: String?,
2325
+ first_name: String?,
2326
+ job_title: String?,
2327
+ last_name: String?
2328
+ }
2329
+
2330
+ class Contact < Revox::Internal::Type::BaseModel
2331
+ attr_accessor company: String?
2332
+
2333
+ attr_accessor email: String?
2334
+
2335
+ attr_accessor first_name: String?
2336
+
2337
+ attr_accessor job_title: String?
2338
+
2339
+ attr_accessor last_name: String?
2340
+
2341
+ def initialize: (
2342
+ company: String?,
2343
+ email: String?,
2344
+ first_name: String?,
2345
+ job_title: String?,
2346
+ last_name: String?
2347
+ ) -> void
2348
+
2349
+ def to_hash: -> {
2350
+ company: String?,
2351
+ email: String?,
2352
+ first_name: String?,
2353
+ job_title: String?,
2354
+ last_name: String?
2355
+ }
2356
+ end
2357
+
2358
+ type direction = :inbound | :outbound
2359
+
2360
+ module Direction
2361
+ extend Revox::Internal::Type::Enum
2362
+
2363
+ INBOUND: :inbound
2364
+ OUTBOUND: :outbound
2365
+
2366
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::direction]
2367
+ end
2368
+
2369
+ type last_call_attempt =
2370
+ {
2371
+ id: String,
2372
+ answered_at: top,
2373
+ dial_error: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::dial_error?,
2374
+ ended_at: top,
2375
+ handled_by_ai: bool,
2376
+ handled_by_human: bool,
2377
+ handled_by_user: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::HandledByUser?,
2378
+ phone_number: String,
2379
+ recording_url: String?,
2380
+ result: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::result?,
2381
+ started_at: top,
2382
+ status: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::status,
2383
+ assistants_used: ::Array[String]?,
2384
+ email_log: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::EmailLog]?,
2385
+ end_reason: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::end_reason?,
2386
+ ended_by: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::ended_by?,
2387
+ post_call_transcript: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::PostCallTranscript]?,
2388
+ sms_log: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SMSLog]?,
2389
+ speech_events: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SpeechEvent]?,
2390
+ structured_output: ::Hash[Symbol, top]?,
2391
+ transcript: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::Transcript]?
2392
+ }
2393
+
2394
+ class LastCallAttempt < Revox::Internal::Type::BaseModel
2395
+ attr_accessor id: String
2396
+
2397
+ attr_accessor answered_at: top
2398
+
2399
+ attr_accessor dial_error: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::dial_error?
2400
+
2401
+ attr_accessor ended_at: top
2402
+
2403
+ attr_accessor handled_by_ai: bool
2404
+
2405
+ attr_accessor handled_by_human: bool
2406
+
2407
+ attr_accessor handled_by_user: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::HandledByUser?
2408
+
2409
+ attr_accessor phone_number: String
2410
+
2411
+ attr_accessor recording_url: String?
2412
+
2413
+ attr_accessor result: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::result?
2414
+
2415
+ attr_accessor started_at: top
2416
+
2417
+ attr_accessor status: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::status
2418
+
2419
+ attr_accessor assistants_used: ::Array[String]?
2420
+
2421
+ attr_accessor email_log: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::EmailLog]?
2422
+
2423
+ attr_accessor end_reason: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::end_reason?
2424
+
2425
+ attr_accessor ended_by: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::ended_by?
2426
+
2427
+ attr_accessor post_call_transcript: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::PostCallTranscript]?
2428
+
2429
+ attr_accessor sms_log: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SMSLog]?
2430
+
2431
+ attr_accessor speech_events: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SpeechEvent]?
2432
+
2433
+ attr_accessor structured_output: ::Hash[Symbol, top]?
2434
+
2435
+ attr_accessor transcript: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::Transcript]?
2436
+
2437
+ def initialize: (
2438
+ id: String,
2439
+ answered_at: top,
2440
+ dial_error: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::dial_error?,
2441
+ ended_at: top,
2442
+ handled_by_ai: bool,
2443
+ handled_by_human: bool,
2444
+ handled_by_user: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::HandledByUser?,
2445
+ phone_number: String,
2446
+ recording_url: String?,
2447
+ result: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::result?,
2448
+ started_at: top,
2449
+ status: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::status,
2450
+ ?assistants_used: ::Array[String]?,
2451
+ ?email_log: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::EmailLog]?,
2452
+ ?end_reason: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::end_reason?,
2453
+ ?ended_by: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::ended_by?,
2454
+ ?post_call_transcript: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::PostCallTranscript]?,
2455
+ ?sms_log: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SMSLog]?,
2456
+ ?speech_events: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SpeechEvent]?,
2457
+ ?structured_output: ::Hash[Symbol, top]?,
2458
+ ?transcript: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::Transcript]?
2459
+ ) -> void
2460
+
2461
+ def to_hash: -> {
2462
+ id: String,
2463
+ answered_at: top,
2464
+ dial_error: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::dial_error?,
2465
+ ended_at: top,
2466
+ handled_by_ai: bool,
2467
+ handled_by_human: bool,
2468
+ handled_by_user: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::HandledByUser?,
2469
+ phone_number: String,
2470
+ recording_url: String?,
2471
+ result: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::result?,
2472
+ started_at: top,
2473
+ status: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::status,
2474
+ assistants_used: ::Array[String]?,
2475
+ email_log: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::EmailLog]?,
2476
+ end_reason: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::end_reason?,
2477
+ ended_by: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::ended_by?,
2478
+ post_call_transcript: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::PostCallTranscript]?,
2479
+ sms_log: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SMSLog]?,
2480
+ speech_events: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SpeechEvent]?,
2481
+ structured_output: ::Hash[Symbol, top]?,
2482
+ transcript: ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::Transcript]?
2483
+ }
2484
+
2485
+ type dial_error =
2486
+ :number_non_attributed
2487
+ | :too_many_calls
2488
+ | :busy
2489
+ | :temporarily_unavailable
2490
+ | :no_answer
2491
+ | :no_international_permission
2492
+ | :precondition_failed
2493
+ | :non_classified_error
2494
+
2495
+ module DialError
2496
+ extend Revox::Internal::Type::Enum
2497
+
2498
+ NUMBER_NON_ATTRIBUTED: :number_non_attributed
2499
+ TOO_MANY_CALLS: :too_many_calls
2500
+ BUSY: :busy
2501
+ TEMPORARILY_UNAVAILABLE: :temporarily_unavailable
2502
+ NO_ANSWER: :no_answer
2503
+ NO_INTERNATIONAL_PERMISSION: :no_international_permission
2504
+ PRECONDITION_FAILED: :precondition_failed
2505
+ NON_CLASSIFIED_ERROR: :non_classified_error
2506
+
2507
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::dial_error]
2508
+ end
2509
+
2510
+ type handled_by_user =
2511
+ {
2512
+ id: String,
2513
+ email: String,
2514
+ first_name: String?,
2515
+ last_name: String?
2516
+ }
2517
+
2518
+ class HandledByUser < Revox::Internal::Type::BaseModel
2519
+ attr_accessor id: String
2520
+
2521
+ attr_accessor email: String
2522
+
2523
+ attr_accessor first_name: String?
2524
+
2525
+ attr_accessor last_name: String?
2526
+
2527
+ def initialize: (
2528
+ id: String,
2529
+ email: String,
2530
+ first_name: String?,
2531
+ last_name: String?
2532
+ ) -> void
2533
+
2534
+ def to_hash: -> {
2535
+ id: String,
2536
+ email: String,
2537
+ first_name: String?,
2538
+ last_name: String?
2539
+ }
2540
+ end
2541
+
2542
+ type result =
2543
+ :IVR | :voicemail | :human | :unknown | :"ios-screening-filter"
2544
+
2545
+ module Result
2546
+ extend Revox::Internal::Type::Enum
2547
+
2548
+ IVR: :IVR
2549
+ VOICEMAIL: :voicemail
2550
+ HUMAN: :human
2551
+ UNKNOWN: :unknown
2552
+ IOS_SCREENING_FILTER: :"ios-screening-filter"
2553
+
2554
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::result]
2555
+ end
2556
+
2557
+ type status = :queued | :ringing | :ongoing | :completed | :error
2558
+
2559
+ module Status
2560
+ extend Revox::Internal::Type::Enum
2561
+
2562
+ QUEUED: :queued
2563
+ RINGING: :ringing
2564
+ ONGOING: :ongoing
2565
+ COMPLETED: :completed
2566
+ ERROR: :error
2567
+
2568
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::status]
2569
+ end
2570
+
2571
+ type email_log =
2572
+ {
2573
+ id: String,
2574
+ created_at: top,
2575
+ from_address: String,
2576
+ resend_message_id: String?,
2577
+ subject: String,
2578
+ to_emails: ::Array[String]
2579
+ }
2580
+
2581
+ class EmailLog < Revox::Internal::Type::BaseModel
2582
+ attr_accessor id: String
2583
+
2584
+ attr_accessor created_at: top
2585
+
2586
+ attr_accessor from_address: String
2587
+
2588
+ attr_accessor resend_message_id: String?
2589
+
2590
+ attr_accessor subject: String
2591
+
2592
+ attr_accessor to_emails: ::Array[String]
2593
+
2594
+ def initialize: (
2595
+ id: String,
2596
+ created_at: top,
2597
+ from_address: String,
2598
+ resend_message_id: String?,
2599
+ subject: String,
2600
+ to_emails: ::Array[String]
2601
+ ) -> void
2602
+
2603
+ def to_hash: -> {
2604
+ id: String,
2605
+ created_at: top,
2606
+ from_address: String,
2607
+ resend_message_id: String?,
2608
+ subject: String,
2609
+ to_emails: ::Array[String]
2610
+ }
2611
+ end
2612
+
2613
+ type end_reason =
2614
+ :client_initiated
2615
+ | :connection_timeout
2616
+ | :human_takeover
2617
+ | :ivr_no_navigate
2618
+ | :max_duration
2619
+ | :participant_removed
2620
+ | :tool_end_call
2621
+ | :transfer
2622
+ | :user_inactive
2623
+ | :user_rejected
2624
+ | :user_unavailable
2625
+ | :voicemail
2626
+ | :speed_dial_abandoned
2627
+ | :speed_dial_operator_missed
2628
+ | :speed_dial_timeout
2629
+ | :speed_dial_hangup
2630
+
2631
+ module EndReason
2632
+ extend Revox::Internal::Type::Enum
2633
+
2634
+ CLIENT_INITIATED: :client_initiated
2635
+ CONNECTION_TIMEOUT: :connection_timeout
2636
+ HUMAN_TAKEOVER: :human_takeover
2637
+ IVR_NO_NAVIGATE: :ivr_no_navigate
2638
+ MAX_DURATION: :max_duration
2639
+ PARTICIPANT_REMOVED: :participant_removed
2640
+ TOOL_END_CALL: :tool_end_call
2641
+ TRANSFER: :transfer
2642
+ USER_INACTIVE: :user_inactive
2643
+ USER_REJECTED: :user_rejected
2644
+ USER_UNAVAILABLE: :user_unavailable
2645
+ VOICEMAIL: :voicemail
2646
+ SPEED_DIAL_ABANDONED: :speed_dial_abandoned
2647
+ SPEED_DIAL_OPERATOR_MISSED: :speed_dial_operator_missed
2648
+ SPEED_DIAL_TIMEOUT: :speed_dial_timeout
2649
+ SPEED_DIAL_HANGUP: :speed_dial_hangup
2650
+
2651
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::end_reason]
2652
+ end
2653
+
2654
+ type ended_by = :agent | :user | :system
2655
+
2656
+ module EndedBy
2657
+ extend Revox::Internal::Type::Enum
2658
+
2659
+ AGENT: :agent
2660
+ USER: :user
2661
+ SYSTEM: :system
2662
+
2663
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::ended_by]
2664
+ end
2665
+
2666
+ type post_call_transcript =
2667
+ {
2668
+ content: String,
2669
+ role: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::PostCallTranscript::role,
2670
+ tool_arguments: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::PostCallTranscript::tool_arguments,
2671
+ tool_is_error: bool,
2672
+ tool_name: String,
2673
+ tool_output: String
2674
+ }
2675
+
2676
+ class PostCallTranscript < Revox::Internal::Type::BaseModel
2677
+ attr_accessor content: String
2678
+
2679
+ attr_accessor role: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::PostCallTranscript::role
2680
+
2681
+ attr_reader tool_arguments: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::PostCallTranscript::tool_arguments?
2682
+
2683
+ def tool_arguments=: (
2684
+ Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::PostCallTranscript::tool_arguments
2685
+ ) -> Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::PostCallTranscript::tool_arguments
2686
+
2687
+ attr_reader tool_is_error: bool?
2688
+
2689
+ def tool_is_error=: (bool) -> bool
2690
+
2691
+ attr_reader tool_name: String?
2692
+
2693
+ def tool_name=: (String) -> String
2694
+
2695
+ attr_reader tool_output: String?
2696
+
2697
+ def tool_output=: (String) -> String
2698
+
2699
+ def initialize: (
2700
+ content: String,
2701
+ role: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::PostCallTranscript::role,
2702
+ ?tool_arguments: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::PostCallTranscript::tool_arguments,
2703
+ ?tool_is_error: bool,
2704
+ ?tool_name: String,
2705
+ ?tool_output: String
2706
+ ) -> void
2707
+
2708
+ def to_hash: -> {
2709
+ content: String,
2710
+ role: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::PostCallTranscript::role,
2711
+ tool_arguments: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::PostCallTranscript::tool_arguments,
2712
+ tool_is_error: bool,
2713
+ tool_name: String,
2714
+ tool_output: String
2715
+ }
2716
+
2717
+ type role = :user | :assistant | :human_agent | :tool
2718
+
2719
+ module Role
2720
+ extend Revox::Internal::Type::Enum
2721
+
2722
+ USER: :user
2723
+ ASSISTANT: :assistant
2724
+ HUMAN_AGENT: :human_agent
2725
+ TOOL: :tool
2726
+
2727
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::PostCallTranscript::role]
2728
+ end
2729
+
2730
+ type tool_arguments = ::Hash[Symbol, top] | String
2731
+
2732
+ module ToolArguments
2733
+ extend Revox::Internal::Type::Union
2734
+
2735
+ def self?.variants: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::PostCallTranscript::tool_arguments]
2736
+
2737
+ UnionMember0Map: Revox::Internal::Type::Converter
2738
+ end
2739
+ end
2740
+
2741
+ type sms_log =
2742
+ {
2743
+ id: String,
2744
+ created_at: top,
2745
+ message_body: String,
2746
+ provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SMSLog::provider,
2747
+ provider_message_id: String?,
2748
+ to_phone_number: String,
2749
+ type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SMSLog::type_
2750
+ }
2751
+
2752
+ class SMSLog < Revox::Internal::Type::BaseModel
2753
+ attr_accessor id: String
2754
+
2755
+ attr_accessor created_at: top
2756
+
2757
+ attr_accessor message_body: String
2758
+
2759
+ attr_accessor provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SMSLog::provider
2760
+
2761
+ attr_accessor provider_message_id: String?
2762
+
2763
+ attr_accessor to_phone_number: String
2764
+
2765
+ attr_accessor type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SMSLog::type_
2766
+
2767
+ def initialize: (
2768
+ id: String,
2769
+ created_at: top,
2770
+ message_body: String,
2771
+ provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SMSLog::provider,
2772
+ provider_message_id: String?,
2773
+ to_phone_number: String,
2774
+ type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SMSLog::type_
2775
+ ) -> void
2776
+
2777
+ def to_hash: -> {
2778
+ id: String,
2779
+ created_at: top,
2780
+ message_body: String,
2781
+ provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SMSLog::provider,
2782
+ provider_message_id: String?,
2783
+ to_phone_number: String,
2784
+ type: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SMSLog::type_
2785
+ }
2786
+
2787
+ type provider = :twilio | :vonage
2788
+
2789
+ module Provider
2790
+ extend Revox::Internal::Type::Enum
2791
+
2792
+ TWILIO: :twilio
2793
+ VONAGE: :vonage
2794
+
2795
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SMSLog::provider]
2796
+ end
2797
+
2798
+ type type_ = :in_call | :voicemail | :after_call
2799
+
2800
+ module Type
2801
+ extend Revox::Internal::Type::Enum
2802
+
2803
+ IN_CALL: :in_call
2804
+ VOICEMAIL: :voicemail
2805
+ AFTER_CALL: :after_call
2806
+
2807
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SMSLog::type_]
2808
+ end
2809
+ end
2810
+
2811
+ type speech_event =
2812
+ {
2813
+ id: String,
2814
+ is_real_turn: bool,
2815
+ llm_system_prompt: String?,
2816
+ llm_ttft_ms: Float?,
2817
+ llm_winner_model: String?,
2818
+ speaker: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SpeechEvent::speaker,
2819
+ started_speaking_at_ms: Float,
2820
+ stopped_speaking_at_ms: Float?,
2821
+ stt_transcription_delay_ms: Float?,
2822
+ transcript: String?,
2823
+ tts_ttfb_ms: Float?,
2824
+ was_cut: bool?
2825
+ }
2826
+
2827
+ class SpeechEvent < Revox::Internal::Type::BaseModel
2828
+ attr_accessor id: String
2829
+
2830
+ attr_accessor is_real_turn: bool
2831
+
2832
+ attr_accessor llm_system_prompt: String?
2833
+
2834
+ attr_accessor llm_ttft_ms: Float?
2835
+
2836
+ attr_accessor llm_winner_model: String?
2837
+
2838
+ attr_accessor speaker: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SpeechEvent::speaker
2839
+
2840
+ attr_accessor started_speaking_at_ms: Float
2841
+
2842
+ attr_accessor stopped_speaking_at_ms: Float?
2843
+
2844
+ attr_accessor stt_transcription_delay_ms: Float?
2845
+
2846
+ attr_accessor transcript: String?
2847
+
2848
+ attr_accessor tts_ttfb_ms: Float?
2849
+
2850
+ attr_accessor was_cut: bool?
2851
+
2852
+ def initialize: (
2853
+ id: String,
2854
+ is_real_turn: bool,
2855
+ llm_system_prompt: String?,
2856
+ llm_ttft_ms: Float?,
2857
+ llm_winner_model: String?,
2858
+ speaker: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SpeechEvent::speaker,
2859
+ started_speaking_at_ms: Float,
2860
+ stopped_speaking_at_ms: Float?,
2861
+ stt_transcription_delay_ms: Float?,
2862
+ transcript: String?,
2863
+ tts_ttfb_ms: Float?,
2864
+ was_cut: bool?
2865
+ ) -> void
2866
+
2867
+ def to_hash: -> {
2868
+ id: String,
2869
+ is_real_turn: bool,
2870
+ llm_system_prompt: String?,
2871
+ llm_ttft_ms: Float?,
2872
+ llm_winner_model: String?,
2873
+ speaker: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SpeechEvent::speaker,
2874
+ started_speaking_at_ms: Float,
2875
+ stopped_speaking_at_ms: Float?,
2876
+ stt_transcription_delay_ms: Float?,
2877
+ transcript: String?,
2878
+ tts_ttfb_ms: Float?,
2879
+ was_cut: bool?
2880
+ }
2881
+
2882
+ type speaker = :user | :agent
2883
+
2884
+ module Speaker
2885
+ extend Revox::Internal::Type::Enum
2886
+
2887
+ USER: :user
2888
+ AGENT: :agent
2889
+
2890
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::SpeechEvent::speaker]
2891
+ end
2892
+ end
2893
+
2894
+ type transcript =
2895
+ {
2896
+ content: String,
2897
+ role: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::Transcript::role,
2898
+ tool_arguments: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::Transcript::tool_arguments,
2899
+ tool_is_error: bool,
2900
+ tool_name: String,
2901
+ tool_output: String
2902
+ }
2903
+
2904
+ class Transcript < Revox::Internal::Type::BaseModel
2905
+ attr_accessor content: String
2906
+
2907
+ attr_accessor role: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::Transcript::role
2908
+
2909
+ attr_reader tool_arguments: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::Transcript::tool_arguments?
2910
+
2911
+ def tool_arguments=: (
2912
+ Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::Transcript::tool_arguments
2913
+ ) -> Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::Transcript::tool_arguments
2914
+
2915
+ attr_reader tool_is_error: bool?
2916
+
2917
+ def tool_is_error=: (bool) -> bool
2918
+
2919
+ attr_reader tool_name: String?
2920
+
2921
+ def tool_name=: (String) -> String
2922
+
2923
+ attr_reader tool_output: String?
2924
+
2925
+ def tool_output=: (String) -> String
2926
+
2927
+ def initialize: (
2928
+ content: String,
2929
+ role: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::Transcript::role,
2930
+ ?tool_arguments: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::Transcript::tool_arguments,
2931
+ ?tool_is_error: bool,
2932
+ ?tool_name: String,
2933
+ ?tool_output: String
2934
+ ) -> void
2935
+
2936
+ def to_hash: -> {
2937
+ content: String,
2938
+ role: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::Transcript::role,
2939
+ tool_arguments: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::Transcript::tool_arguments,
2940
+ tool_is_error: bool,
2941
+ tool_name: String,
2942
+ tool_output: String
2943
+ }
2944
+
2945
+ type role = :user | :assistant | :human_agent | :tool
2946
+
2947
+ module Role
2948
+ extend Revox::Internal::Type::Enum
2949
+
2950
+ USER: :user
2951
+ ASSISTANT: :assistant
2952
+ HUMAN_AGENT: :human_agent
2953
+ TOOL: :tool
2954
+
2955
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::Transcript::role]
2956
+ end
2957
+
2958
+ type tool_arguments = ::Hash[Symbol, top] | String
2959
+
2960
+ module ToolArguments
2961
+ extend Revox::Internal::Type::Union
2962
+
2963
+ def self?.variants: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LastCallAttempt::Transcript::tool_arguments]
2964
+
2965
+ UnionMember0Map: Revox::Internal::Type::Converter
2966
+ end
2967
+ end
2968
+ end
2969
+
2970
+ type llm_model =
2971
+ Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LlmModel::UnionMember0
2972
+ | Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LlmModel::UnionMember1
2973
+ | Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LlmModel::UnionMember2
2974
+ | Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LlmModel::UnionMember3
2975
+
2976
+ module LlmModel
2977
+ extend Revox::Internal::Type::Union
2978
+
2979
+ type union_member0 =
2980
+ {
2981
+ name: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LlmModel::UnionMember0::name_,
2982
+ type: :"dedicated-instance"
2983
+ }
2984
+
2985
+ class UnionMember0 < Revox::Internal::Type::BaseModel
2986
+ attr_accessor name: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LlmModel::UnionMember0::name_
2987
+
2988
+ attr_accessor type: :"dedicated-instance"
2989
+
2990
+ def initialize: (
2991
+ name: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LlmModel::UnionMember0::name_,
2992
+ ?type: :"dedicated-instance"
2993
+ ) -> void
2994
+
2995
+ def to_hash: -> {
2996
+ name: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LlmModel::UnionMember0::name_,
2997
+ type: :"dedicated-instance"
2998
+ }
2999
+
3000
+ type name_ = :"gpt-4.1" | :"ministral-3-8b-instruct"
3001
+
3002
+ module Name
3003
+ extend Revox::Internal::Type::Enum
3004
+
3005
+ GPT_4_1: :"gpt-4.1"
3006
+ MINISTRAL_3_8B_INSTRUCT: :"ministral-3-8b-instruct"
3007
+
3008
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LlmModel::UnionMember0::name_]
3009
+ end
3010
+ end
3011
+
3012
+ type union_member1 =
3013
+ {
3014
+ openrouter_model_id: String,
3015
+ openrouter_provider: String,
3016
+ type: :openrouter
3017
+ }
3018
+
3019
+ class UnionMember1 < Revox::Internal::Type::BaseModel
3020
+ attr_accessor openrouter_model_id: String
3021
+
3022
+ attr_accessor openrouter_provider: String
3023
+
3024
+ attr_accessor type: :openrouter
3025
+
3026
+ def initialize: (
3027
+ openrouter_model_id: String,
3028
+ openrouter_provider: String,
3029
+ ?type: :openrouter
3030
+ ) -> void
3031
+
3032
+ def to_hash: -> {
3033
+ openrouter_model_id: String,
3034
+ openrouter_provider: String,
3035
+ type: :openrouter
3036
+ }
3037
+ end
3038
+
3039
+ type union_member2 =
3040
+ {
3041
+ api_key: String,
3042
+ api_url: String,
3043
+ model_name: String,
3044
+ type: :custom
3045
+ }
3046
+
3047
+ class UnionMember2 < Revox::Internal::Type::BaseModel
3048
+ attr_accessor api_key: String
3049
+
3050
+ attr_accessor api_url: String
3051
+
3052
+ attr_accessor model_name: String
3053
+
3054
+ attr_accessor type: :custom
3055
+
3056
+ def initialize: (
3057
+ api_key: String,
3058
+ api_url: String,
3059
+ model_name: String,
3060
+ ?type: :custom
3061
+ ) -> void
3062
+
3063
+ def to_hash: -> {
3064
+ api_key: String,
3065
+ api_url: String,
3066
+ model_name: String,
3067
+ type: :custom
3068
+ }
3069
+ end
3070
+
3071
+ type union_member3 =
3072
+ {
3073
+ provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LlmModel::UnionMember3::provider,
3074
+ realtime_model_id: String,
3075
+ type: :realtime,
3076
+ realtime_voice_id: String
3077
+ }
3078
+
3079
+ class UnionMember3 < Revox::Internal::Type::BaseModel
3080
+ attr_accessor provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LlmModel::UnionMember3::provider
3081
+
3082
+ attr_accessor realtime_model_id: String
3083
+
3084
+ attr_accessor type: :realtime
3085
+
3086
+ attr_reader realtime_voice_id: String?
3087
+
3088
+ def realtime_voice_id=: (String) -> String
3089
+
3090
+ def initialize: (
3091
+ provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LlmModel::UnionMember3::provider,
3092
+ realtime_model_id: String,
3093
+ ?realtime_voice_id: String,
3094
+ ?type: :realtime
3095
+ ) -> void
3096
+
3097
+ def to_hash: -> {
3098
+ provider: Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LlmModel::UnionMember3::provider,
3099
+ realtime_model_id: String,
3100
+ type: :realtime,
3101
+ realtime_voice_id: String
3102
+ }
3103
+
3104
+ type provider = :openai | :google
3105
+
3106
+ module Provider
3107
+ extend Revox::Internal::Type::Enum
3108
+
3109
+ OPENAI: :openai
3110
+ GOOGLE: :google
3111
+
3112
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::LlmModel::UnionMember3::provider]
3113
+ end
3114
+ end
3115
+
3116
+ def self?.variants: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::llm_model]
3117
+ end
3118
+
3119
+ type status =
3120
+ :initializing
3121
+ | :queued_for_calling
3122
+ | :calling
3123
+ | :post_processing
3124
+ | :not_launched
3125
+ | :scheduled
3126
+ | :paused
3127
+ | :completed
3128
+ | :cancelled
3129
+ | :errored
3130
+
3131
+ module Status
3132
+ extend Revox::Internal::Type::Enum
3133
+
3134
+ INITIALIZING: :initializing
3135
+ QUEUED_FOR_CALLING: :queued_for_calling
3136
+ CALLING: :calling
3137
+ POST_PROCESSING: :post_processing
3138
+ NOT_LAUNCHED: :not_launched
3139
+ SCHEDULED: :scheduled
3140
+ PAUSED: :paused
3141
+ COMPLETED: :completed
3142
+ CANCELLED: :cancelled
3143
+ ERRORED: :errored
3144
+
3145
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::status]
3146
+ end
3147
+
3148
+ type outcome =
3149
+ :not_interested
3150
+ | :interested
3151
+ | :completed
3152
+ | :requested_callback_later
3153
+
3154
+ module Outcome
3155
+ extend Revox::Internal::Type::Enum
3156
+
3157
+ NOT_INTERESTED: :not_interested
3158
+ INTERESTED: :interested
3159
+ COMPLETED: :completed
3160
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
3161
+
3162
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::InFlightCall::outcome]
3163
+ end
3164
+ end
3165
+
3166
+ type outcome_filter =
3167
+ :not_interested | :interested | :completed | :requested_callback_later
3168
+
3169
+ module OutcomeFilter
3170
+ extend Revox::Internal::Type::Enum
3171
+
3172
+ NOT_INTERESTED: :not_interested
3173
+ INTERESTED: :interested
3174
+ COMPLETED: :completed
3175
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
3176
+
3177
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::outcome_filter]
3178
+ end
3179
+
3180
+ type status = :dialing | :connected | :completed | :stopped | :errored
3181
+
3182
+ module Status
1683
3183
  extend Revox::Internal::Type::Enum
1684
3184
 
1685
- NONE: :none
1686
- RUNNING: :running
3185
+ DIALING: :dialing
3186
+ CONNECTED: :connected
1687
3187
  COMPLETED: :completed
3188
+ STOPPED: :stopped
3189
+ ERRORED: :errored
1688
3190
 
1689
- def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Campaign::structured_output_extraction]
3191
+ def self?.values: -> ::Array[Revox::Models::CampaignLaunchResponse::Session::status]
1690
3192
  end
1691
3193
  end
1692
3194
  end