revox 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +81 -0
  3. data/README.md +39 -14
  4. data/lib/revox/client.rb +23 -1
  5. data/lib/revox/internal/transport/base_client.rb +5 -0
  6. data/lib/revox/internal/type/base_model.rb +3 -3
  7. data/lib/revox/internal/util.rb +22 -7
  8. data/lib/revox/models/assistant_clone_params.rb +20 -0
  9. data/lib/revox/models/assistant_clone_response.rb +1594 -0
  10. data/lib/revox/models/assistant_create_params.rb +1038 -13
  11. data/lib/revox/models/assistant_create_response.rb +1071 -11
  12. data/lib/revox/models/assistant_list_response.rb +1070 -11
  13. data/lib/revox/models/assistant_retrieve_response.rb +1066 -11
  14. data/lib/revox/models/assistant_update_params.rb +1038 -13
  15. data/lib/revox/models/assistant_update_response.rb +1097 -12
  16. data/lib/revox/models/auth_status_retrieve_params.rb +14 -0
  17. data/lib/revox/models/auth_status_retrieve_response.rb +17 -0
  18. data/lib/revox/models/call_cancel_params.rb +20 -0
  19. data/lib/revox/models/call_cancel_response.rb +16 -0
  20. data/lib/revox/models/call_create_params.rb +1065 -13
  21. data/lib/revox/models/call_create_response.rb +1820 -98
  22. data/lib/revox/models/call_export_params.rb +205 -0
  23. data/lib/revox/models/call_export_response.rb +22 -0
  24. data/lib/revox/models/call_pause_params.rb +20 -0
  25. data/lib/revox/models/call_pause_response.rb +16 -0
  26. data/lib/revox/models/call_phone_history_params.rb +14 -0
  27. data/lib/revox/models/call_phone_history_response.rb +98 -0
  28. data/lib/revox/models/call_resume_params.rb +20 -0
  29. data/lib/revox/models/call_resume_response.rb +16 -0
  30. data/lib/revox/models/call_retrieve_response.rb +1822 -98
  31. data/lib/revox/models/call_search_params.rb +171 -0
  32. data/lib/revox/models/call_search_response.rb +3114 -0
  33. data/lib/revox/models/campaign_create_params.rb +67 -2
  34. data/lib/revox/models/campaign_create_response.rb +1314 -59
  35. data/lib/revox/models/campaign_get_rows_params.rb +1 -46
  36. data/lib/revox/models/campaign_get_rows_response.rb +1833 -115
  37. data/lib/revox/models/campaign_launch_params.rb +20 -0
  38. data/lib/revox/models/campaign_launch_response.rb +2030 -0
  39. data/lib/revox/models/campaign_list_response.rb +1312 -59
  40. data/lib/revox/models/campaign_pause_params.rb +20 -0
  41. data/lib/revox/models/campaign_pause_response.rb +16 -0
  42. data/lib/revox/models/campaign_resume_params.rb +20 -0
  43. data/lib/revox/models/campaign_resume_response.rb +16 -0
  44. data/lib/revox/models/campaign_retrieve_response.rb +1312 -56
  45. data/lib/revox/models/campaign_statistics_params.rb +20 -0
  46. data/lib/revox/models/campaign_statistics_response.rb +486 -0
  47. data/lib/revox/models/campaign_update_params.rb +234 -0
  48. data/lib/revox/models/campaign_update_response.rb +2030 -0
  49. data/lib/revox/models/phone_number_delete_params.rb +20 -0
  50. data/lib/revox/models/phone_number_delete_response.rb +16 -0
  51. data/lib/revox/models/phone_number_list_params.rb +14 -0
  52. data/lib/revox/models/phone_number_list_response.rb +1777 -0
  53. data/lib/revox/models/phone_number_update_params.rb +32 -0
  54. data/lib/revox/models/phone_number_update_response.rb +1777 -0
  55. data/lib/revox/models/user_retrieve_params.rb +14 -0
  56. data/lib/revox/models/user_retrieve_response.rb +99 -0
  57. data/lib/revox/models/voice_clone_params.rb +78 -0
  58. data/lib/revox/models/voice_clone_response.rb +40 -0
  59. data/lib/revox/models/voice_delete_params.rb +20 -0
  60. data/lib/revox/models/voice_delete_response.rb +16 -0
  61. data/lib/revox/models/voice_list_response.rb +55 -1
  62. data/lib/revox/models/voice_preview_params.rb +49 -1
  63. data/lib/revox/models.rb +36 -2
  64. data/lib/revox/resources/assistants.rb +137 -8
  65. data/lib/revox/resources/auth_status.rb +32 -0
  66. data/lib/revox/resources/call.rb +131 -15
  67. data/lib/revox/resources/campaigns.rb +143 -17
  68. data/lib/revox/resources/phone_numbers.rb +74 -0
  69. data/lib/revox/resources/users.rb +17 -3
  70. data/lib/revox/resources/voices.rb +66 -10
  71. data/lib/revox/version.rb +1 -1
  72. data/lib/revox.rb +40 -7
  73. data/rbi/revox/client.rbi +6 -0
  74. data/rbi/revox/internal/util.rbi +8 -0
  75. data/rbi/revox/models/assistant_clone_params.rbi +33 -0
  76. data/rbi/revox/models/assistant_clone_response.rbi +3341 -0
  77. data/rbi/revox/models/assistant_create_params.rbi +2138 -103
  78. data/rbi/revox/models/assistant_create_response.rbi +2454 -199
  79. data/rbi/revox/models/assistant_list_response.rbi +2448 -195
  80. data/rbi/revox/models/assistant_retrieve_response.rbi +2401 -210
  81. data/rbi/revox/models/assistant_update_params.rbi +2138 -103
  82. data/rbi/revox/models/assistant_update_response.rbi +2504 -198
  83. data/rbi/revox/models/auth_status_retrieve_params.rbi +27 -0
  84. data/rbi/revox/models/auth_status_retrieve_response.rbi +30 -0
  85. data/rbi/revox/models/call_cancel_params.rbi +33 -0
  86. data/rbi/revox/models/call_cancel_response.rbi +23 -0
  87. data/rbi/revox/models/call_create_params.rbi +2382 -225
  88. data/rbi/revox/models/call_create_response.rbi +4116 -384
  89. data/rbi/revox/models/call_export_params.rbi +456 -0
  90. data/rbi/revox/models/call_export_response.rbi +26 -0
  91. data/rbi/revox/models/call_pause_params.rbi +31 -0
  92. data/rbi/revox/models/call_pause_response.rbi +23 -0
  93. data/rbi/revox/models/call_phone_history_params.rbi +27 -0
  94. data/rbi/revox/models/call_phone_history_response.rbi +224 -0
  95. data/rbi/revox/models/call_resume_params.rbi +33 -0
  96. data/rbi/revox/models/call_resume_response.rbi +23 -0
  97. data/rbi/revox/models/call_retrieve_response.rbi +4133 -399
  98. data/rbi/revox/models/call_search_params.rbi +288 -0
  99. data/rbi/revox/models/call_search_response.rbi +6593 -0
  100. data/rbi/revox/models/campaign_create_params.rbi +136 -0
  101. data/rbi/revox/models/campaign_create_response.rbi +2911 -231
  102. data/rbi/revox/models/campaign_get_rows_params.rbi +2 -82
  103. data/rbi/revox/models/campaign_get_rows_response.rbi +4146 -409
  104. data/rbi/revox/models/campaign_launch_params.rbi +33 -0
  105. data/rbi/revox/models/campaign_launch_response.rbi +4170 -0
  106. data/rbi/revox/models/campaign_list_response.rbi +2904 -230
  107. data/rbi/revox/models/campaign_pause_params.rbi +33 -0
  108. data/rbi/revox/models/campaign_pause_response.rbi +23 -0
  109. data/rbi/revox/models/campaign_resume_params.rbi +33 -0
  110. data/rbi/revox/models/campaign_resume_response.rbi +23 -0
  111. data/rbi/revox/models/campaign_retrieve_response.rbi +2911 -231
  112. data/rbi/revox/models/campaign_statistics_params.rbi +33 -0
  113. data/rbi/revox/models/campaign_statistics_response.rbi +1011 -0
  114. data/rbi/revox/models/campaign_update_params.rbi +431 -0
  115. data/rbi/revox/models/campaign_update_response.rbi +4170 -0
  116. data/rbi/revox/models/phone_number_delete_params.rbi +33 -0
  117. data/rbi/revox/models/phone_number_delete_response.rbi +26 -0
  118. data/rbi/revox/models/phone_number_list_params.rbi +27 -0
  119. data/rbi/revox/models/phone_number_list_response.rbi +3680 -0
  120. data/rbi/revox/models/phone_number_update_params.rbi +53 -0
  121. data/rbi/revox/models/phone_number_update_response.rbi +3683 -0
  122. data/rbi/revox/models/user_retrieve_params.rbi +27 -0
  123. data/rbi/revox/models/user_retrieve_response.rbi +140 -0
  124. data/rbi/revox/models/voice_clone_params.rbi +141 -0
  125. data/rbi/revox/models/voice_clone_response.rbi +53 -0
  126. data/rbi/revox/models/voice_delete_params.rbi +33 -0
  127. data/rbi/revox/models/voice_delete_response.rbi +23 -0
  128. data/rbi/revox/models/voice_list_response.rbi +105 -3
  129. data/rbi/revox/models/voice_preview_params.rbi +69 -0
  130. data/rbi/revox/models.rbi +36 -2
  131. data/rbi/revox/resources/assistants.rbi +296 -8
  132. data/rbi/revox/resources/auth_status.rbi +21 -0
  133. data/rbi/revox/resources/call.rbi +92 -6
  134. data/rbi/revox/resources/campaigns.rbi +106 -19
  135. data/rbi/revox/resources/phone_numbers.rbi +43 -0
  136. data/rbi/revox/resources/users.rbi +8 -2
  137. data/rbi/revox/resources/voices.rbi +56 -9
  138. data/sig/revox/client.rbs +4 -0
  139. data/sig/revox/internal/util.rbs +4 -0
  140. data/sig/revox/models/assistant_clone_params.rbs +20 -0
  141. data/sig/revox/models/assistant_clone_response.rbs +1318 -0
  142. data/sig/revox/models/assistant_create_params.rbs +844 -11
  143. data/sig/revox/models/assistant_create_response.rbs +860 -3
  144. data/sig/revox/models/assistant_list_response.rbs +860 -3
  145. data/sig/revox/models/assistant_retrieve_response.rbs +859 -3
  146. data/sig/revox/models/assistant_update_params.rbs +844 -11
  147. data/sig/revox/models/assistant_update_response.rbs +886 -6
  148. data/sig/revox/models/auth_status_retrieve_params.rbs +15 -0
  149. data/sig/revox/models/auth_status_retrieve_response.rbs +13 -0
  150. data/sig/revox/models/call_cancel_params.rbs +20 -0
  151. data/sig/revox/models/call_cancel_response.rbs +13 -0
  152. data/sig/revox/models/call_create_params.rbs +847 -13
  153. data/sig/revox/models/call_create_response.rbs +1519 -34
  154. data/sig/revox/models/call_export_params.rbs +234 -0
  155. data/sig/revox/models/call_export_response.rbs +15 -0
  156. data/sig/revox/models/call_pause_params.rbs +20 -0
  157. data/sig/revox/models/call_pause_response.rbs +13 -0
  158. data/sig/revox/models/call_phone_history_params.rbs +15 -0
  159. data/sig/revox/models/call_phone_history_response.rbs +102 -0
  160. data/sig/revox/models/call_resume_params.rbs +20 -0
  161. data/sig/revox/models/call_resume_response.rbs +13 -0
  162. data/sig/revox/models/call_retrieve_response.rbs +1519 -34
  163. data/sig/revox/models/call_search_params.rbs +198 -0
  164. data/sig/revox/models/call_search_response.rbs +2654 -0
  165. data/sig/revox/models/campaign_create_params.rbs +54 -0
  166. data/sig/revox/models/campaign_create_response.rbs +1034 -6
  167. data/sig/revox/models/campaign_get_rows_params.rbs +2 -64
  168. data/sig/revox/models/campaign_get_rows_response.rbs +1527 -54
  169. data/sig/revox/models/campaign_launch_params.rbs +20 -0
  170. data/sig/revox/models/campaign_launch_response.rbs +1694 -0
  171. data/sig/revox/models/campaign_list_response.rbs +1034 -6
  172. data/sig/revox/models/campaign_pause_params.rbs +20 -0
  173. data/sig/revox/models/campaign_pause_response.rbs +13 -0
  174. data/sig/revox/models/campaign_resume_params.rbs +20 -0
  175. data/sig/revox/models/campaign_resume_response.rbs +13 -0
  176. data/sig/revox/models/campaign_retrieve_response.rbs +1034 -6
  177. data/sig/revox/models/campaign_statistics_params.rbs +20 -0
  178. data/sig/revox/models/campaign_statistics_response.rbs +458 -0
  179. data/sig/revox/models/campaign_update_params.rbs +203 -0
  180. data/sig/revox/models/campaign_update_response.rbs +1694 -0
  181. data/sig/revox/models/phone_number_delete_params.rbs +20 -0
  182. data/sig/revox/models/phone_number_delete_response.rbs +13 -0
  183. data/sig/revox/models/phone_number_list_params.rbs +15 -0
  184. data/sig/revox/models/phone_number_list_response.rbs +1462 -0
  185. data/sig/revox/models/phone_number_update_params.rbs +32 -0
  186. data/sig/revox/models/phone_number_update_response.rbs +1460 -0
  187. data/sig/revox/models/user_retrieve_params.rbs +14 -0
  188. data/sig/revox/models/user_retrieve_response.rbs +71 -0
  189. data/sig/revox/models/voice_clone_params.rbs +79 -0
  190. data/sig/revox/models/voice_clone_response.rbs +40 -0
  191. data/sig/revox/models/voice_delete_params.rbs +20 -0
  192. data/sig/revox/models/voice_delete_response.rbs +13 -0
  193. data/sig/revox/models/voice_list_response.rbs +45 -3
  194. data/sig/revox/models/voice_preview_params.rbs +42 -1
  195. data/sig/revox/models.rbs +36 -2
  196. data/sig/revox/resources/assistants.rbs +61 -2
  197. data/sig/revox/resources/auth_status.rbs +11 -0
  198. data/sig/revox/resources/call.rbs +41 -3
  199. data/sig/revox/resources/campaigns.rbs +35 -5
  200. data/sig/revox/resources/phone_numbers.rbs +23 -0
  201. data/sig/revox/resources/users.rbs +3 -1
  202. data/sig/revox/resources/voices.rbs +17 -0
  203. metadata +122 -23
  204. data/lib/revox/models/call_list_params.rb +0 -52
  205. data/lib/revox/models/call_list_response.rb +0 -259
  206. data/lib/revox/models/users/me_retrieve_params.rb +0 -16
  207. data/lib/revox/models/users/me_retrieve_response.rb +0 -89
  208. data/lib/revox/models/users/me_update_params.rb +0 -22
  209. data/lib/revox/models/users/me_update_response.rb +0 -89
  210. data/lib/revox/resources/users/me.rb +0 -55
  211. data/rbi/revox/models/call_list_params.rbi +0 -94
  212. data/rbi/revox/models/call_list_response.rbi +0 -563
  213. data/rbi/revox/models/users/me_retrieve_params.rbi +0 -29
  214. data/rbi/revox/models/users/me_retrieve_response.rbi +0 -139
  215. data/rbi/revox/models/users/me_update_params.rbi +0 -43
  216. data/rbi/revox/models/users/me_update_response.rbi +0 -139
  217. data/rbi/revox/resources/users/me.rbi +0 -33
  218. data/sig/revox/models/call_list_params.rbs +0 -63
  219. data/sig/revox/models/call_list_response.rbs +0 -226
  220. data/sig/revox/models/users/me_retrieve_params.rbs +0 -16
  221. data/sig/revox/models/users/me_retrieve_response.rbs +0 -70
  222. data/sig/revox/models/users/me_update_params.rbs +0 -28
  223. data/sig/revox/models/users/me_update_response.rbs +0 -70
  224. data/sig/revox/resources/users/me.rbs +0 -18
@@ -1,34 +1,17 @@
1
1
  module Revox
2
2
  module Models
3
3
  type campaign_get_rows_response =
4
- {
5
- page: Float,
6
- page_size: Float,
7
- rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row],
8
- total: Float
9
- }
4
+ { rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row] }
10
5
 
11
6
  class CampaignGetRowsResponse < Revox::Internal::Type::BaseModel
12
- attr_accessor page: Float
13
-
14
- attr_accessor page_size: Float
15
-
16
7
  attr_accessor rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row]
17
8
 
18
- attr_accessor total: Float
19
-
20
9
  def initialize: (
21
- page: Float,
22
- page_size: Float,
23
- rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row],
24
- total: Float
10
+ rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row]
25
11
  ) -> void
26
12
 
27
13
  def to_hash: -> {
28
- page: Float,
29
- page_size: Float,
30
- rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row],
31
- total: Float
14
+ rows: ::Array[Revox::Models::CampaignGetRowsResponse::Row]
32
15
  }
33
16
 
34
17
  type row =
@@ -74,11 +57,13 @@ module Revox
74
57
  type call =
75
58
  {
76
59
  id: String,
60
+ assignee: Revox::Models::CampaignGetRowsResponse::Row::Call::Assignee?,
77
61
  assistant: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant?,
78
62
  call_attempts: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt],
79
63
  call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig?,
80
64
  calls_count: Float,
81
65
  campaign: Revox::Models::CampaignGetRowsResponse::Row::Call::Campaign?,
66
+ contact: Revox::Models::CampaignGetRowsResponse::Row::Call::Contact,
82
67
  created_at: top,
83
68
  direction: Revox::Models::CampaignGetRowsResponse::Row::Call::direction,
84
69
  first_sentence_delay_ms: Integer,
@@ -89,14 +74,21 @@ module Revox
89
74
  llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::llm_model,
90
75
  metadata: ::Hash[Symbol, String]?,
91
76
  organization_id: String,
77
+ prompt_variables: ::Hash[Symbol, String]?,
92
78
  scheduled_at: top,
93
79
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::status,
94
- to_phone_number: String
80
+ to_phone_number: String,
81
+ updated_at: top,
82
+ follow_up_emails: ::Array[String]?,
83
+ outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?,
84
+ outcome_summary: String?
95
85
  }
96
86
 
97
87
  class Call < Revox::Internal::Type::BaseModel
98
88
  attr_accessor id: String
99
89
 
90
+ attr_accessor assignee: Revox::Models::CampaignGetRowsResponse::Row::Call::Assignee?
91
+
100
92
  attr_accessor assistant: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant?
101
93
 
102
94
  attr_accessor call_attempts: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt]
@@ -107,6 +99,8 @@ module Revox
107
99
 
108
100
  attr_accessor campaign: Revox::Models::CampaignGetRowsResponse::Row::Call::Campaign?
109
101
 
102
+ attr_accessor contact: Revox::Models::CampaignGetRowsResponse::Row::Call::Contact
103
+
110
104
  attr_accessor created_at: top
111
105
 
112
106
  attr_accessor direction: Revox::Models::CampaignGetRowsResponse::Row::Call::direction
@@ -127,19 +121,31 @@ module Revox
127
121
 
128
122
  attr_accessor organization_id: String
129
123
 
124
+ attr_accessor prompt_variables: ::Hash[Symbol, String]?
125
+
130
126
  attr_accessor scheduled_at: top
131
127
 
132
128
  attr_accessor status: Revox::Models::CampaignGetRowsResponse::Row::Call::status
133
129
 
134
130
  attr_accessor to_phone_number: String
135
131
 
132
+ attr_accessor updated_at: top
133
+
134
+ attr_accessor follow_up_emails: ::Array[String]?
135
+
136
+ attr_accessor outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?
137
+
138
+ attr_accessor outcome_summary: String?
139
+
136
140
  def initialize: (
137
141
  id: String,
142
+ assignee: Revox::Models::CampaignGetRowsResponse::Row::Call::Assignee?,
138
143
  assistant: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant?,
139
144
  call_attempts: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt],
140
145
  call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig?,
141
146
  calls_count: Float,
142
147
  campaign: Revox::Models::CampaignGetRowsResponse::Row::Call::Campaign?,
148
+ contact: Revox::Models::CampaignGetRowsResponse::Row::Call::Contact,
143
149
  created_at: top,
144
150
  direction: Revox::Models::CampaignGetRowsResponse::Row::Call::direction,
145
151
  first_sentence_delay_ms: Integer,
@@ -150,18 +156,25 @@ module Revox
150
156
  llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::llm_model,
151
157
  metadata: ::Hash[Symbol, String]?,
152
158
  organization_id: String,
159
+ prompt_variables: ::Hash[Symbol, String]?,
153
160
  scheduled_at: top,
154
161
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::status,
155
- to_phone_number: String
162
+ to_phone_number: String,
163
+ updated_at: top,
164
+ ?follow_up_emails: ::Array[String]?,
165
+ ?outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?,
166
+ ?outcome_summary: String?
156
167
  ) -> void
157
168
 
158
169
  def to_hash: -> {
159
170
  id: String,
171
+ assignee: Revox::Models::CampaignGetRowsResponse::Row::Call::Assignee?,
160
172
  assistant: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant?,
161
173
  call_attempts: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt],
162
174
  call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig?,
163
175
  calls_count: Float,
164
176
  campaign: Revox::Models::CampaignGetRowsResponse::Row::Call::Campaign?,
177
+ contact: Revox::Models::CampaignGetRowsResponse::Row::Call::Contact,
165
178
  created_at: top,
166
179
  direction: Revox::Models::CampaignGetRowsResponse::Row::Call::direction,
167
180
  first_sentence_delay_ms: Integer,
@@ -172,49 +185,131 @@ module Revox
172
185
  llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::llm_model,
173
186
  metadata: ::Hash[Symbol, String]?,
174
187
  organization_id: String,
188
+ prompt_variables: ::Hash[Symbol, String]?,
175
189
  scheduled_at: top,
176
190
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::status,
177
- to_phone_number: String
191
+ to_phone_number: String,
192
+ updated_at: top,
193
+ follow_up_emails: ::Array[String]?,
194
+ outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?,
195
+ outcome_summary: String?
178
196
  }
179
197
 
198
+ type assignee =
199
+ {
200
+ id: String,
201
+ email: String,
202
+ first_name: String?,
203
+ last_name: String?
204
+ }
205
+
206
+ class Assignee < Revox::Internal::Type::BaseModel
207
+ attr_accessor id: String
208
+
209
+ attr_accessor email: String
210
+
211
+ attr_accessor first_name: String?
212
+
213
+ attr_accessor last_name: String?
214
+
215
+ def initialize: (
216
+ id: String,
217
+ email: String,
218
+ first_name: String?,
219
+ last_name: String?
220
+ ) -> void
221
+
222
+ def to_hash: -> {
223
+ id: String,
224
+ email: String,
225
+ first_name: String?,
226
+ last_name: String?
227
+ }
228
+ end
229
+
180
230
  type assistant =
181
231
  {
182
232
  id: String,
233
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::after_call_sms_outcome]?,
234
+ after_call_sms_prompt: String?,
183
235
  background_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::background_sound?,
236
+ background_sound_volume: Float,
184
237
  calendly: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Calendly?,
185
238
  call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig?,
239
+ cartesia_dictionary_pronunciation_id: String?,
186
240
  created_at: top,
241
+ custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?,
242
+ email_notification_address: String?,
243
+ email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language,
244
+ email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?,
187
245
  end_of_call_sentence: String?,
188
246
  first_sentence: String?,
189
247
  first_sentence_delay_ms: Integer,
190
248
  first_sentence_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::first_sentence_mode,
249
+ from_phone_number: String?,
250
+ human_transfer_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::human_transfer_mode?,
191
251
  ivr_navigation_enabled: bool,
192
252
  llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::llm_model,
253
+ logo_url: String?,
193
254
  max_call_duration_secs: Float,
255
+ max_duration_end_message: String?,
194
256
  name: String,
195
257
  organization_id: String,
258
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?,
196
259
  prompt: String,
260
+ prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?,
261
+ slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?,
262
+ sms_enabled: bool,
263
+ sms_template: String?,
197
264
  structured_output_config: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::StructuredOutputConfig]?,
265
+ structured_output_prompt: String?,
266
+ stt_context: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext?,
267
+ stt_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::stt_model,
268
+ thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?,
269
+ thinking_sound_probability: Float,
270
+ thinking_sound_volume: Float,
198
271
  transfer_phone_number: String?,
272
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_,
199
273
  updated_at: top,
200
274
  voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?,
201
275
  voicemail_message: String?,
276
+ voicemail_sms_prompt: String?,
277
+ warm_transfer_summary_instructions: String?,
202
278
  webhook_url: String?,
279
+ zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?,
280
+ created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?,
203
281
  faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem],
282
+ is_realestate_assistant: bool,
204
283
  pending_faq_count: Float
205
284
  }
206
285
 
207
286
  class Assistant < Revox::Internal::Type::BaseModel
208
287
  attr_accessor id: String
209
288
 
289
+ attr_accessor after_call_sms_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::after_call_sms_outcome]?
290
+
291
+ attr_accessor after_call_sms_prompt: String?
292
+
210
293
  attr_accessor background_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::background_sound?
211
294
 
295
+ attr_accessor background_sound_volume: Float
296
+
212
297
  attr_accessor calendly: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Calendly?
213
298
 
214
299
  attr_accessor call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig?
215
300
 
301
+ attr_accessor cartesia_dictionary_pronunciation_id: String?
302
+
216
303
  attr_accessor created_at: top
217
304
 
305
+ attr_accessor custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?
306
+
307
+ attr_accessor email_notification_address: String?
308
+
309
+ attr_accessor email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language
310
+
311
+ attr_accessor email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?
312
+
218
313
  attr_accessor end_of_call_sentence: String?
219
314
 
220
315
  attr_accessor first_sentence: String?
@@ -223,92 +318,219 @@ module Revox
223
318
 
224
319
  attr_accessor first_sentence_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::first_sentence_mode
225
320
 
321
+ attr_accessor from_phone_number: String?
322
+
323
+ attr_accessor human_transfer_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::human_transfer_mode?
324
+
226
325
  attr_accessor ivr_navigation_enabled: bool
227
326
 
228
327
  attr_accessor llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::llm_model
229
328
 
329
+ attr_accessor logo_url: String?
330
+
230
331
  attr_accessor max_call_duration_secs: Float
231
332
 
333
+ attr_accessor max_duration_end_message: String?
334
+
232
335
  attr_accessor name: String
233
336
 
234
337
  attr_accessor organization_id: String
235
338
 
339
+ attr_accessor position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?
340
+
236
341
  attr_accessor prompt: String
237
342
 
343
+ attr_accessor prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?
344
+
345
+ attr_accessor slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?
346
+
347
+ attr_accessor sms_enabled: bool
348
+
349
+ attr_accessor sms_template: String?
350
+
238
351
  attr_accessor structured_output_config: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::StructuredOutputConfig]?
239
352
 
353
+ attr_accessor structured_output_prompt: String?
354
+
355
+ attr_accessor stt_context: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext?
356
+
357
+ attr_accessor stt_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::stt_model
358
+
359
+ attr_accessor thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?
360
+
361
+ attr_accessor thinking_sound_probability: Float
362
+
363
+ attr_accessor thinking_sound_volume: Float
364
+
240
365
  attr_accessor transfer_phone_number: String?
241
366
 
367
+ attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_
368
+
242
369
  attr_accessor updated_at: top
243
370
 
244
371
  attr_accessor voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?
245
372
 
246
373
  attr_accessor voicemail_message: String?
247
374
 
375
+ attr_accessor voicemail_sms_prompt: String?
376
+
377
+ attr_accessor warm_transfer_summary_instructions: String?
378
+
248
379
  attr_accessor webhook_url: String?
249
380
 
381
+ attr_accessor zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?
382
+
383
+ attr_accessor created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?
384
+
250
385
  attr_reader faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem]?
251
386
 
252
387
  def faq_items=: (
253
388
  ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem]
254
389
  ) -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem]
255
390
 
391
+ attr_reader is_realestate_assistant: bool?
392
+
393
+ def is_realestate_assistant=: (bool) -> bool
394
+
256
395
  attr_reader pending_faq_count: Float?
257
396
 
258
397
  def pending_faq_count=: (Float) -> Float
259
398
 
260
399
  def initialize: (
261
400
  id: String,
401
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::after_call_sms_outcome]?,
402
+ after_call_sms_prompt: String?,
262
403
  background_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::background_sound?,
404
+ background_sound_volume: Float,
263
405
  calendly: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Calendly?,
264
406
  call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig?,
407
+ cartesia_dictionary_pronunciation_id: String?,
265
408
  created_at: top,
409
+ custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?,
410
+ email_notification_address: String?,
411
+ email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language,
412
+ email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?,
266
413
  end_of_call_sentence: String?,
267
414
  first_sentence: String?,
268
415
  first_sentence_delay_ms: Integer,
269
416
  first_sentence_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::first_sentence_mode,
417
+ from_phone_number: String?,
418
+ human_transfer_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::human_transfer_mode?,
270
419
  ivr_navigation_enabled: bool,
271
420
  llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::llm_model,
421
+ logo_url: String?,
272
422
  max_call_duration_secs: Float,
423
+ max_duration_end_message: String?,
273
424
  name: String,
274
425
  organization_id: String,
426
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?,
275
427
  prompt: String,
428
+ prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?,
429
+ slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?,
430
+ sms_enabled: bool,
431
+ sms_template: String?,
276
432
  structured_output_config: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::StructuredOutputConfig]?,
433
+ structured_output_prompt: String?,
434
+ stt_context: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext?,
435
+ stt_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::stt_model,
436
+ thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?,
437
+ thinking_sound_probability: Float,
438
+ thinking_sound_volume: Float,
277
439
  transfer_phone_number: String?,
440
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_,
278
441
  updated_at: top,
279
442
  voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?,
280
443
  voicemail_message: String?,
444
+ voicemail_sms_prompt: String?,
445
+ warm_transfer_summary_instructions: String?,
281
446
  webhook_url: String?,
447
+ zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?,
448
+ ?created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?,
282
449
  ?faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem],
450
+ ?is_realestate_assistant: bool,
283
451
  ?pending_faq_count: Float
284
452
  ) -> void
285
453
 
286
454
  def to_hash: -> {
287
455
  id: String,
456
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::after_call_sms_outcome]?,
457
+ after_call_sms_prompt: String?,
288
458
  background_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::background_sound?,
459
+ background_sound_volume: Float,
289
460
  calendly: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Calendly?,
290
461
  call_retry_config: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig?,
462
+ cartesia_dictionary_pronunciation_id: String?,
291
463
  created_at: top,
464
+ custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?,
465
+ email_notification_address: String?,
466
+ email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language,
467
+ email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?,
292
468
  end_of_call_sentence: String?,
293
469
  first_sentence: String?,
294
470
  first_sentence_delay_ms: Integer,
295
471
  first_sentence_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::first_sentence_mode,
472
+ from_phone_number: String?,
473
+ human_transfer_mode: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::human_transfer_mode?,
296
474
  ivr_navigation_enabled: bool,
297
475
  llm_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::llm_model,
476
+ logo_url: String?,
298
477
  max_call_duration_secs: Float,
478
+ max_duration_end_message: String?,
299
479
  name: String,
300
480
  organization_id: String,
481
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?,
301
482
  prompt: String,
483
+ prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?,
484
+ slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?,
485
+ sms_enabled: bool,
486
+ sms_template: String?,
302
487
  structured_output_config: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::StructuredOutputConfig]?,
488
+ structured_output_prompt: String?,
489
+ stt_context: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext?,
490
+ stt_model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::stt_model,
491
+ thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?,
492
+ thinking_sound_probability: Float,
493
+ thinking_sound_volume: Float,
303
494
  transfer_phone_number: String?,
495
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_,
304
496
  updated_at: top,
305
497
  voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?,
306
498
  voicemail_message: String?,
499
+ voicemail_sms_prompt: String?,
500
+ warm_transfer_summary_instructions: String?,
307
501
  webhook_url: String?,
502
+ zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?,
503
+ created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?,
308
504
  faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem],
505
+ is_realestate_assistant: bool,
309
506
  pending_faq_count: Float
310
507
  }
311
508
 
509
+ type after_call_sms_outcome =
510
+ :not_interested
511
+ | :interested
512
+ | :completed
513
+ | :requested_callback_later
514
+ | :requested_callback_new_number
515
+ | :do_not_contact
516
+ | :ai_averse
517
+ | :none
518
+
519
+ module AfterCallSMSOutcome
520
+ extend Revox::Internal::Type::Enum
521
+
522
+ NOT_INTERESTED: :not_interested
523
+ INTERESTED: :interested
524
+ COMPLETED: :completed
525
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
526
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
527
+ DO_NOT_CONTACT: :do_not_contact
528
+ AI_AVERSE: :ai_averse
529
+ NONE: :none
530
+
531
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::after_call_sms_outcome]
532
+ end
533
+
312
534
  type background_sound = :"audio/office.ogg"
313
535
 
314
536
  module BackgroundSound
@@ -336,12 +558,18 @@ module Revox
336
558
 
337
559
  type call_retry_config =
338
560
  {
561
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::allowed_day],
562
+ call_twice_in_a_row: bool,
339
563
  calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::CallingWindow],
340
564
  max_retry_attempts: Integer,
341
565
  timezone: String?
342
566
  }
343
567
 
344
568
  class CallRetryConfig < Revox::Internal::Type::BaseModel
569
+ attr_accessor allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::allowed_day]
570
+
571
+ attr_accessor call_twice_in_a_row: bool
572
+
345
573
  attr_accessor calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::CallingWindow]
346
574
 
347
575
  attr_accessor max_retry_attempts: Integer
@@ -349,17 +577,44 @@ module Revox
349
577
  attr_accessor timezone: String?
350
578
 
351
579
  def initialize: (
580
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::allowed_day],
581
+ call_twice_in_a_row: bool,
352
582
  calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::CallingWindow],
353
583
  max_retry_attempts: Integer,
354
584
  ?timezone: String?
355
585
  ) -> void
356
586
 
357
587
  def to_hash: -> {
588
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::allowed_day],
589
+ call_twice_in_a_row: bool,
358
590
  calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::CallingWindow],
359
591
  max_retry_attempts: Integer,
360
592
  timezone: String?
361
593
  }
362
594
 
595
+ type allowed_day =
596
+ :monday
597
+ | :tuesday
598
+ | :wednesday
599
+ | :thursday
600
+ | :friday
601
+ | :saturday
602
+ | :sunday
603
+
604
+ module AllowedDay
605
+ extend Revox::Internal::Type::Enum
606
+
607
+ MONDAY: :monday
608
+ TUESDAY: :tuesday
609
+ WEDNESDAY: :wednesday
610
+ THURSDAY: :thursday
611
+ FRIDAY: :friday
612
+ SATURDAY: :saturday
613
+ SUNDAY: :sunday
614
+
615
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CallRetryConfig::allowed_day]
616
+ end
617
+
363
618
  type calling_window =
364
619
  {
365
620
  calling_window_end_time: String,
@@ -388,6 +643,189 @@ module Revox
388
643
  end
389
644
  end
390
645
 
646
+ type custom_tool =
647
+ {
648
+ body_template: String?,
649
+ description: String,
650
+ headers: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::Header],
651
+ input_schema: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema],
652
+ method_: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::method_,
653
+ name: String,
654
+ query_params: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::QueryParam],
655
+ url: String
656
+ }
657
+
658
+ class CustomTool < Revox::Internal::Type::BaseModel
659
+ attr_accessor body_template: String?
660
+
661
+ attr_accessor description: String
662
+
663
+ attr_accessor headers: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::Header]
664
+
665
+ attr_accessor input_schema: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema]
666
+
667
+ attr_accessor method_: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::method_
668
+
669
+ attr_accessor name: String
670
+
671
+ attr_accessor query_params: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::QueryParam]
672
+
673
+ attr_accessor url: String
674
+
675
+ def initialize: (
676
+ body_template: String?,
677
+ description: String,
678
+ headers: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::Header],
679
+ input_schema: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema],
680
+ method_: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::method_,
681
+ name: String,
682
+ query_params: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::QueryParam],
683
+ url: String
684
+ ) -> void
685
+
686
+ def to_hash: -> {
687
+ body_template: String?,
688
+ description: String,
689
+ headers: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::Header],
690
+ input_schema: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema],
691
+ method_: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::method_,
692
+ name: String,
693
+ query_params: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::QueryParam],
694
+ url: String
695
+ }
696
+
697
+ type header = { key: String, value: String }
698
+
699
+ class Header < Revox::Internal::Type::BaseModel
700
+ attr_accessor key: String
701
+
702
+ attr_accessor value: String
703
+
704
+ def initialize: (key: String, value: String) -> void
705
+
706
+ def to_hash: -> { key: String, value: String }
707
+ end
708
+
709
+ type input_schema =
710
+ {
711
+ name: String,
712
+ required: bool,
713
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema::type_,
714
+ description: String,
715
+ enum_options: ::Array[String]
716
+ }
717
+
718
+ class InputSchema < Revox::Internal::Type::BaseModel
719
+ attr_accessor name: String
720
+
721
+ attr_accessor required: bool
722
+
723
+ attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema::type_
724
+
725
+ attr_reader description: String?
726
+
727
+ def description=: (String) -> String
728
+
729
+ attr_reader enum_options: ::Array[String]?
730
+
731
+ def enum_options=: (::Array[String]) -> ::Array[String]
732
+
733
+ def initialize: (
734
+ name: String,
735
+ required: bool,
736
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema::type_,
737
+ ?description: String,
738
+ ?enum_options: ::Array[String]
739
+ ) -> void
740
+
741
+ def to_hash: -> {
742
+ name: String,
743
+ required: bool,
744
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema::type_,
745
+ description: String,
746
+ enum_options: ::Array[String]
747
+ }
748
+
749
+ type type_ =
750
+ :string | :number | :boolean | :enum | :date | :datetime
751
+
752
+ module Type
753
+ extend Revox::Internal::Type::Enum
754
+
755
+ STRING: :string
756
+ NUMBER: :number
757
+ BOOLEAN: :boolean
758
+ ENUM: :enum
759
+ DATE: :date
760
+ DATETIME: :datetime
761
+
762
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::InputSchema::type_]
763
+ end
764
+ end
765
+
766
+ type method_ = :GET | :POST | :PUT | :PATCH | :DELETE
767
+
768
+ module Method
769
+ extend Revox::Internal::Type::Enum
770
+
771
+ GET: :GET
772
+ POST: :POST
773
+ PUT: :PUT
774
+ PATCH: :PATCH
775
+ DELETE: :DELETE
776
+
777
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool::method_]
778
+ end
779
+
780
+ type query_param = { key: String, value: String }
781
+
782
+ class QueryParam < Revox::Internal::Type::BaseModel
783
+ attr_accessor key: String
784
+
785
+ attr_accessor value: String
786
+
787
+ def initialize: (key: String, value: String) -> void
788
+
789
+ def to_hash: -> { key: String, value: String }
790
+ end
791
+ end
792
+
793
+ type email_notification_language = :en | :fr
794
+
795
+ module EmailNotificationLanguage
796
+ extend Revox::Internal::Type::Enum
797
+
798
+ EN: :en
799
+ FR: :fr
800
+
801
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language]
802
+ end
803
+
804
+ type email_notification_outcome =
805
+ :not_interested
806
+ | :interested
807
+ | :completed
808
+ | :requested_callback_later
809
+ | :requested_callback_new_number
810
+ | :do_not_contact
811
+ | :ai_averse
812
+ | :none
813
+
814
+ module EmailNotificationOutcome
815
+ extend Revox::Internal::Type::Enum
816
+
817
+ NOT_INTERESTED: :not_interested
818
+ INTERESTED: :interested
819
+ COMPLETED: :completed
820
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
821
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
822
+ DO_NOT_CONTACT: :do_not_contact
823
+ AI_AVERSE: :ai_averse
824
+ NONE: :none
825
+
826
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]
827
+ end
828
+
391
829
  type first_sentence_mode = :generated | :static | :none
392
830
 
393
831
  module FirstSentenceMode
@@ -400,9 +838,22 @@ module Revox
400
838
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::first_sentence_mode]
401
839
  end
402
840
 
841
+ type human_transfer_mode = :warm | :cold
842
+
843
+ module HumanTransferMode
844
+ extend Revox::Internal::Type::Enum
845
+
846
+ WARM: :warm
847
+ COLD: :cold
848
+
849
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::human_transfer_mode]
850
+ end
851
+
403
852
  type llm_model =
404
853
  Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember0
405
854
  | Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember1
855
+ | Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember2
856
+ | Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3
406
857
 
407
858
  module LlmModel
408
859
  extend Revox::Internal::Type::Union
@@ -467,9 +918,256 @@ module Revox
467
918
  }
468
919
  end
469
920
 
921
+ type union_member2 =
922
+ {
923
+ api_key: String,
924
+ api_url: String,
925
+ model_name: String,
926
+ type: :custom
927
+ }
928
+
929
+ class UnionMember2 < Revox::Internal::Type::BaseModel
930
+ attr_accessor api_key: String
931
+
932
+ attr_accessor api_url: String
933
+
934
+ attr_accessor model_name: String
935
+
936
+ attr_accessor type: :custom
937
+
938
+ def initialize: (
939
+ api_key: String,
940
+ api_url: String,
941
+ model_name: String,
942
+ ?type: :custom
943
+ ) -> void
944
+
945
+ def to_hash: -> {
946
+ api_key: String,
947
+ api_url: String,
948
+ model_name: String,
949
+ type: :custom
950
+ }
951
+ end
952
+
953
+ type union_member3 =
954
+ {
955
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3::provider,
956
+ realtime_model_id: String,
957
+ type: :realtime,
958
+ realtime_voice_id: String
959
+ }
960
+
961
+ class UnionMember3 < Revox::Internal::Type::BaseModel
962
+ attr_accessor provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3::provider
963
+
964
+ attr_accessor realtime_model_id: String
965
+
966
+ attr_accessor type: :realtime
967
+
968
+ attr_reader realtime_voice_id: String?
969
+
970
+ def realtime_voice_id=: (String) -> String
971
+
972
+ def initialize: (
973
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3::provider,
974
+ realtime_model_id: String,
975
+ ?realtime_voice_id: String,
976
+ ?type: :realtime
977
+ ) -> void
978
+
979
+ def to_hash: -> {
980
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3::provider,
981
+ realtime_model_id: String,
982
+ type: :realtime,
983
+ realtime_voice_id: String
984
+ }
985
+
986
+ type provider = :openai | :google
987
+
988
+ module Provider
989
+ extend Revox::Internal::Type::Enum
990
+
991
+ OPENAI: :openai
992
+ GOOGLE: :google
993
+
994
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::LlmModel::UnionMember3::provider]
995
+ end
996
+ end
997
+
470
998
  def self?.variants: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::llm_model]
471
999
  end
472
1000
 
1001
+ type position = { x: Float, y_: Float }
1002
+
1003
+ class Position < Revox::Internal::Type::BaseModel
1004
+ attr_accessor x: Float
1005
+
1006
+ attr_accessor y_: Float
1007
+
1008
+ def initialize: (x: Float, y_: Float) -> void
1009
+
1010
+ def to_hash: -> { x: Float, y_: Float }
1011
+ end
1012
+
1013
+ type prompt_flow =
1014
+ {
1015
+ edges: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Edge],
1016
+ nodes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node]
1017
+ }
1018
+
1019
+ class PromptFlow < Revox::Internal::Type::BaseModel
1020
+ attr_accessor edges: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Edge]
1021
+
1022
+ attr_accessor nodes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node]
1023
+
1024
+ def initialize: (
1025
+ edges: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Edge],
1026
+ nodes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node]
1027
+ ) -> void
1028
+
1029
+ def to_hash: -> {
1030
+ edges: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Edge],
1031
+ nodes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node]
1032
+ }
1033
+
1034
+ type edge = { id: String, source: String, target: String }
1035
+
1036
+ class Edge < Revox::Internal::Type::BaseModel
1037
+ attr_accessor id: String
1038
+
1039
+ attr_accessor source: String
1040
+
1041
+ attr_accessor target: String
1042
+
1043
+ def initialize: (
1044
+ id: String,
1045
+ source: String,
1046
+ target: String
1047
+ ) -> void
1048
+
1049
+ def to_hash: -> { id: String, source: String, target: String }
1050
+ end
1051
+
1052
+ type node =
1053
+ {
1054
+ id: String,
1055
+ data: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Data,
1056
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Position,
1057
+ type: :promptBlock
1058
+ }
1059
+
1060
+ class Node < Revox::Internal::Type::BaseModel
1061
+ attr_accessor id: String
1062
+
1063
+ attr_accessor data: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Data
1064
+
1065
+ attr_accessor position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Position
1066
+
1067
+ attr_accessor type: :promptBlock
1068
+
1069
+ def initialize: (
1070
+ id: String,
1071
+ data: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Data,
1072
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Position,
1073
+ ?type: :promptBlock
1074
+ ) -> void
1075
+
1076
+ def to_hash: -> {
1077
+ id: String,
1078
+ data: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Data,
1079
+ position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow::Node::Position,
1080
+ type: :promptBlock
1081
+ }
1082
+
1083
+ type data = { body: String, title: String }
1084
+
1085
+ class Data < Revox::Internal::Type::BaseModel
1086
+ attr_accessor body: String
1087
+
1088
+ attr_accessor title: String
1089
+
1090
+ def initialize: (body: String, title: String) -> void
1091
+
1092
+ def to_hash: -> { body: String, title: String }
1093
+ end
1094
+
1095
+ type position = { x: Float, y_: Float }
1096
+
1097
+ class Position < Revox::Internal::Type::BaseModel
1098
+ attr_accessor x: Float
1099
+
1100
+ attr_accessor y_: Float
1101
+
1102
+ def initialize: (x: Float, y_: Float) -> void
1103
+
1104
+ def to_hash: -> { x: Float, y_: Float }
1105
+ end
1106
+ end
1107
+ end
1108
+
1109
+ type slack =
1110
+ {
1111
+ channel_id: String,
1112
+ connection_id: String,
1113
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome],
1114
+ channel_name: String?,
1115
+ template: String?
1116
+ }
1117
+
1118
+ class Slack < Revox::Internal::Type::BaseModel
1119
+ attr_accessor channel_id: String
1120
+
1121
+ attr_accessor connection_id: String
1122
+
1123
+ attr_accessor outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome]
1124
+
1125
+ attr_accessor channel_name: String?
1126
+
1127
+ attr_accessor template: String?
1128
+
1129
+ def initialize: (
1130
+ channel_id: String,
1131
+ connection_id: String,
1132
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome],
1133
+ ?channel_name: String?,
1134
+ ?template: String?
1135
+ ) -> void
1136
+
1137
+ def to_hash: -> {
1138
+ channel_id: String,
1139
+ connection_id: String,
1140
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome],
1141
+ channel_name: String?,
1142
+ template: String?
1143
+ }
1144
+
1145
+ type outcome =
1146
+ :not_interested
1147
+ | :interested
1148
+ | :completed
1149
+ | :requested_callback_later
1150
+ | :requested_callback_new_number
1151
+ | :do_not_contact
1152
+ | :ai_averse
1153
+ | :none
1154
+
1155
+ module Outcome
1156
+ extend Revox::Internal::Type::Enum
1157
+
1158
+ NOT_INTERESTED: :not_interested
1159
+ INTERESTED: :interested
1160
+ COMPLETED: :completed
1161
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
1162
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1163
+ DO_NOT_CONTACT: :do_not_contact
1164
+ AI_AVERSE: :ai_averse
1165
+ NONE: :none
1166
+
1167
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome]
1168
+ end
1169
+ end
1170
+
473
1171
  type structured_output_config =
474
1172
  {
475
1173
  name: String,
@@ -527,11 +1225,93 @@ module Revox
527
1225
  end
528
1226
  end
529
1227
 
1228
+ type stt_context =
1229
+ {
1230
+ general: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext::General],
1231
+ terms: ::Array[String]
1232
+ }
1233
+
1234
+ class SttContext < Revox::Internal::Type::BaseModel
1235
+ attr_accessor general: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext::General]
1236
+
1237
+ attr_accessor terms: ::Array[String]
1238
+
1239
+ def initialize: (
1240
+ general: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext::General],
1241
+ terms: ::Array[String]
1242
+ ) -> void
1243
+
1244
+ def to_hash: -> {
1245
+ general: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::SttContext::General],
1246
+ terms: ::Array[String]
1247
+ }
1248
+
1249
+ type general = { key: String, value: String }
1250
+
1251
+ class General < Revox::Internal::Type::BaseModel
1252
+ attr_accessor key: String
1253
+
1254
+ attr_accessor value: String
1255
+
1256
+ def initialize: (key: String, value: String) -> void
1257
+
1258
+ def to_hash: -> { key: String, value: String }
1259
+ end
1260
+ end
1261
+
1262
+ type stt_model = :"stt-rt-v4" | :"stt-rt-v5"
1263
+
1264
+ module SttModel
1265
+ extend Revox::Internal::Type::Enum
1266
+
1267
+ STT_RT_V4: :"stt-rt-v4"
1268
+ STT_RT_V5: :"stt-rt-v5"
1269
+
1270
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::stt_model]
1271
+ end
1272
+
1273
+ type thinking_sound =
1274
+ :"city-ambience.ogg"
1275
+ | :"forest-ambience.ogg"
1276
+ | :"office-ambience.ogg"
1277
+ | :"crowded-room.ogg"
1278
+ | :"keyboard-typing.ogg"
1279
+ | :"keyboard-typing2.ogg"
1280
+ | :"hold_music.ogg"
1281
+
1282
+ module ThinkingSound
1283
+ extend Revox::Internal::Type::Enum
1284
+
1285
+ CITY_AMBIENCE_OGG: :"city-ambience.ogg"
1286
+ FOREST_AMBIENCE_OGG: :"forest-ambience.ogg"
1287
+ OFFICE_AMBIENCE_OGG: :"office-ambience.ogg"
1288
+ CROWDED_ROOM_OGG: :"crowded-room.ogg"
1289
+ KEYBOARD_TYPING_OGG: :"keyboard-typing.ogg"
1290
+ KEYBOARD_TYPING2_OGG: :"keyboard-typing2.ogg"
1291
+ HOLD_MUSIC_OGG: :"hold_music.ogg"
1292
+
1293
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound]
1294
+ end
1295
+
1296
+ type type_ = :standalone | :"multi-step" | :"sub-assistant"
1297
+
1298
+ module Type
1299
+ extend Revox::Internal::Type::Enum
1300
+
1301
+ STANDALONE: :standalone
1302
+ MULTI_STEP: :"multi-step"
1303
+ SUB_ASSISTANT: :"sub-assistant"
1304
+
1305
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_]
1306
+ end
1307
+
530
1308
  type voice =
531
1309
  {
532
1310
  id: String,
533
1311
  provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider,
534
- speed: Float
1312
+ model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model,
1313
+ speed: Float,
1314
+ volume: Float
535
1315
  }
536
1316
 
537
1317
  class Voice < Revox::Internal::Type::BaseModel
@@ -539,32 +1319,168 @@ module Revox
539
1319
 
540
1320
  attr_accessor provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider
541
1321
 
1322
+ attr_reader model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model?
1323
+
1324
+ def model=: (
1325
+ Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model
1326
+ ) -> Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model
1327
+
542
1328
  attr_reader speed: Float?
543
1329
 
544
1330
  def speed=: (Float) -> Float
545
1331
 
1332
+ attr_reader volume: Float?
1333
+
1334
+ def volume=: (Float) -> Float
1335
+
546
1336
  def initialize: (
547
1337
  id: String,
548
1338
  provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider,
549
- ?speed: Float
1339
+ ?model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model,
1340
+ ?speed: Float,
1341
+ ?volume: Float
1342
+ ) -> void
1343
+
1344
+ def to_hash: -> {
1345
+ id: String,
1346
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider,
1347
+ model: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model,
1348
+ speed: Float,
1349
+ volume: Float
1350
+ }
1351
+
1352
+ type provider = :cartesia | :elevenlabs
1353
+
1354
+ module Provider
1355
+ extend Revox::Internal::Type::Enum
1356
+
1357
+ CARTESIA: :cartesia
1358
+ ELEVENLABS: :elevenlabs
1359
+
1360
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider]
1361
+ end
1362
+
1363
+ type model = :"sonic-3" | :"sonic-3.5"
1364
+
1365
+ module Model
1366
+ extend Revox::Internal::Type::Enum
1367
+
1368
+ SONIC_3: :"sonic-3"
1369
+ SONIC_3_5: :"sonic-3.5"
1370
+
1371
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::model]
1372
+ end
1373
+ end
1374
+
1375
+ type zoho =
1376
+ {
1377
+ connection_id: String,
1378
+ field_mapping: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::FieldMapping],
1379
+ log_call_activity: bool,
1380
+ module_: String,
1381
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::outcome],
1382
+ template: String?
1383
+ }
1384
+
1385
+ class Zoho < Revox::Internal::Type::BaseModel
1386
+ attr_accessor connection_id: String
1387
+
1388
+ attr_accessor field_mapping: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::FieldMapping]
1389
+
1390
+ attr_accessor log_call_activity: bool
1391
+
1392
+ attr_accessor module_: String
1393
+
1394
+ attr_accessor outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::outcome]
1395
+
1396
+ attr_accessor template: String?
1397
+
1398
+ def initialize: (
1399
+ connection_id: String,
1400
+ field_mapping: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::FieldMapping],
1401
+ log_call_activity: bool,
1402
+ module_: String,
1403
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::outcome],
1404
+ ?template: String?
1405
+ ) -> void
1406
+
1407
+ def to_hash: -> {
1408
+ connection_id: String,
1409
+ field_mapping: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::FieldMapping],
1410
+ log_call_activity: bool,
1411
+ module_: String,
1412
+ outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::outcome],
1413
+ template: String?
1414
+ }
1415
+
1416
+ type field_mapping = { source: String, zoho_field: String }
1417
+
1418
+ class FieldMapping < Revox::Internal::Type::BaseModel
1419
+ attr_accessor source: String
1420
+
1421
+ attr_accessor zoho_field: String
1422
+
1423
+ def initialize: (source: String, zoho_field: String) -> void
1424
+
1425
+ def to_hash: -> { source: String, zoho_field: String }
1426
+ end
1427
+
1428
+ type outcome =
1429
+ :not_interested
1430
+ | :interested
1431
+ | :completed
1432
+ | :requested_callback_later
1433
+ | :requested_callback_new_number
1434
+ | :do_not_contact
1435
+ | :ai_averse
1436
+ | :none
1437
+
1438
+ module Outcome
1439
+ extend Revox::Internal::Type::Enum
1440
+
1441
+ NOT_INTERESTED: :not_interested
1442
+ INTERESTED: :interested
1443
+ COMPLETED: :completed
1444
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
1445
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1446
+ DO_NOT_CONTACT: :do_not_contact
1447
+ AI_AVERSE: :ai_averse
1448
+ NONE: :none
1449
+
1450
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::outcome]
1451
+ end
1452
+ end
1453
+
1454
+ type created_by =
1455
+ {
1456
+ id: String,
1457
+ email: String,
1458
+ first_name: String?,
1459
+ last_name: String?
1460
+ }
1461
+
1462
+ class CreatedBy < Revox::Internal::Type::BaseModel
1463
+ attr_accessor id: String
1464
+
1465
+ attr_accessor email: String
1466
+
1467
+ attr_accessor first_name: String?
1468
+
1469
+ attr_accessor last_name: String?
1470
+
1471
+ def initialize: (
1472
+ id: String,
1473
+ email: String,
1474
+ first_name: String?,
1475
+ last_name: String?
550
1476
  ) -> void
551
1477
 
552
1478
  def to_hash: -> {
553
1479
  id: String,
554
- provider: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider,
555
- speed: Float
1480
+ email: String,
1481
+ first_name: String?,
1482
+ last_name: String?
556
1483
  }
557
-
558
- type provider = :cartesia | :elevenlabs
559
-
560
- module Provider
561
- extend Revox::Internal::Type::Enum
562
-
563
- CARTESIA: :cartesia
564
- ELEVENLABS: :elevenlabs
565
-
566
- def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider]
567
- end
568
1484
  end
569
1485
 
570
1486
  type faq_item =
@@ -635,8 +1551,11 @@ module Revox
635
1551
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::result?,
636
1552
  started_at: top,
637
1553
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status,
638
- end_reason: String?,
1554
+ assistants_used: ::Array[String]?,
1555
+ end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?,
639
1556
  ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?,
1557
+ post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?,
1558
+ sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?,
640
1559
  structured_output: ::Hash[Symbol, top]?,
641
1560
  transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
642
1561
  }
@@ -660,10 +1579,16 @@ module Revox
660
1579
 
661
1580
  attr_accessor status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status
662
1581
 
663
- attr_accessor end_reason: String?
1582
+ attr_accessor assistants_used: ::Array[String]?
1583
+
1584
+ attr_accessor end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?
664
1585
 
665
1586
  attr_accessor ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?
666
1587
 
1588
+ attr_accessor post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?
1589
+
1590
+ attr_accessor sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?
1591
+
667
1592
  attr_accessor structured_output: ::Hash[Symbol, top]?
668
1593
 
669
1594
  attr_accessor transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
@@ -678,8 +1603,11 @@ module Revox
678
1603
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::result?,
679
1604
  started_at: top,
680
1605
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status,
681
- ?end_reason: String?,
1606
+ ?assistants_used: ::Array[String]?,
1607
+ ?end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?,
682
1608
  ?ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?,
1609
+ ?post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?,
1610
+ ?sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?,
683
1611
  ?structured_output: ::Hash[Symbol, top]?,
684
1612
  ?transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
685
1613
  ) -> void
@@ -694,8 +1622,11 @@ module Revox
694
1622
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::result?,
695
1623
  started_at: top,
696
1624
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status,
697
- end_reason: String?,
1625
+ assistants_used: ::Array[String]?,
1626
+ end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?,
698
1627
  ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?,
1628
+ post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?,
1629
+ sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?,
699
1630
  structured_output: ::Hash[Symbol, top]?,
700
1631
  transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
701
1632
  }
@@ -754,6 +1685,47 @@ module Revox
754
1685
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status]
755
1686
  end
756
1687
 
1688
+ type end_reason =
1689
+ :client_initiated
1690
+ | :connection_timeout
1691
+ | :human_takeover
1692
+ | :ivr_no_navigate
1693
+ | :max_duration
1694
+ | :participant_removed
1695
+ | :tool_end_call
1696
+ | :transfer
1697
+ | :user_inactive
1698
+ | :user_rejected
1699
+ | :user_unavailable
1700
+ | :voicemail
1701
+ | :speed_dial_abandoned
1702
+ | :speed_dial_operator_missed
1703
+ | :speed_dial_timeout
1704
+ | :speed_dial_hangup
1705
+
1706
+ module EndReason
1707
+ extend Revox::Internal::Type::Enum
1708
+
1709
+ CLIENT_INITIATED: :client_initiated
1710
+ CONNECTION_TIMEOUT: :connection_timeout
1711
+ HUMAN_TAKEOVER: :human_takeover
1712
+ IVR_NO_NAVIGATE: :ivr_no_navigate
1713
+ MAX_DURATION: :max_duration
1714
+ PARTICIPANT_REMOVED: :participant_removed
1715
+ TOOL_END_CALL: :tool_end_call
1716
+ TRANSFER: :transfer
1717
+ USER_INACTIVE: :user_inactive
1718
+ USER_REJECTED: :user_rejected
1719
+ USER_UNAVAILABLE: :user_unavailable
1720
+ VOICEMAIL: :voicemail
1721
+ SPEED_DIAL_ABANDONED: :speed_dial_abandoned
1722
+ SPEED_DIAL_OPERATOR_MISSED: :speed_dial_operator_missed
1723
+ SPEED_DIAL_TIMEOUT: :speed_dial_timeout
1724
+ SPEED_DIAL_HANGUP: :speed_dial_hangup
1725
+
1726
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason]
1727
+ end
1728
+
757
1729
  type ended_by = :agent | :user | :system
758
1730
 
759
1731
  module EndedBy
@@ -766,13 +1738,143 @@ module Revox
766
1738
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by]
767
1739
  end
768
1740
 
1741
+ type post_call_transcript =
1742
+ {
1743
+ content: String,
1744
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::role,
1745
+ tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments,
1746
+ tool_is_error: bool,
1747
+ tool_name: String,
1748
+ tool_output: String
1749
+ }
1750
+
1751
+ class PostCallTranscript < Revox::Internal::Type::BaseModel
1752
+ attr_accessor content: String
1753
+
1754
+ attr_accessor role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::role
1755
+
1756
+ attr_reader tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments?
1757
+
1758
+ def tool_arguments=: (
1759
+ Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments
1760
+ ) -> Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments
1761
+
1762
+ attr_reader tool_is_error: bool?
1763
+
1764
+ def tool_is_error=: (bool) -> bool
1765
+
1766
+ attr_reader tool_name: String?
1767
+
1768
+ def tool_name=: (String) -> String
1769
+
1770
+ attr_reader tool_output: String?
1771
+
1772
+ def tool_output=: (String) -> String
1773
+
1774
+ def initialize: (
1775
+ content: String,
1776
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::role,
1777
+ ?tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments,
1778
+ ?tool_is_error: bool,
1779
+ ?tool_name: String,
1780
+ ?tool_output: String
1781
+ ) -> void
1782
+
1783
+ def to_hash: -> {
1784
+ content: String,
1785
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::role,
1786
+ tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments,
1787
+ tool_is_error: bool,
1788
+ tool_name: String,
1789
+ tool_output: String
1790
+ }
1791
+
1792
+ type role = :user | :assistant | :human_agent | :tool
1793
+
1794
+ module Role
1795
+ extend Revox::Internal::Type::Enum
1796
+
1797
+ USER: :user
1798
+ ASSISTANT: :assistant
1799
+ HUMAN_AGENT: :human_agent
1800
+ TOOL: :tool
1801
+
1802
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::role]
1803
+ end
1804
+
1805
+ type tool_arguments = ::Hash[Symbol, top] | String
1806
+
1807
+ module ToolArguments
1808
+ extend Revox::Internal::Type::Union
1809
+
1810
+ def self?.variants: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript::tool_arguments]
1811
+
1812
+ UnionMember0Map: Revox::Internal::Type::Converter
1813
+ end
1814
+ end
1815
+
1816
+ type sms_log =
1817
+ {
1818
+ id: String,
1819
+ created_at: top,
1820
+ message_body: String,
1821
+ to_phone_number: String,
1822
+ twilio_message_sid: String?,
1823
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1824
+ }
1825
+
1826
+ class SMSLog < Revox::Internal::Type::BaseModel
1827
+ attr_accessor id: String
1828
+
1829
+ attr_accessor created_at: top
1830
+
1831
+ attr_accessor message_body: String
1832
+
1833
+ attr_accessor to_phone_number: String
1834
+
1835
+ attr_accessor twilio_message_sid: String?
1836
+
1837
+ attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1838
+
1839
+ def initialize: (
1840
+ id: String,
1841
+ created_at: top,
1842
+ message_body: String,
1843
+ to_phone_number: String,
1844
+ twilio_message_sid: String?,
1845
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1846
+ ) -> void
1847
+
1848
+ def to_hash: -> {
1849
+ id: String,
1850
+ created_at: top,
1851
+ message_body: String,
1852
+ to_phone_number: String,
1853
+ twilio_message_sid: String?,
1854
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1855
+ }
1856
+
1857
+ type type_ = :in_call | :voicemail | :after_call
1858
+
1859
+ module Type
1860
+ extend Revox::Internal::Type::Enum
1861
+
1862
+ IN_CALL: :in_call
1863
+ VOICEMAIL: :voicemail
1864
+ AFTER_CALL: :after_call
1865
+
1866
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_]
1867
+ end
1868
+ end
1869
+
769
1870
  type transcript =
770
1871
  {
771
1872
  content: String,
772
1873
  role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::role,
773
1874
  tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::tool_arguments,
774
1875
  tool_is_error: bool,
775
- tool_name: String
1876
+ tool_name: String,
1877
+ tool_output: String
776
1878
  }
777
1879
 
778
1880
  class Transcript < Revox::Internal::Type::BaseModel
@@ -794,12 +1896,17 @@ module Revox
794
1896
 
795
1897
  def tool_name=: (String) -> String
796
1898
 
1899
+ attr_reader tool_output: String?
1900
+
1901
+ def tool_output=: (String) -> String
1902
+
797
1903
  def initialize: (
798
1904
  content: String,
799
1905
  role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::role,
800
1906
  ?tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::tool_arguments,
801
1907
  ?tool_is_error: bool,
802
- ?tool_name: String
1908
+ ?tool_name: String,
1909
+ ?tool_output: String
803
1910
  ) -> void
804
1911
 
805
1912
  def to_hash: -> {
@@ -807,16 +1914,18 @@ module Revox
807
1914
  role: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::role,
808
1915
  tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::tool_arguments,
809
1916
  tool_is_error: bool,
810
- tool_name: String
1917
+ tool_name: String,
1918
+ tool_output: String
811
1919
  }
812
1920
 
813
- type role = :user | :assistant | :tool
1921
+ type role = :user | :assistant | :human_agent | :tool
814
1922
 
815
1923
  module Role
816
1924
  extend Revox::Internal::Type::Enum
817
1925
 
818
1926
  USER: :user
819
1927
  ASSISTANT: :assistant
1928
+ HUMAN_AGENT: :human_agent
820
1929
  TOOL: :tool
821
1930
 
822
1931
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript::role]
@@ -836,12 +1945,18 @@ module Revox
836
1945
 
837
1946
  type call_retry_config =
838
1947
  {
1948
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::allowed_day],
1949
+ call_twice_in_a_row: bool,
839
1950
  calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::CallingWindow],
840
1951
  max_retry_attempts: Integer,
841
1952
  timezone: String?
842
1953
  }
843
1954
 
844
1955
  class CallRetryConfig < Revox::Internal::Type::BaseModel
1956
+ attr_accessor allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::allowed_day]
1957
+
1958
+ attr_accessor call_twice_in_a_row: bool
1959
+
845
1960
  attr_accessor calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::CallingWindow]
846
1961
 
847
1962
  attr_accessor max_retry_attempts: Integer
@@ -849,17 +1964,44 @@ module Revox
849
1964
  attr_accessor timezone: String?
850
1965
 
851
1966
  def initialize: (
1967
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::allowed_day],
1968
+ call_twice_in_a_row: bool,
852
1969
  calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::CallingWindow],
853
1970
  max_retry_attempts: Integer,
854
1971
  ?timezone: String?
855
1972
  ) -> void
856
1973
 
857
1974
  def to_hash: -> {
1975
+ allowed_days: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::allowed_day],
1976
+ call_twice_in_a_row: bool,
858
1977
  calling_windows: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::CallingWindow],
859
1978
  max_retry_attempts: Integer,
860
1979
  timezone: String?
861
1980
  }
862
1981
 
1982
+ type allowed_day =
1983
+ :monday
1984
+ | :tuesday
1985
+ | :wednesday
1986
+ | :thursday
1987
+ | :friday
1988
+ | :saturday
1989
+ | :sunday
1990
+
1991
+ module AllowedDay
1992
+ extend Revox::Internal::Type::Enum
1993
+
1994
+ MONDAY: :monday
1995
+ TUESDAY: :tuesday
1996
+ WEDNESDAY: :wednesday
1997
+ THURSDAY: :thursday
1998
+ FRIDAY: :friday
1999
+ SATURDAY: :saturday
2000
+ SUNDAY: :sunday
2001
+
2002
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallRetryConfig::allowed_day]
2003
+ end
2004
+
863
2005
  type calling_window =
864
2006
  {
865
2007
  calling_window_end_time: String,
@@ -900,6 +2042,38 @@ module Revox
900
2042
  def to_hash: -> { id: String, name: String }
901
2043
  end
902
2044
 
2045
+ type contact =
2046
+ {
2047
+ company: String?,
2048
+ email: String?,
2049
+ first_name: String?,
2050
+ last_name: String?
2051
+ }
2052
+
2053
+ class Contact < Revox::Internal::Type::BaseModel
2054
+ attr_accessor company: String?
2055
+
2056
+ attr_accessor email: String?
2057
+
2058
+ attr_accessor first_name: String?
2059
+
2060
+ attr_accessor last_name: String?
2061
+
2062
+ def initialize: (
2063
+ company: String?,
2064
+ email: String?,
2065
+ first_name: String?,
2066
+ last_name: String?
2067
+ ) -> void
2068
+
2069
+ def to_hash: -> {
2070
+ company: String?,
2071
+ email: String?,
2072
+ first_name: String?,
2073
+ last_name: String?
2074
+ }
2075
+ end
2076
+
903
2077
  type direction = :inbound | :outbound
904
2078
 
905
2079
  module Direction
@@ -922,8 +2096,11 @@ module Revox
922
2096
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::result?,
923
2097
  started_at: top,
924
2098
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status,
925
- end_reason: String?,
2099
+ assistants_used: ::Array[String]?,
2100
+ end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?,
926
2101
  ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?,
2102
+ post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?,
2103
+ sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?,
927
2104
  structured_output: ::Hash[Symbol, top]?,
928
2105
  transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
929
2106
  }
@@ -947,10 +2124,16 @@ module Revox
947
2124
 
948
2125
  attr_accessor status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status
949
2126
 
950
- attr_accessor end_reason: String?
2127
+ attr_accessor assistants_used: ::Array[String]?
2128
+
2129
+ attr_accessor end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?
951
2130
 
952
2131
  attr_accessor ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?
953
2132
 
2133
+ attr_accessor post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?
2134
+
2135
+ attr_accessor sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?
2136
+
954
2137
  attr_accessor structured_output: ::Hash[Symbol, top]?
955
2138
 
956
2139
  attr_accessor transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
@@ -965,8 +2148,11 @@ module Revox
965
2148
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::result?,
966
2149
  started_at: top,
967
2150
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status,
968
- ?end_reason: String?,
2151
+ ?assistants_used: ::Array[String]?,
2152
+ ?end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?,
969
2153
  ?ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?,
2154
+ ?post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?,
2155
+ ?sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?,
970
2156
  ?structured_output: ::Hash[Symbol, top]?,
971
2157
  ?transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
972
2158
  ) -> void
@@ -981,8 +2167,11 @@ module Revox
981
2167
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::result?,
982
2168
  started_at: top,
983
2169
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status,
984
- end_reason: String?,
2170
+ assistants_used: ::Array[String]?,
2171
+ end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?,
985
2172
  ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?,
2173
+ post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?,
2174
+ sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?,
986
2175
  structured_output: ::Hash[Symbol, top]?,
987
2176
  transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
988
2177
  }
@@ -1041,6 +2230,47 @@ module Revox
1041
2230
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status]
1042
2231
  end
1043
2232
 
2233
+ type end_reason =
2234
+ :client_initiated
2235
+ | :connection_timeout
2236
+ | :human_takeover
2237
+ | :ivr_no_navigate
2238
+ | :max_duration
2239
+ | :participant_removed
2240
+ | :tool_end_call
2241
+ | :transfer
2242
+ | :user_inactive
2243
+ | :user_rejected
2244
+ | :user_unavailable
2245
+ | :voicemail
2246
+ | :speed_dial_abandoned
2247
+ | :speed_dial_operator_missed
2248
+ | :speed_dial_timeout
2249
+ | :speed_dial_hangup
2250
+
2251
+ module EndReason
2252
+ extend Revox::Internal::Type::Enum
2253
+
2254
+ CLIENT_INITIATED: :client_initiated
2255
+ CONNECTION_TIMEOUT: :connection_timeout
2256
+ HUMAN_TAKEOVER: :human_takeover
2257
+ IVR_NO_NAVIGATE: :ivr_no_navigate
2258
+ MAX_DURATION: :max_duration
2259
+ PARTICIPANT_REMOVED: :participant_removed
2260
+ TOOL_END_CALL: :tool_end_call
2261
+ TRANSFER: :transfer
2262
+ USER_INACTIVE: :user_inactive
2263
+ USER_REJECTED: :user_rejected
2264
+ USER_UNAVAILABLE: :user_unavailable
2265
+ VOICEMAIL: :voicemail
2266
+ SPEED_DIAL_ABANDONED: :speed_dial_abandoned
2267
+ SPEED_DIAL_OPERATOR_MISSED: :speed_dial_operator_missed
2268
+ SPEED_DIAL_TIMEOUT: :speed_dial_timeout
2269
+ SPEED_DIAL_HANGUP: :speed_dial_hangup
2270
+
2271
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason]
2272
+ end
2273
+
1044
2274
  type ended_by = :agent | :user | :system
1045
2275
 
1046
2276
  module EndedBy
@@ -1053,13 +2283,143 @@ module Revox
1053
2283
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by]
1054
2284
  end
1055
2285
 
2286
+ type post_call_transcript =
2287
+ {
2288
+ content: String,
2289
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::role,
2290
+ tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments,
2291
+ tool_is_error: bool,
2292
+ tool_name: String,
2293
+ tool_output: String
2294
+ }
2295
+
2296
+ class PostCallTranscript < Revox::Internal::Type::BaseModel
2297
+ attr_accessor content: String
2298
+
2299
+ attr_accessor role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::role
2300
+
2301
+ attr_reader tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments?
2302
+
2303
+ def tool_arguments=: (
2304
+ Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments
2305
+ ) -> Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments
2306
+
2307
+ attr_reader tool_is_error: bool?
2308
+
2309
+ def tool_is_error=: (bool) -> bool
2310
+
2311
+ attr_reader tool_name: String?
2312
+
2313
+ def tool_name=: (String) -> String
2314
+
2315
+ attr_reader tool_output: String?
2316
+
2317
+ def tool_output=: (String) -> String
2318
+
2319
+ def initialize: (
2320
+ content: String,
2321
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::role,
2322
+ ?tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments,
2323
+ ?tool_is_error: bool,
2324
+ ?tool_name: String,
2325
+ ?tool_output: String
2326
+ ) -> void
2327
+
2328
+ def to_hash: -> {
2329
+ content: String,
2330
+ role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::role,
2331
+ tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments,
2332
+ tool_is_error: bool,
2333
+ tool_name: String,
2334
+ tool_output: String
2335
+ }
2336
+
2337
+ type role = :user | :assistant | :human_agent | :tool
2338
+
2339
+ module Role
2340
+ extend Revox::Internal::Type::Enum
2341
+
2342
+ USER: :user
2343
+ ASSISTANT: :assistant
2344
+ HUMAN_AGENT: :human_agent
2345
+ TOOL: :tool
2346
+
2347
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::role]
2348
+ end
2349
+
2350
+ type tool_arguments = ::Hash[Symbol, top] | String
2351
+
2352
+ module ToolArguments
2353
+ extend Revox::Internal::Type::Union
2354
+
2355
+ def self?.variants: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript::tool_arguments]
2356
+
2357
+ UnionMember0Map: Revox::Internal::Type::Converter
2358
+ end
2359
+ end
2360
+
2361
+ type sms_log =
2362
+ {
2363
+ id: String,
2364
+ created_at: top,
2365
+ message_body: String,
2366
+ to_phone_number: String,
2367
+ twilio_message_sid: String?,
2368
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2369
+ }
2370
+
2371
+ class SMSLog < Revox::Internal::Type::BaseModel
2372
+ attr_accessor id: String
2373
+
2374
+ attr_accessor created_at: top
2375
+
2376
+ attr_accessor message_body: String
2377
+
2378
+ attr_accessor to_phone_number: String
2379
+
2380
+ attr_accessor twilio_message_sid: String?
2381
+
2382
+ attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2383
+
2384
+ def initialize: (
2385
+ id: String,
2386
+ created_at: top,
2387
+ message_body: String,
2388
+ to_phone_number: String,
2389
+ twilio_message_sid: String?,
2390
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2391
+ ) -> void
2392
+
2393
+ def to_hash: -> {
2394
+ id: String,
2395
+ created_at: top,
2396
+ message_body: String,
2397
+ to_phone_number: String,
2398
+ twilio_message_sid: String?,
2399
+ type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2400
+ }
2401
+
2402
+ type type_ = :in_call | :voicemail | :after_call
2403
+
2404
+ module Type
2405
+ extend Revox::Internal::Type::Enum
2406
+
2407
+ IN_CALL: :in_call
2408
+ VOICEMAIL: :voicemail
2409
+ AFTER_CALL: :after_call
2410
+
2411
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_]
2412
+ end
2413
+ end
2414
+
1056
2415
  type transcript =
1057
2416
  {
1058
2417
  content: String,
1059
2418
  role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::role,
1060
2419
  tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::tool_arguments,
1061
2420
  tool_is_error: bool,
1062
- tool_name: String
2421
+ tool_name: String,
2422
+ tool_output: String
1063
2423
  }
1064
2424
 
1065
2425
  class Transcript < Revox::Internal::Type::BaseModel
@@ -1081,12 +2441,17 @@ module Revox
1081
2441
 
1082
2442
  def tool_name=: (String) -> String
1083
2443
 
2444
+ attr_reader tool_output: String?
2445
+
2446
+ def tool_output=: (String) -> String
2447
+
1084
2448
  def initialize: (
1085
2449
  content: String,
1086
2450
  role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::role,
1087
2451
  ?tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::tool_arguments,
1088
2452
  ?tool_is_error: bool,
1089
- ?tool_name: String
2453
+ ?tool_name: String,
2454
+ ?tool_output: String
1090
2455
  ) -> void
1091
2456
 
1092
2457
  def to_hash: -> {
@@ -1094,16 +2459,18 @@ module Revox
1094
2459
  role: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::role,
1095
2460
  tool_arguments: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::tool_arguments,
1096
2461
  tool_is_error: bool,
1097
- tool_name: String
2462
+ tool_name: String,
2463
+ tool_output: String
1098
2464
  }
1099
2465
 
1100
- type role = :user | :assistant | :tool
2466
+ type role = :user | :assistant | :human_agent | :tool
1101
2467
 
1102
2468
  module Role
1103
2469
  extend Revox::Internal::Type::Enum
1104
2470
 
1105
2471
  USER: :user
1106
2472
  ASSISTANT: :assistant
2473
+ HUMAN_AGENT: :human_agent
1107
2474
  TOOL: :tool
1108
2475
 
1109
2476
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript::role]
@@ -1124,6 +2491,8 @@ module Revox
1124
2491
  type llm_model =
1125
2492
  Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember0
1126
2493
  | Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember1
2494
+ | Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember2
2495
+ | Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3
1127
2496
 
1128
2497
  module LlmModel
1129
2498
  extend Revox::Internal::Type::Union
@@ -1188,6 +2557,83 @@ module Revox
1188
2557
  }
1189
2558
  end
1190
2559
 
2560
+ type union_member2 =
2561
+ {
2562
+ api_key: String,
2563
+ api_url: String,
2564
+ model_name: String,
2565
+ type: :custom
2566
+ }
2567
+
2568
+ class UnionMember2 < Revox::Internal::Type::BaseModel
2569
+ attr_accessor api_key: String
2570
+
2571
+ attr_accessor api_url: String
2572
+
2573
+ attr_accessor model_name: String
2574
+
2575
+ attr_accessor type: :custom
2576
+
2577
+ def initialize: (
2578
+ api_key: String,
2579
+ api_url: String,
2580
+ model_name: String,
2581
+ ?type: :custom
2582
+ ) -> void
2583
+
2584
+ def to_hash: -> {
2585
+ api_key: String,
2586
+ api_url: String,
2587
+ model_name: String,
2588
+ type: :custom
2589
+ }
2590
+ end
2591
+
2592
+ type union_member3 =
2593
+ {
2594
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3::provider,
2595
+ realtime_model_id: String,
2596
+ type: :realtime,
2597
+ realtime_voice_id: String
2598
+ }
2599
+
2600
+ class UnionMember3 < Revox::Internal::Type::BaseModel
2601
+ attr_accessor provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3::provider
2602
+
2603
+ attr_accessor realtime_model_id: String
2604
+
2605
+ attr_accessor type: :realtime
2606
+
2607
+ attr_reader realtime_voice_id: String?
2608
+
2609
+ def realtime_voice_id=: (String) -> String
2610
+
2611
+ def initialize: (
2612
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3::provider,
2613
+ realtime_model_id: String,
2614
+ ?realtime_voice_id: String,
2615
+ ?type: :realtime
2616
+ ) -> void
2617
+
2618
+ def to_hash: -> {
2619
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3::provider,
2620
+ realtime_model_id: String,
2621
+ type: :realtime,
2622
+ realtime_voice_id: String
2623
+ }
2624
+
2625
+ type provider = :openai | :google
2626
+
2627
+ module Provider
2628
+ extend Revox::Internal::Type::Enum
2629
+
2630
+ OPENAI: :openai
2631
+ GOOGLE: :google
2632
+
2633
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LlmModel::UnionMember3::provider]
2634
+ end
2635
+ end
2636
+
1191
2637
  def self?.variants: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::llm_model]
1192
2638
  end
1193
2639
 
@@ -1195,7 +2641,9 @@ module Revox
1195
2641
  :initializing
1196
2642
  | :queued_for_calling
1197
2643
  | :calling
2644
+ | :post_processing
1198
2645
  | :scheduled
2646
+ | :paused
1199
2647
  | :completed
1200
2648
  | :cancelled
1201
2649
  | :errored
@@ -1206,13 +2654,38 @@ module Revox
1206
2654
  INITIALIZING: :initializing
1207
2655
  QUEUED_FOR_CALLING: :queued_for_calling
1208
2656
  CALLING: :calling
2657
+ POST_PROCESSING: :post_processing
1209
2658
  SCHEDULED: :scheduled
2659
+ PAUSED: :paused
1210
2660
  COMPLETED: :completed
1211
2661
  CANCELLED: :cancelled
1212
2662
  ERRORED: :errored
1213
2663
 
1214
2664
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::status]
1215
2665
  end
2666
+
2667
+ type outcome =
2668
+ :not_interested
2669
+ | :interested
2670
+ | :completed
2671
+ | :requested_callback_later
2672
+ | :requested_callback_new_number
2673
+ | :do_not_contact
2674
+ | :ai_averse
2675
+
2676
+ module Outcome
2677
+ extend Revox::Internal::Type::Enum
2678
+
2679
+ NOT_INTERESTED: :not_interested
2680
+ INTERESTED: :interested
2681
+ COMPLETED: :completed
2682
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
2683
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
2684
+ DO_NOT_CONTACT: :do_not_contact
2685
+ AI_AVERSE: :ai_averse
2686
+
2687
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::outcome]
2688
+ end
1216
2689
  end
1217
2690
  end
1218
2691
  end