revox 0.2.0 → 0.4.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 (208) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +36 -0
  3. data/README.md +38 -38
  4. data/lib/revox/client.rb +8 -0
  5. data/lib/revox/internal/type/base_model.rb +3 -3
  6. data/lib/revox/models/assistant_clone_params.rb +20 -0
  7. data/lib/revox/models/assistant_clone_response.rb +1616 -0
  8. data/lib/revox/models/assistant_create_params.rb +90 -66
  9. data/lib/revox/models/assistant_create_response.rb +87 -65
  10. data/lib/revox/models/assistant_list_response.rb +87 -65
  11. data/lib/revox/models/assistant_retrieve_response.rb +86 -65
  12. data/lib/revox/models/assistant_update_params.rb +90 -66
  13. data/lib/revox/models/assistant_update_response.rb +87 -65
  14. data/lib/revox/models/auth_status_retrieve_params.rb +14 -0
  15. data/lib/revox/models/auth_status_retrieve_response.rb +17 -0
  16. data/lib/revox/models/call_cancel_params.rb +20 -0
  17. data/lib/revox/models/call_cancel_response.rb +16 -0
  18. data/lib/revox/models/call_create_params.rb +117 -90
  19. data/lib/revox/models/call_create_response.rb +680 -90
  20. data/lib/revox/models/call_export_params.rb +203 -0
  21. data/lib/revox/models/call_export_response.rb +22 -0
  22. data/lib/revox/models/call_pause_params.rb +20 -0
  23. data/lib/revox/models/call_pause_response.rb +16 -0
  24. data/lib/revox/models/call_phone_history_params.rb +14 -0
  25. data/lib/revox/models/call_phone_history_response.rb +95 -0
  26. data/lib/revox/models/call_resume_params.rb +20 -0
  27. data/lib/revox/models/call_resume_response.rb +16 -0
  28. data/lib/revox/models/call_retrieve_response.rb +681 -90
  29. data/lib/revox/models/call_search_params.rb +169 -0
  30. data/lib/revox/models/call_search_response.rb +3694 -0
  31. data/lib/revox/models/campaign_create_params.rb +7 -57
  32. data/lib/revox/models/campaign_create_response.rb +108 -119
  33. data/lib/revox/models/campaign_get_rows_response.rb +682 -90
  34. data/lib/revox/models/campaign_list_response.rb +108 -119
  35. data/lib/revox/models/campaign_pause_params.rb +20 -0
  36. data/lib/revox/models/campaign_pause_response.rb +16 -0
  37. data/lib/revox/models/campaign_resume_params.rb +20 -0
  38. data/lib/revox/models/campaign_resume_response.rb +16 -0
  39. data/lib/revox/models/campaign_retrieve_response.rb +108 -119
  40. data/lib/revox/models/campaign_statistics_params.rb +20 -0
  41. data/lib/revox/models/campaign_statistics_response.rb +514 -0
  42. data/lib/revox/models/campaign_update_params.rb +165 -0
  43. data/lib/revox/models/campaign_update_response.rb +2019 -0
  44. data/lib/revox/models/phone_number_delete_params.rb +20 -0
  45. data/lib/revox/models/phone_number_delete_response.rb +16 -0
  46. data/lib/revox/models/phone_number_list_params.rb +14 -0
  47. data/lib/revox/models/phone_number_list_response.rb +1799 -0
  48. data/lib/revox/models/phone_number_update_params.rb +32 -0
  49. data/lib/revox/models/phone_number_update_response.rb +1799 -0
  50. data/lib/revox/models/user_retrieve_params.rb +14 -0
  51. data/lib/revox/models/user_retrieve_response.rb +99 -0
  52. data/lib/revox/models/voice_clone_params.rb +78 -0
  53. data/lib/revox/models/voice_clone_response.rb +40 -0
  54. data/lib/revox/models/voice_delete_params.rb +20 -0
  55. data/lib/revox/models/voice_delete_response.rb +16 -0
  56. data/lib/revox/models/voice_list_response.rb +1 -0
  57. data/lib/revox/models/voice_preview_params.rb +1 -0
  58. data/lib/revox/models/voice_retrieve_params.rb +1 -0
  59. data/lib/revox/models.rb +35 -1
  60. data/lib/revox/resources/assistants.rb +31 -10
  61. data/lib/revox/resources/auth_status.rb +32 -0
  62. data/lib/revox/resources/call.rb +149 -4
  63. data/lib/revox/resources/campaigns.rb +110 -11
  64. data/lib/revox/resources/phone_numbers.rb +74 -0
  65. data/lib/revox/resources/users.rb +17 -3
  66. data/lib/revox/resources/voices.rb +50 -0
  67. data/lib/revox/version.rb +1 -1
  68. data/lib/revox.rb +38 -5
  69. data/rbi/revox/client.rbi +6 -0
  70. data/rbi/revox/models/assistant_clone_params.rbi +33 -0
  71. data/rbi/revox/models/assistant_clone_response.rbi +3351 -0
  72. data/rbi/revox/models/assistant_create_params.rbi +148 -162
  73. data/rbi/revox/models/assistant_create_response.rbi +157 -147
  74. data/rbi/revox/models/assistant_list_response.rbi +157 -147
  75. data/rbi/revox/models/assistant_retrieve_response.rbi +153 -147
  76. data/rbi/revox/models/assistant_update_params.rbi +148 -162
  77. data/rbi/revox/models/assistant_update_response.rbi +157 -147
  78. data/rbi/revox/models/auth_status_retrieve_params.rbi +27 -0
  79. data/rbi/revox/models/auth_status_retrieve_response.rbi +30 -0
  80. data/rbi/revox/models/call_cancel_params.rbi +33 -0
  81. data/rbi/revox/models/call_cancel_response.rbi +23 -0
  82. data/rbi/revox/models/call_create_params.rbi +190 -187
  83. data/rbi/revox/models/call_create_response.rbi +1150 -227
  84. data/rbi/revox/models/call_export_params.rbi +446 -0
  85. data/rbi/revox/models/call_export_response.rbi +26 -0
  86. data/rbi/revox/models/call_pause_params.rbi +31 -0
  87. data/rbi/revox/models/call_pause_response.rbi +23 -0
  88. data/rbi/revox/models/call_phone_history_params.rbi +27 -0
  89. data/rbi/revox/models/call_phone_history_response.rbi +209 -0
  90. data/rbi/revox/models/call_resume_params.rbi +33 -0
  91. data/rbi/revox/models/call_resume_response.rbi +23 -0
  92. data/rbi/revox/models/call_retrieve_response.rbi +1150 -227
  93. data/rbi/revox/models/call_search_params.rbi +281 -0
  94. data/rbi/revox/models/call_search_response.rbi +7504 -0
  95. data/rbi/revox/models/campaign_create_params.rbi +9 -87
  96. data/rbi/revox/models/campaign_create_response.rbi +188 -266
  97. data/rbi/revox/models/campaign_get_rows_response.rbi +1150 -225
  98. data/rbi/revox/models/campaign_list_response.rbi +188 -262
  99. data/rbi/revox/models/campaign_pause_params.rbi +33 -0
  100. data/rbi/revox/models/campaign_pause_response.rbi +23 -0
  101. data/rbi/revox/models/campaign_resume_params.rbi +33 -0
  102. data/rbi/revox/models/campaign_resume_response.rbi +23 -0
  103. data/rbi/revox/models/campaign_retrieve_response.rbi +188 -266
  104. data/rbi/revox/models/campaign_statistics_params.rbi +33 -0
  105. data/rbi/revox/models/campaign_statistics_response.rbi +1069 -0
  106. data/rbi/revox/models/campaign_update_params.rbi +313 -0
  107. data/rbi/revox/models/campaign_update_response.rbi +4092 -0
  108. data/rbi/revox/models/phone_number_delete_params.rbi +33 -0
  109. data/rbi/revox/models/phone_number_delete_response.rbi +26 -0
  110. data/rbi/revox/models/phone_number_list_params.rbi +27 -0
  111. data/rbi/revox/models/phone_number_list_response.rbi +3690 -0
  112. data/rbi/revox/models/phone_number_update_params.rbi +53 -0
  113. data/rbi/revox/models/phone_number_update_response.rbi +3693 -0
  114. data/rbi/revox/models/user_retrieve_params.rbi +27 -0
  115. data/rbi/revox/models/user_retrieve_response.rbi +140 -0
  116. data/rbi/revox/models/voice_clone_params.rbi +141 -0
  117. data/rbi/revox/models/voice_clone_response.rbi +53 -0
  118. data/rbi/revox/models/voice_delete_params.rbi +33 -0
  119. data/rbi/revox/models/voice_delete_response.rbi +23 -0
  120. data/rbi/revox/models/voice_list_response.rbi +5 -0
  121. data/rbi/revox/models/voice_preview_params.rbi +2 -0
  122. data/rbi/revox/models/voice_retrieve_params.rbi +2 -0
  123. data/rbi/revox/models.rbi +35 -1
  124. data/rbi/revox/resources/assistants.rbi +52 -22
  125. data/rbi/revox/resources/auth_status.rbi +21 -0
  126. data/rbi/revox/resources/call.rbi +114 -4
  127. data/rbi/revox/resources/campaigns.rbi +77 -15
  128. data/rbi/revox/resources/phone_numbers.rbi +43 -0
  129. data/rbi/revox/resources/users.rbi +8 -2
  130. data/rbi/revox/resources/voices.rbi +39 -0
  131. data/sig/revox/client.rbs +4 -0
  132. data/sig/revox/models/assistant_clone_params.rbs +20 -0
  133. data/sig/revox/models/assistant_clone_response.rbs +1310 -0
  134. data/sig/revox/models/assistant_create_params.rbs +39 -58
  135. data/sig/revox/models/assistant_create_response.rbs +46 -54
  136. data/sig/revox/models/assistant_list_response.rbs +46 -54
  137. data/sig/revox/models/assistant_retrieve_response.rbs +46 -54
  138. data/sig/revox/models/assistant_update_params.rbs +39 -58
  139. data/sig/revox/models/assistant_update_response.rbs +46 -54
  140. data/sig/revox/models/auth_status_retrieve_params.rbs +15 -0
  141. data/sig/revox/models/auth_status_retrieve_response.rbs +13 -0
  142. data/sig/revox/models/call_cancel_params.rbs +20 -0
  143. data/sig/revox/models/call_cancel_response.rbs +13 -0
  144. data/sig/revox/models/call_create_params.rbs +50 -71
  145. data/sig/revox/models/call_create_response.rbs +473 -77
  146. data/sig/revox/models/call_export_params.rbs +230 -0
  147. data/sig/revox/models/call_export_response.rbs +15 -0
  148. data/sig/revox/models/call_pause_params.rbs +20 -0
  149. data/sig/revox/models/call_pause_response.rbs +13 -0
  150. data/sig/revox/models/call_phone_history_params.rbs +15 -0
  151. data/sig/revox/models/call_phone_history_response.rbs +93 -0
  152. data/sig/revox/models/call_resume_params.rbs +20 -0
  153. data/sig/revox/models/call_resume_response.rbs +13 -0
  154. data/sig/revox/models/call_retrieve_response.rbs +473 -77
  155. data/sig/revox/models/call_search_params.rbs +194 -0
  156. data/sig/revox/models/call_search_response.rbs +3045 -0
  157. data/sig/revox/models/campaign_create_params.rbs +5 -50
  158. data/sig/revox/models/campaign_create_response.rbs +62 -98
  159. data/sig/revox/models/campaign_get_rows_response.rbs +472 -73
  160. data/sig/revox/models/campaign_list_response.rbs +62 -98
  161. data/sig/revox/models/campaign_pause_params.rbs +20 -0
  162. data/sig/revox/models/campaign_pause_response.rbs +13 -0
  163. data/sig/revox/models/campaign_resume_params.rbs +20 -0
  164. data/sig/revox/models/campaign_resume_response.rbs +13 -0
  165. data/sig/revox/models/campaign_retrieve_response.rbs +62 -98
  166. data/sig/revox/models/campaign_statistics_params.rbs +20 -0
  167. data/sig/revox/models/campaign_statistics_response.rbs +489 -0
  168. data/sig/revox/models/campaign_update_params.rbs +135 -0
  169. data/sig/revox/models/campaign_update_response.rbs +1658 -0
  170. data/sig/revox/models/phone_number_delete_params.rbs +20 -0
  171. data/sig/revox/models/phone_number_delete_response.rbs +13 -0
  172. data/sig/revox/models/phone_number_list_params.rbs +15 -0
  173. data/sig/revox/models/phone_number_list_response.rbs +1454 -0
  174. data/sig/revox/models/phone_number_update_params.rbs +32 -0
  175. data/sig/revox/models/phone_number_update_response.rbs +1452 -0
  176. data/sig/revox/models/user_retrieve_params.rbs +14 -0
  177. data/sig/revox/models/user_retrieve_response.rbs +71 -0
  178. data/sig/revox/models/voice_clone_params.rbs +79 -0
  179. data/sig/revox/models/voice_clone_response.rbs +40 -0
  180. data/sig/revox/models/voice_delete_params.rbs +20 -0
  181. data/sig/revox/models/voice_delete_response.rbs +13 -0
  182. data/sig/revox/models/voice_list_response.rbs +2 -1
  183. data/sig/revox/models/voice_preview_params.rbs +2 -1
  184. data/sig/revox/models/voice_retrieve_params.rbs +2 -1
  185. data/sig/revox/models.rbs +35 -1
  186. data/sig/revox/resources/assistants.rbs +9 -4
  187. data/sig/revox/resources/auth_status.rbs +11 -0
  188. data/sig/revox/resources/call.rbs +46 -1
  189. data/sig/revox/resources/campaigns.rbs +24 -3
  190. data/sig/revox/resources/phone_numbers.rbs +23 -0
  191. data/sig/revox/resources/users.rbs +3 -1
  192. data/sig/revox/resources/voices.rbs +13 -0
  193. metadata +116 -17
  194. data/lib/revox/models/users/me_retrieve_params.rb +0 -16
  195. data/lib/revox/models/users/me_retrieve_response.rb +0 -101
  196. data/lib/revox/models/users/me_update_params.rb +0 -22
  197. data/lib/revox/models/users/me_update_response.rb +0 -101
  198. data/lib/revox/resources/users/me.rb +0 -55
  199. data/rbi/revox/models/users/me_retrieve_params.rbi +0 -29
  200. data/rbi/revox/models/users/me_retrieve_response.rbi +0 -149
  201. data/rbi/revox/models/users/me_update_params.rbi +0 -43
  202. data/rbi/revox/models/users/me_update_response.rbi +0 -149
  203. data/rbi/revox/resources/users/me.rbi +0 -33
  204. data/sig/revox/models/users/me_retrieve_params.rbs +0 -16
  205. data/sig/revox/models/users/me_retrieve_response.rbs +0 -75
  206. data/sig/revox/models/users/me_update_params.rbs +0 -28
  207. data/sig/revox/models/users/me_update_response.rbs +0 -75
  208. data/sig/revox/resources/users/me.rbs +0 -18
@@ -0,0 +1,1658 @@
1
+ module Revox
2
+ module Models
3
+ type campaign_update_response =
4
+ { campaign: Revox::Models::CampaignUpdateResponse::Campaign }
5
+
6
+ class CampaignUpdateResponse < Revox::Internal::Type::BaseModel
7
+ attr_accessor campaign: Revox::Models::CampaignUpdateResponse::Campaign
8
+
9
+ def initialize: (
10
+ campaign: Revox::Models::CampaignUpdateResponse::Campaign
11
+ ) -> void
12
+
13
+ def to_hash: -> {
14
+ campaign: Revox::Models::CampaignUpdateResponse::Campaign
15
+ }
16
+
17
+ type campaign =
18
+ {
19
+ id: String,
20
+ assistant_id: String,
21
+ created_at: top,
22
+ is_cancelled: bool,
23
+ name: String,
24
+ organization_id: String,
25
+ status: Revox::Models::CampaignUpdateResponse::Campaign::status,
26
+ updated_at: top,
27
+ assistant: Revox::Models::CampaignUpdateResponse::Campaign::Assistant,
28
+ call_retry_config: Revox::Models::CampaignUpdateResponse::Campaign::CallRetryConfig?,
29
+ created_by: Revox::Models::CampaignUpdateResponse::Campaign::CreatedBy?,
30
+ from_phone_number: String?,
31
+ funnel_stats: Revox::Models::CampaignUpdateResponse::Campaign::FunnelStats,
32
+ max_concurrent_calls: Float?,
33
+ metadata_keys: ::Array[String],
34
+ row_stats: Revox::Models::CampaignUpdateResponse::Campaign::RowStats,
35
+ scheduled_at: top,
36
+ structured_output_extraction: Revox::Models::CampaignUpdateResponse::Campaign::structured_output_extraction
37
+ }
38
+
39
+ class Campaign < Revox::Internal::Type::BaseModel
40
+ attr_accessor id: String
41
+
42
+ attr_accessor assistant_id: String
43
+
44
+ attr_accessor created_at: top
45
+
46
+ attr_accessor is_cancelled: bool
47
+
48
+ attr_accessor name: String
49
+
50
+ attr_accessor organization_id: String
51
+
52
+ attr_accessor status: Revox::Models::CampaignUpdateResponse::Campaign::status
53
+
54
+ attr_accessor updated_at: top
55
+
56
+ attr_reader assistant: Revox::Models::CampaignUpdateResponse::Campaign::Assistant?
57
+
58
+ def assistant=: (
59
+ Revox::Models::CampaignUpdateResponse::Campaign::Assistant
60
+ ) -> Revox::Models::CampaignUpdateResponse::Campaign::Assistant
61
+
62
+ attr_accessor call_retry_config: Revox::Models::CampaignUpdateResponse::Campaign::CallRetryConfig?
63
+
64
+ attr_accessor created_by: Revox::Models::CampaignUpdateResponse::Campaign::CreatedBy?
65
+
66
+ attr_accessor from_phone_number: String?
67
+
68
+ attr_reader funnel_stats: Revox::Models::CampaignUpdateResponse::Campaign::FunnelStats?
69
+
70
+ def funnel_stats=: (
71
+ Revox::Models::CampaignUpdateResponse::Campaign::FunnelStats
72
+ ) -> Revox::Models::CampaignUpdateResponse::Campaign::FunnelStats
73
+
74
+ attr_accessor max_concurrent_calls: Float?
75
+
76
+ attr_reader metadata_keys: ::Array[String]?
77
+
78
+ def metadata_keys=: (::Array[String]) -> ::Array[String]
79
+
80
+ attr_reader row_stats: Revox::Models::CampaignUpdateResponse::Campaign::RowStats?
81
+
82
+ def row_stats=: (
83
+ Revox::Models::CampaignUpdateResponse::Campaign::RowStats
84
+ ) -> Revox::Models::CampaignUpdateResponse::Campaign::RowStats
85
+
86
+ attr_reader scheduled_at: top?
87
+
88
+ def scheduled_at=: (top) -> top
89
+
90
+ attr_reader structured_output_extraction: Revox::Models::CampaignUpdateResponse::Campaign::structured_output_extraction?
91
+
92
+ def structured_output_extraction=: (
93
+ Revox::Models::CampaignUpdateResponse::Campaign::structured_output_extraction
94
+ ) -> Revox::Models::CampaignUpdateResponse::Campaign::structured_output_extraction
95
+
96
+ def initialize: (
97
+ id: String,
98
+ assistant_id: String,
99
+ created_at: top,
100
+ is_cancelled: bool,
101
+ name: String,
102
+ organization_id: String,
103
+ status: Revox::Models::CampaignUpdateResponse::Campaign::status,
104
+ updated_at: top,
105
+ ?assistant: Revox::Models::CampaignUpdateResponse::Campaign::Assistant,
106
+ ?call_retry_config: Revox::Models::CampaignUpdateResponse::Campaign::CallRetryConfig?,
107
+ ?created_by: Revox::Models::CampaignUpdateResponse::Campaign::CreatedBy?,
108
+ ?from_phone_number: String?,
109
+ ?funnel_stats: Revox::Models::CampaignUpdateResponse::Campaign::FunnelStats,
110
+ ?max_concurrent_calls: Float?,
111
+ ?metadata_keys: ::Array[String],
112
+ ?row_stats: Revox::Models::CampaignUpdateResponse::Campaign::RowStats,
113
+ ?scheduled_at: top,
114
+ ?structured_output_extraction: Revox::Models::CampaignUpdateResponse::Campaign::structured_output_extraction
115
+ ) -> void
116
+
117
+ def to_hash: -> {
118
+ id: String,
119
+ assistant_id: String,
120
+ created_at: top,
121
+ is_cancelled: bool,
122
+ name: String,
123
+ organization_id: String,
124
+ status: Revox::Models::CampaignUpdateResponse::Campaign::status,
125
+ updated_at: top,
126
+ assistant: Revox::Models::CampaignUpdateResponse::Campaign::Assistant,
127
+ call_retry_config: Revox::Models::CampaignUpdateResponse::Campaign::CallRetryConfig?,
128
+ created_by: Revox::Models::CampaignUpdateResponse::Campaign::CreatedBy?,
129
+ from_phone_number: String?,
130
+ funnel_stats: Revox::Models::CampaignUpdateResponse::Campaign::FunnelStats,
131
+ max_concurrent_calls: Float?,
132
+ metadata_keys: ::Array[String],
133
+ row_stats: Revox::Models::CampaignUpdateResponse::Campaign::RowStats,
134
+ scheduled_at: top,
135
+ structured_output_extraction: Revox::Models::CampaignUpdateResponse::Campaign::structured_output_extraction
136
+ }
137
+
138
+ type status = :running | :paused | :completed
139
+
140
+ module Status
141
+ extend Revox::Internal::Type::Enum
142
+
143
+ RUNNING: :running
144
+ PAUSED: :paused
145
+ COMPLETED: :completed
146
+
147
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::status]
148
+ end
149
+
150
+ type assistant =
151
+ {
152
+ id: String,
153
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::after_call_sms_outcome]?,
154
+ after_call_sms_prompt: String?,
155
+ background_sound: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::background_sound?,
156
+ background_sound_volume: Float,
157
+ calendly: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Calendly?,
158
+ call_retry_config: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CallRetryConfig?,
159
+ cartesia_dictionary_pronunciation_id: String?,
160
+ created_at: top,
161
+ custom_tools: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool]?,
162
+ email_notification_address: String?,
163
+ email_notification_outcomes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::email_notification_outcome]?,
164
+ end_of_call_sentence: String?,
165
+ first_sentence: String?,
166
+ first_sentence_delay_ms: Integer,
167
+ first_sentence_mode: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::first_sentence_mode,
168
+ from_phone_number: String?,
169
+ human_transfer_mode: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::human_transfer_mode?,
170
+ ivr_navigation_enabled: bool,
171
+ llm_model: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::llm_model,
172
+ logo_url: String?,
173
+ max_call_duration_secs: Float,
174
+ max_duration_end_message: String?,
175
+ name: String,
176
+ organization_id: String,
177
+ position: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Position?,
178
+ precall_lookup_url: String?,
179
+ prompt: String,
180
+ prompt_flow: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow?,
181
+ slack: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Slack?,
182
+ sms_enabled: bool,
183
+ sms_template: String?,
184
+ structured_output_config: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::StructuredOutputConfig]?,
185
+ structured_output_prompt: String?,
186
+ stt_context: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::SttContext?,
187
+ stt_model: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::stt_model,
188
+ thinking_sound: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::thinking_sound?,
189
+ thinking_sound_probability: Float,
190
+ thinking_sound_volume: Float,
191
+ transfer_destinations: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::TransferDestination]?,
192
+ type: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::type_,
193
+ updated_at: top,
194
+ voice: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Voice?,
195
+ voicemail_message: String?,
196
+ voicemail_sms_prompt: String?,
197
+ warm_transfer_summary_instructions: String?,
198
+ webhook_url: String?,
199
+ zoho: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Zoho?,
200
+ created_by: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CreatedBy?,
201
+ faq_items: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::FaqItem],
202
+ is_inbound_receptionist: bool,
203
+ is_realestate_assistant: bool,
204
+ pending_faq_count: Float
205
+ }
206
+
207
+ class Assistant < Revox::Internal::Type::BaseModel
208
+ attr_accessor id: String
209
+
210
+ attr_accessor after_call_sms_outcomes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::after_call_sms_outcome]?
211
+
212
+ attr_accessor after_call_sms_prompt: String?
213
+
214
+ attr_accessor background_sound: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::background_sound?
215
+
216
+ attr_accessor background_sound_volume: Float
217
+
218
+ attr_accessor calendly: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Calendly?
219
+
220
+ attr_accessor call_retry_config: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CallRetryConfig?
221
+
222
+ attr_accessor cartesia_dictionary_pronunciation_id: String?
223
+
224
+ attr_accessor created_at: top
225
+
226
+ attr_accessor custom_tools: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool]?
227
+
228
+ attr_accessor email_notification_address: String?
229
+
230
+ attr_accessor email_notification_outcomes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::email_notification_outcome]?
231
+
232
+ attr_accessor end_of_call_sentence: String?
233
+
234
+ attr_accessor first_sentence: String?
235
+
236
+ attr_accessor first_sentence_delay_ms: Integer
237
+
238
+ attr_accessor first_sentence_mode: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::first_sentence_mode
239
+
240
+ attr_accessor from_phone_number: String?
241
+
242
+ attr_accessor human_transfer_mode: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::human_transfer_mode?
243
+
244
+ attr_accessor ivr_navigation_enabled: bool
245
+
246
+ attr_accessor llm_model: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::llm_model
247
+
248
+ attr_accessor logo_url: String?
249
+
250
+ attr_accessor max_call_duration_secs: Float
251
+
252
+ attr_accessor max_duration_end_message: String?
253
+
254
+ attr_accessor name: String
255
+
256
+ attr_accessor organization_id: String
257
+
258
+ attr_accessor position: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Position?
259
+
260
+ attr_accessor precall_lookup_url: String?
261
+
262
+ attr_accessor prompt: String
263
+
264
+ attr_accessor prompt_flow: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow?
265
+
266
+ attr_accessor slack: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Slack?
267
+
268
+ attr_accessor sms_enabled: bool
269
+
270
+ attr_accessor sms_template: String?
271
+
272
+ attr_accessor structured_output_config: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::StructuredOutputConfig]?
273
+
274
+ attr_accessor structured_output_prompt: String?
275
+
276
+ attr_accessor stt_context: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::SttContext?
277
+
278
+ attr_accessor stt_model: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::stt_model
279
+
280
+ attr_accessor thinking_sound: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::thinking_sound?
281
+
282
+ attr_accessor thinking_sound_probability: Float
283
+
284
+ attr_accessor thinking_sound_volume: Float
285
+
286
+ attr_accessor transfer_destinations: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::TransferDestination]?
287
+
288
+ attr_accessor type: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::type_
289
+
290
+ attr_accessor updated_at: top
291
+
292
+ attr_accessor voice: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Voice?
293
+
294
+ attr_accessor voicemail_message: String?
295
+
296
+ attr_accessor voicemail_sms_prompt: String?
297
+
298
+ attr_accessor warm_transfer_summary_instructions: String?
299
+
300
+ attr_accessor webhook_url: String?
301
+
302
+ attr_accessor zoho: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Zoho?
303
+
304
+ attr_accessor created_by: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CreatedBy?
305
+
306
+ attr_reader faq_items: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::FaqItem]?
307
+
308
+ def faq_items=: (
309
+ ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::FaqItem]
310
+ ) -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::FaqItem]
311
+
312
+ attr_reader is_inbound_receptionist: bool?
313
+
314
+ def is_inbound_receptionist=: (bool) -> bool
315
+
316
+ attr_reader is_realestate_assistant: bool?
317
+
318
+ def is_realestate_assistant=: (bool) -> bool
319
+
320
+ attr_reader pending_faq_count: Float?
321
+
322
+ def pending_faq_count=: (Float) -> Float
323
+
324
+ def initialize: (
325
+ id: String,
326
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::after_call_sms_outcome]?,
327
+ after_call_sms_prompt: String?,
328
+ background_sound: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::background_sound?,
329
+ background_sound_volume: Float,
330
+ calendly: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Calendly?,
331
+ call_retry_config: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CallRetryConfig?,
332
+ cartesia_dictionary_pronunciation_id: String?,
333
+ created_at: top,
334
+ custom_tools: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool]?,
335
+ email_notification_address: String?,
336
+ email_notification_outcomes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::email_notification_outcome]?,
337
+ end_of_call_sentence: String?,
338
+ first_sentence: String?,
339
+ first_sentence_delay_ms: Integer,
340
+ first_sentence_mode: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::first_sentence_mode,
341
+ from_phone_number: String?,
342
+ human_transfer_mode: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::human_transfer_mode?,
343
+ ivr_navigation_enabled: bool,
344
+ llm_model: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::llm_model,
345
+ logo_url: String?,
346
+ max_call_duration_secs: Float,
347
+ max_duration_end_message: String?,
348
+ name: String,
349
+ organization_id: String,
350
+ position: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Position?,
351
+ precall_lookup_url: String?,
352
+ prompt: String,
353
+ prompt_flow: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow?,
354
+ slack: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Slack?,
355
+ sms_enabled: bool,
356
+ sms_template: String?,
357
+ structured_output_config: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::StructuredOutputConfig]?,
358
+ structured_output_prompt: String?,
359
+ stt_context: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::SttContext?,
360
+ stt_model: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::stt_model,
361
+ thinking_sound: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::thinking_sound?,
362
+ thinking_sound_probability: Float,
363
+ thinking_sound_volume: Float,
364
+ transfer_destinations: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::TransferDestination]?,
365
+ type: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::type_,
366
+ updated_at: top,
367
+ voice: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Voice?,
368
+ voicemail_message: String?,
369
+ voicemail_sms_prompt: String?,
370
+ warm_transfer_summary_instructions: String?,
371
+ webhook_url: String?,
372
+ zoho: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Zoho?,
373
+ ?created_by: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CreatedBy?,
374
+ ?faq_items: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::FaqItem],
375
+ ?is_inbound_receptionist: bool,
376
+ ?is_realestate_assistant: bool,
377
+ ?pending_faq_count: Float
378
+ ) -> void
379
+
380
+ def to_hash: -> {
381
+ id: String,
382
+ after_call_sms_outcomes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::after_call_sms_outcome]?,
383
+ after_call_sms_prompt: String?,
384
+ background_sound: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::background_sound?,
385
+ background_sound_volume: Float,
386
+ calendly: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Calendly?,
387
+ call_retry_config: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CallRetryConfig?,
388
+ cartesia_dictionary_pronunciation_id: String?,
389
+ created_at: top,
390
+ custom_tools: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool]?,
391
+ email_notification_address: String?,
392
+ email_notification_outcomes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::email_notification_outcome]?,
393
+ end_of_call_sentence: String?,
394
+ first_sentence: String?,
395
+ first_sentence_delay_ms: Integer,
396
+ first_sentence_mode: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::first_sentence_mode,
397
+ from_phone_number: String?,
398
+ human_transfer_mode: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::human_transfer_mode?,
399
+ ivr_navigation_enabled: bool,
400
+ llm_model: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::llm_model,
401
+ logo_url: String?,
402
+ max_call_duration_secs: Float,
403
+ max_duration_end_message: String?,
404
+ name: String,
405
+ organization_id: String,
406
+ position: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Position?,
407
+ precall_lookup_url: String?,
408
+ prompt: String,
409
+ prompt_flow: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow?,
410
+ slack: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Slack?,
411
+ sms_enabled: bool,
412
+ sms_template: String?,
413
+ structured_output_config: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::StructuredOutputConfig]?,
414
+ structured_output_prompt: String?,
415
+ stt_context: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::SttContext?,
416
+ stt_model: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::stt_model,
417
+ thinking_sound: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::thinking_sound?,
418
+ thinking_sound_probability: Float,
419
+ thinking_sound_volume: Float,
420
+ transfer_destinations: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::TransferDestination]?,
421
+ type: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::type_,
422
+ updated_at: top,
423
+ voice: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Voice?,
424
+ voicemail_message: String?,
425
+ voicemail_sms_prompt: String?,
426
+ warm_transfer_summary_instructions: String?,
427
+ webhook_url: String?,
428
+ zoho: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Zoho?,
429
+ created_by: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CreatedBy?,
430
+ faq_items: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::FaqItem],
431
+ is_inbound_receptionist: bool,
432
+ is_realestate_assistant: bool,
433
+ pending_faq_count: Float
434
+ }
435
+
436
+ type after_call_sms_outcome =
437
+ :not_interested
438
+ | :interested
439
+ | :completed
440
+ | :requested_callback_later
441
+ | :none
442
+
443
+ module AfterCallSMSOutcome
444
+ extend Revox::Internal::Type::Enum
445
+
446
+ NOT_INTERESTED: :not_interested
447
+ INTERESTED: :interested
448
+ COMPLETED: :completed
449
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
450
+ NONE: :none
451
+
452
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::after_call_sms_outcome]
453
+ end
454
+
455
+ type background_sound = :"audio/office.ogg"
456
+
457
+ module BackgroundSound
458
+ extend Revox::Internal::Type::Enum
459
+
460
+ AUDIO_OFFICE_OGG: :"audio/office.ogg"
461
+
462
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::background_sound]
463
+ end
464
+
465
+ type calendly = { connection_id: String, event_type_id: String }
466
+
467
+ class Calendly < Revox::Internal::Type::BaseModel
468
+ attr_accessor connection_id: String
469
+
470
+ attr_accessor event_type_id: String
471
+
472
+ def initialize: (
473
+ connection_id: String,
474
+ event_type_id: String
475
+ ) -> void
476
+
477
+ def to_hash: -> { connection_id: String, event_type_id: String }
478
+ end
479
+
480
+ type call_retry_config =
481
+ {
482
+ allowed_days: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CallRetryConfig::allowed_day],
483
+ call_twice_in_a_row: bool,
484
+ calling_windows: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CallRetryConfig::CallingWindow],
485
+ max_retry_attempts: Integer,
486
+ timezone: String?
487
+ }
488
+
489
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
490
+ attr_accessor allowed_days: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CallRetryConfig::allowed_day]
491
+
492
+ attr_accessor call_twice_in_a_row: bool
493
+
494
+ attr_accessor calling_windows: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CallRetryConfig::CallingWindow]
495
+
496
+ attr_accessor max_retry_attempts: Integer
497
+
498
+ attr_accessor timezone: String?
499
+
500
+ def initialize: (
501
+ allowed_days: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CallRetryConfig::allowed_day],
502
+ call_twice_in_a_row: bool,
503
+ calling_windows: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CallRetryConfig::CallingWindow],
504
+ max_retry_attempts: Integer,
505
+ ?timezone: String?
506
+ ) -> void
507
+
508
+ def to_hash: -> {
509
+ allowed_days: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CallRetryConfig::allowed_day],
510
+ call_twice_in_a_row: bool,
511
+ calling_windows: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CallRetryConfig::CallingWindow],
512
+ max_retry_attempts: Integer,
513
+ timezone: String?
514
+ }
515
+
516
+ type allowed_day =
517
+ :monday
518
+ | :tuesday
519
+ | :wednesday
520
+ | :thursday
521
+ | :friday
522
+ | :saturday
523
+ | :sunday
524
+
525
+ module AllowedDay
526
+ extend Revox::Internal::Type::Enum
527
+
528
+ MONDAY: :monday
529
+ TUESDAY: :tuesday
530
+ WEDNESDAY: :wednesday
531
+ THURSDAY: :thursday
532
+ FRIDAY: :friday
533
+ SATURDAY: :saturday
534
+ SUNDAY: :sunday
535
+
536
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CallRetryConfig::allowed_day]
537
+ end
538
+
539
+ type calling_window =
540
+ {
541
+ calling_window_end_time: String,
542
+ calling_window_start_time: String,
543
+ retry_delay_seconds: Integer
544
+ }
545
+
546
+ class CallingWindow < Revox::Internal::Type::BaseModel
547
+ attr_accessor calling_window_end_time: String
548
+
549
+ attr_accessor calling_window_start_time: String
550
+
551
+ attr_accessor retry_delay_seconds: Integer
552
+
553
+ def initialize: (
554
+ calling_window_end_time: String,
555
+ calling_window_start_time: String,
556
+ retry_delay_seconds: Integer
557
+ ) -> void
558
+
559
+ def to_hash: -> {
560
+ calling_window_end_time: String,
561
+ calling_window_start_time: String,
562
+ retry_delay_seconds: Integer
563
+ }
564
+ end
565
+ end
566
+
567
+ type custom_tool =
568
+ {
569
+ body_template: String?,
570
+ description: String,
571
+ headers: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::Header],
572
+ input_schema: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::InputSchema],
573
+ method_: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::method_,
574
+ name: String,
575
+ query_params: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::QueryParam],
576
+ url: String
577
+ }
578
+
579
+ class CustomTool < Revox::Internal::Type::BaseModel
580
+ attr_accessor body_template: String?
581
+
582
+ attr_accessor description: String
583
+
584
+ attr_accessor headers: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::Header]
585
+
586
+ attr_accessor input_schema: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::InputSchema]
587
+
588
+ attr_accessor method_: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::method_
589
+
590
+ attr_accessor name: String
591
+
592
+ attr_accessor query_params: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::QueryParam]
593
+
594
+ attr_accessor url: String
595
+
596
+ def initialize: (
597
+ body_template: String?,
598
+ description: String,
599
+ headers: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::Header],
600
+ input_schema: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::InputSchema],
601
+ method_: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::method_,
602
+ name: String,
603
+ query_params: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::QueryParam],
604
+ url: String
605
+ ) -> void
606
+
607
+ def to_hash: -> {
608
+ body_template: String?,
609
+ description: String,
610
+ headers: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::Header],
611
+ input_schema: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::InputSchema],
612
+ method_: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::method_,
613
+ name: String,
614
+ query_params: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::QueryParam],
615
+ url: String
616
+ }
617
+
618
+ type header = { key: String, value: String }
619
+
620
+ class Header < Revox::Internal::Type::BaseModel
621
+ attr_accessor key: String
622
+
623
+ attr_accessor value: String
624
+
625
+ def initialize: (key: String, value: String) -> void
626
+
627
+ def to_hash: -> { key: String, value: String }
628
+ end
629
+
630
+ type input_schema =
631
+ {
632
+ name: String,
633
+ required: bool,
634
+ type: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::InputSchema::type_,
635
+ description: String,
636
+ enum_options: ::Array[String]
637
+ }
638
+
639
+ class InputSchema < Revox::Internal::Type::BaseModel
640
+ attr_accessor name: String
641
+
642
+ attr_accessor required: bool
643
+
644
+ attr_accessor type: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::InputSchema::type_
645
+
646
+ attr_reader description: String?
647
+
648
+ def description=: (String) -> String
649
+
650
+ attr_reader enum_options: ::Array[String]?
651
+
652
+ def enum_options=: (::Array[String]) -> ::Array[String]
653
+
654
+ def initialize: (
655
+ name: String,
656
+ required: bool,
657
+ type: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::InputSchema::type_,
658
+ ?description: String,
659
+ ?enum_options: ::Array[String]
660
+ ) -> void
661
+
662
+ def to_hash: -> {
663
+ name: String,
664
+ required: bool,
665
+ type: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::InputSchema::type_,
666
+ description: String,
667
+ enum_options: ::Array[String]
668
+ }
669
+
670
+ type type_ =
671
+ :string | :number | :boolean | :enum | :date | :datetime
672
+
673
+ module Type
674
+ extend Revox::Internal::Type::Enum
675
+
676
+ STRING: :string
677
+ NUMBER: :number
678
+ BOOLEAN: :boolean
679
+ ENUM: :enum
680
+ DATE: :date
681
+ DATETIME: :datetime
682
+
683
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::InputSchema::type_]
684
+ end
685
+ end
686
+
687
+ type method_ = :GET | :POST | :PUT | :PATCH | :DELETE
688
+
689
+ module Method
690
+ extend Revox::Internal::Type::Enum
691
+
692
+ GET: :GET
693
+ POST: :POST
694
+ PUT: :PUT
695
+ PATCH: :PATCH
696
+ DELETE: :DELETE
697
+
698
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::CustomTool::method_]
699
+ end
700
+
701
+ type query_param = { key: String, value: String }
702
+
703
+ class QueryParam < Revox::Internal::Type::BaseModel
704
+ attr_accessor key: String
705
+
706
+ attr_accessor value: String
707
+
708
+ def initialize: (key: String, value: String) -> void
709
+
710
+ def to_hash: -> { key: String, value: String }
711
+ end
712
+ end
713
+
714
+ type email_notification_outcome =
715
+ :not_interested
716
+ | :interested
717
+ | :completed
718
+ | :requested_callback_later
719
+ | :none
720
+
721
+ module EmailNotificationOutcome
722
+ extend Revox::Internal::Type::Enum
723
+
724
+ NOT_INTERESTED: :not_interested
725
+ INTERESTED: :interested
726
+ COMPLETED: :completed
727
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
728
+ NONE: :none
729
+
730
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::email_notification_outcome]
731
+ end
732
+
733
+ type first_sentence_mode = :generated | :static | :none
734
+
735
+ module FirstSentenceMode
736
+ extend Revox::Internal::Type::Enum
737
+
738
+ GENERATED: :generated
739
+ STATIC: :static
740
+ NONE: :none
741
+
742
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::first_sentence_mode]
743
+ end
744
+
745
+ type human_transfer_mode = :warm | :cold
746
+
747
+ module HumanTransferMode
748
+ extend Revox::Internal::Type::Enum
749
+
750
+ WARM: :warm
751
+ COLD: :cold
752
+
753
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::human_transfer_mode]
754
+ end
755
+
756
+ type llm_model =
757
+ Revox::Models::CampaignUpdateResponse::Campaign::Assistant::LlmModel::UnionMember0
758
+ | Revox::Models::CampaignUpdateResponse::Campaign::Assistant::LlmModel::UnionMember1
759
+ | Revox::Models::CampaignUpdateResponse::Campaign::Assistant::LlmModel::UnionMember2
760
+ | Revox::Models::CampaignUpdateResponse::Campaign::Assistant::LlmModel::UnionMember3
761
+
762
+ module LlmModel
763
+ extend Revox::Internal::Type::Union
764
+
765
+ type union_member0 =
766
+ {
767
+ name: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::LlmModel::UnionMember0::name_,
768
+ type: :"dedicated-instance"
769
+ }
770
+
771
+ class UnionMember0 < Revox::Internal::Type::BaseModel
772
+ attr_accessor name: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::LlmModel::UnionMember0::name_
773
+
774
+ attr_accessor type: :"dedicated-instance"
775
+
776
+ def initialize: (
777
+ name: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::LlmModel::UnionMember0::name_,
778
+ ?type: :"dedicated-instance"
779
+ ) -> void
780
+
781
+ def to_hash: -> {
782
+ name: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::LlmModel::UnionMember0::name_,
783
+ type: :"dedicated-instance"
784
+ }
785
+
786
+ type name_ = :"gpt-4.1" | :"ministral-3-8b-instruct"
787
+
788
+ module Name
789
+ extend Revox::Internal::Type::Enum
790
+
791
+ GPT_4_1: :"gpt-4.1"
792
+ MINISTRAL_3_8B_INSTRUCT: :"ministral-3-8b-instruct"
793
+
794
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::LlmModel::UnionMember0::name_]
795
+ end
796
+ end
797
+
798
+ type union_member1 =
799
+ {
800
+ openrouter_model_id: String,
801
+ openrouter_provider: String,
802
+ type: :openrouter
803
+ }
804
+
805
+ class UnionMember1 < Revox::Internal::Type::BaseModel
806
+ attr_accessor openrouter_model_id: String
807
+
808
+ attr_accessor openrouter_provider: String
809
+
810
+ attr_accessor type: :openrouter
811
+
812
+ def initialize: (
813
+ openrouter_model_id: String,
814
+ openrouter_provider: String,
815
+ ?type: :openrouter
816
+ ) -> void
817
+
818
+ def to_hash: -> {
819
+ openrouter_model_id: String,
820
+ openrouter_provider: String,
821
+ type: :openrouter
822
+ }
823
+ end
824
+
825
+ type union_member2 =
826
+ {
827
+ api_key: String,
828
+ api_url: String,
829
+ model_name: String,
830
+ type: :custom
831
+ }
832
+
833
+ class UnionMember2 < Revox::Internal::Type::BaseModel
834
+ attr_accessor api_key: String
835
+
836
+ attr_accessor api_url: String
837
+
838
+ attr_accessor model_name: String
839
+
840
+ attr_accessor type: :custom
841
+
842
+ def initialize: (
843
+ api_key: String,
844
+ api_url: String,
845
+ model_name: String,
846
+ ?type: :custom
847
+ ) -> void
848
+
849
+ def to_hash: -> {
850
+ api_key: String,
851
+ api_url: String,
852
+ model_name: String,
853
+ type: :custom
854
+ }
855
+ end
856
+
857
+ type union_member3 =
858
+ {
859
+ provider: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::LlmModel::UnionMember3::provider,
860
+ realtime_model_id: String,
861
+ type: :realtime,
862
+ realtime_voice_id: String
863
+ }
864
+
865
+ class UnionMember3 < Revox::Internal::Type::BaseModel
866
+ attr_accessor provider: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::LlmModel::UnionMember3::provider
867
+
868
+ attr_accessor realtime_model_id: String
869
+
870
+ attr_accessor type: :realtime
871
+
872
+ attr_reader realtime_voice_id: String?
873
+
874
+ def realtime_voice_id=: (String) -> String
875
+
876
+ def initialize: (
877
+ provider: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::LlmModel::UnionMember3::provider,
878
+ realtime_model_id: String,
879
+ ?realtime_voice_id: String,
880
+ ?type: :realtime
881
+ ) -> void
882
+
883
+ def to_hash: -> {
884
+ provider: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::LlmModel::UnionMember3::provider,
885
+ realtime_model_id: String,
886
+ type: :realtime,
887
+ realtime_voice_id: String
888
+ }
889
+
890
+ type provider = :openai | :google
891
+
892
+ module Provider
893
+ extend Revox::Internal::Type::Enum
894
+
895
+ OPENAI: :openai
896
+ GOOGLE: :google
897
+
898
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::LlmModel::UnionMember3::provider]
899
+ end
900
+ end
901
+
902
+ def self?.variants: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::llm_model]
903
+ end
904
+
905
+ type position = { x: Float, y_: Float }
906
+
907
+ class Position < Revox::Internal::Type::BaseModel
908
+ attr_accessor x: Float
909
+
910
+ attr_accessor y_: Float
911
+
912
+ def initialize: (x: Float, y_: Float) -> void
913
+
914
+ def to_hash: -> { x: Float, y_: Float }
915
+ end
916
+
917
+ type prompt_flow =
918
+ {
919
+ edges: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow::Edge],
920
+ nodes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow::Node]
921
+ }
922
+
923
+ class PromptFlow < Revox::Internal::Type::BaseModel
924
+ attr_accessor edges: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow::Edge]
925
+
926
+ attr_accessor nodes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow::Node]
927
+
928
+ def initialize: (
929
+ edges: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow::Edge],
930
+ nodes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow::Node]
931
+ ) -> void
932
+
933
+ def to_hash: -> {
934
+ edges: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow::Edge],
935
+ nodes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow::Node]
936
+ }
937
+
938
+ type edge = { id: String, source: String, target: String }
939
+
940
+ class Edge < Revox::Internal::Type::BaseModel
941
+ attr_accessor id: String
942
+
943
+ attr_accessor source: String
944
+
945
+ attr_accessor target: String
946
+
947
+ def initialize: (
948
+ id: String,
949
+ source: String,
950
+ target: String
951
+ ) -> void
952
+
953
+ def to_hash: -> { id: String, source: String, target: String }
954
+ end
955
+
956
+ type node =
957
+ {
958
+ id: String,
959
+ data: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow::Node::Data,
960
+ position: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow::Node::Position,
961
+ type: :promptBlock
962
+ }
963
+
964
+ class Node < Revox::Internal::Type::BaseModel
965
+ attr_accessor id: String
966
+
967
+ attr_accessor data: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow::Node::Data
968
+
969
+ attr_accessor position: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow::Node::Position
970
+
971
+ attr_accessor type: :promptBlock
972
+
973
+ def initialize: (
974
+ id: String,
975
+ data: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow::Node::Data,
976
+ position: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow::Node::Position,
977
+ ?type: :promptBlock
978
+ ) -> void
979
+
980
+ def to_hash: -> {
981
+ id: String,
982
+ data: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow::Node::Data,
983
+ position: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::PromptFlow::Node::Position,
984
+ type: :promptBlock
985
+ }
986
+
987
+ type data = { body: String, title: String }
988
+
989
+ class Data < Revox::Internal::Type::BaseModel
990
+ attr_accessor body: String
991
+
992
+ attr_accessor title: String
993
+
994
+ def initialize: (body: String, title: String) -> void
995
+
996
+ def to_hash: -> { body: String, title: String }
997
+ end
998
+
999
+ type position = { x: Float, y_: Float }
1000
+
1001
+ class Position < Revox::Internal::Type::BaseModel
1002
+ attr_accessor x: Float
1003
+
1004
+ attr_accessor y_: Float
1005
+
1006
+ def initialize: (x: Float, y_: Float) -> void
1007
+
1008
+ def to_hash: -> { x: Float, y_: Float }
1009
+ end
1010
+ end
1011
+ end
1012
+
1013
+ type slack =
1014
+ {
1015
+ channels: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Slack::Channel],
1016
+ connection_id: String,
1017
+ outcomes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Slack::outcome],
1018
+ template: String?
1019
+ }
1020
+
1021
+ class Slack < Revox::Internal::Type::BaseModel
1022
+ attr_accessor channels: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Slack::Channel]
1023
+
1024
+ attr_accessor connection_id: String
1025
+
1026
+ attr_accessor outcomes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Slack::outcome]
1027
+
1028
+ attr_accessor template: String?
1029
+
1030
+ def initialize: (
1031
+ channels: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Slack::Channel],
1032
+ connection_id: String,
1033
+ outcomes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Slack::outcome],
1034
+ ?template: String?
1035
+ ) -> void
1036
+
1037
+ def to_hash: -> {
1038
+ channels: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Slack::Channel],
1039
+ connection_id: String,
1040
+ outcomes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Slack::outcome],
1041
+ template: String?
1042
+ }
1043
+
1044
+ type channel = { id: String, name: String? }
1045
+
1046
+ class Channel < Revox::Internal::Type::BaseModel
1047
+ attr_accessor id: String
1048
+
1049
+ attr_accessor name: String?
1050
+
1051
+ def initialize: (id: String, ?name: String?) -> void
1052
+
1053
+ def to_hash: -> { id: String, name: String? }
1054
+ end
1055
+
1056
+ type outcome =
1057
+ :not_interested
1058
+ | :interested
1059
+ | :completed
1060
+ | :requested_callback_later
1061
+ | :none
1062
+
1063
+ module Outcome
1064
+ extend Revox::Internal::Type::Enum
1065
+
1066
+ NOT_INTERESTED: :not_interested
1067
+ INTERESTED: :interested
1068
+ COMPLETED: :completed
1069
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
1070
+ NONE: :none
1071
+
1072
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Slack::outcome]
1073
+ end
1074
+ end
1075
+
1076
+ type structured_output_config =
1077
+ {
1078
+ name: String,
1079
+ required: bool,
1080
+ type: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::StructuredOutputConfig::type_,
1081
+ description: String,
1082
+ enum_options: ::Array[String]
1083
+ }
1084
+
1085
+ class StructuredOutputConfig < Revox::Internal::Type::BaseModel
1086
+ attr_accessor name: String
1087
+
1088
+ attr_accessor required: bool
1089
+
1090
+ attr_accessor type: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::StructuredOutputConfig::type_
1091
+
1092
+ attr_reader description: String?
1093
+
1094
+ def description=: (String) -> String
1095
+
1096
+ attr_reader enum_options: ::Array[String]?
1097
+
1098
+ def enum_options=: (::Array[String]) -> ::Array[String]
1099
+
1100
+ def initialize: (
1101
+ name: String,
1102
+ required: bool,
1103
+ type: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::StructuredOutputConfig::type_,
1104
+ ?description: String,
1105
+ ?enum_options: ::Array[String]
1106
+ ) -> void
1107
+
1108
+ def to_hash: -> {
1109
+ name: String,
1110
+ required: bool,
1111
+ type: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::StructuredOutputConfig::type_,
1112
+ description: String,
1113
+ enum_options: ::Array[String]
1114
+ }
1115
+
1116
+ type type_ =
1117
+ :string | :number | :boolean | :enum | :date | :datetime
1118
+
1119
+ module Type
1120
+ extend Revox::Internal::Type::Enum
1121
+
1122
+ STRING: :string
1123
+ NUMBER: :number
1124
+ BOOLEAN: :boolean
1125
+ ENUM: :enum
1126
+ DATE: :date
1127
+ DATETIME: :datetime
1128
+
1129
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::StructuredOutputConfig::type_]
1130
+ end
1131
+ end
1132
+
1133
+ type stt_context =
1134
+ {
1135
+ general: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::SttContext::General],
1136
+ terms: ::Array[String]
1137
+ }
1138
+
1139
+ class SttContext < Revox::Internal::Type::BaseModel
1140
+ attr_accessor general: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::SttContext::General]
1141
+
1142
+ attr_accessor terms: ::Array[String]
1143
+
1144
+ def initialize: (
1145
+ general: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::SttContext::General],
1146
+ terms: ::Array[String]
1147
+ ) -> void
1148
+
1149
+ def to_hash: -> {
1150
+ general: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::SttContext::General],
1151
+ terms: ::Array[String]
1152
+ }
1153
+
1154
+ type general = { key: String, value: String }
1155
+
1156
+ class General < Revox::Internal::Type::BaseModel
1157
+ attr_accessor key: String
1158
+
1159
+ attr_accessor value: String
1160
+
1161
+ def initialize: (key: String, value: String) -> void
1162
+
1163
+ def to_hash: -> { key: String, value: String }
1164
+ end
1165
+ end
1166
+
1167
+ type stt_model = :"stt-rt-v4" | :"stt-rt-v5"
1168
+
1169
+ module SttModel
1170
+ extend Revox::Internal::Type::Enum
1171
+
1172
+ STT_RT_V4: :"stt-rt-v4"
1173
+ STT_RT_V5: :"stt-rt-v5"
1174
+
1175
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::stt_model]
1176
+ end
1177
+
1178
+ type thinking_sound =
1179
+ :"city-ambience.ogg"
1180
+ | :"forest-ambience.ogg"
1181
+ | :"office-ambience.ogg"
1182
+ | :"crowded-room.ogg"
1183
+ | :"keyboard-typing.ogg"
1184
+ | :"keyboard-typing2.ogg"
1185
+ | :"hold_music.ogg"
1186
+
1187
+ module ThinkingSound
1188
+ extend Revox::Internal::Type::Enum
1189
+
1190
+ CITY_AMBIENCE_OGG: :"city-ambience.ogg"
1191
+ FOREST_AMBIENCE_OGG: :"forest-ambience.ogg"
1192
+ OFFICE_AMBIENCE_OGG: :"office-ambience.ogg"
1193
+ CROWDED_ROOM_OGG: :"crowded-room.ogg"
1194
+ KEYBOARD_TYPING_OGG: :"keyboard-typing.ogg"
1195
+ KEYBOARD_TYPING2_OGG: :"keyboard-typing2.ogg"
1196
+ HOLD_MUSIC_OGG: :"hold_music.ogg"
1197
+
1198
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::thinking_sound]
1199
+ end
1200
+
1201
+ type transfer_destination = { label: String, phone_number: String }
1202
+
1203
+ class TransferDestination < Revox::Internal::Type::BaseModel
1204
+ attr_accessor label: String
1205
+
1206
+ attr_accessor phone_number: String
1207
+
1208
+ def initialize: (label: String, phone_number: String) -> void
1209
+
1210
+ def to_hash: -> { label: String, phone_number: String }
1211
+ end
1212
+
1213
+ type type_ = :standalone | :"multi-step" | :"sub-assistant"
1214
+
1215
+ module Type
1216
+ extend Revox::Internal::Type::Enum
1217
+
1218
+ STANDALONE: :standalone
1219
+ MULTI_STEP: :"multi-step"
1220
+ SUB_ASSISTANT: :"sub-assistant"
1221
+
1222
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::type_]
1223
+ end
1224
+
1225
+ type voice =
1226
+ {
1227
+ id: String,
1228
+ provider: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Voice::provider,
1229
+ model: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Voice::model,
1230
+ speed: Float,
1231
+ volume: Float
1232
+ }
1233
+
1234
+ class Voice < Revox::Internal::Type::BaseModel
1235
+ attr_accessor id: String
1236
+
1237
+ attr_accessor provider: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Voice::provider
1238
+
1239
+ attr_reader model: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Voice::model?
1240
+
1241
+ def model=: (
1242
+ Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Voice::model
1243
+ ) -> Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Voice::model
1244
+
1245
+ attr_reader speed: Float?
1246
+
1247
+ def speed=: (Float) -> Float
1248
+
1249
+ attr_reader volume: Float?
1250
+
1251
+ def volume=: (Float) -> Float
1252
+
1253
+ def initialize: (
1254
+ id: String,
1255
+ provider: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Voice::provider,
1256
+ ?model: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Voice::model,
1257
+ ?speed: Float,
1258
+ ?volume: Float
1259
+ ) -> void
1260
+
1261
+ def to_hash: -> {
1262
+ id: String,
1263
+ provider: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Voice::provider,
1264
+ model: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Voice::model,
1265
+ speed: Float,
1266
+ volume: Float
1267
+ }
1268
+
1269
+ type provider = :cartesia | :elevenlabs | :gradium
1270
+
1271
+ module Provider
1272
+ extend Revox::Internal::Type::Enum
1273
+
1274
+ CARTESIA: :cartesia
1275
+ ELEVENLABS: :elevenlabs
1276
+ GRADIUM: :gradium
1277
+
1278
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Voice::provider]
1279
+ end
1280
+
1281
+ type model = :"sonic-3" | :"sonic-3.5"
1282
+
1283
+ module Model
1284
+ extend Revox::Internal::Type::Enum
1285
+
1286
+ SONIC_3: :"sonic-3"
1287
+ SONIC_3_5: :"sonic-3.5"
1288
+
1289
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Voice::model]
1290
+ end
1291
+ end
1292
+
1293
+ type zoho =
1294
+ {
1295
+ connection_id: String,
1296
+ field_mapping: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Zoho::FieldMapping],
1297
+ log_call_activity: bool,
1298
+ module_: String,
1299
+ outcomes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Zoho::outcome],
1300
+ template: String?
1301
+ }
1302
+
1303
+ class Zoho < Revox::Internal::Type::BaseModel
1304
+ attr_accessor connection_id: String
1305
+
1306
+ attr_accessor field_mapping: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Zoho::FieldMapping]
1307
+
1308
+ attr_accessor log_call_activity: bool
1309
+
1310
+ attr_accessor module_: String
1311
+
1312
+ attr_accessor outcomes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Zoho::outcome]
1313
+
1314
+ attr_accessor template: String?
1315
+
1316
+ def initialize: (
1317
+ connection_id: String,
1318
+ field_mapping: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Zoho::FieldMapping],
1319
+ log_call_activity: bool,
1320
+ module_: String,
1321
+ outcomes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Zoho::outcome],
1322
+ ?template: String?
1323
+ ) -> void
1324
+
1325
+ def to_hash: -> {
1326
+ connection_id: String,
1327
+ field_mapping: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Zoho::FieldMapping],
1328
+ log_call_activity: bool,
1329
+ module_: String,
1330
+ outcomes: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Zoho::outcome],
1331
+ template: String?
1332
+ }
1333
+
1334
+ type field_mapping = { source: String, zoho_field: String }
1335
+
1336
+ class FieldMapping < Revox::Internal::Type::BaseModel
1337
+ attr_accessor source: String
1338
+
1339
+ attr_accessor zoho_field: String
1340
+
1341
+ def initialize: (source: String, zoho_field: String) -> void
1342
+
1343
+ def to_hash: -> { source: String, zoho_field: String }
1344
+ end
1345
+
1346
+ type outcome =
1347
+ :not_interested
1348
+ | :interested
1349
+ | :completed
1350
+ | :requested_callback_later
1351
+ | :none
1352
+
1353
+ module Outcome
1354
+ extend Revox::Internal::Type::Enum
1355
+
1356
+ NOT_INTERESTED: :not_interested
1357
+ INTERESTED: :interested
1358
+ COMPLETED: :completed
1359
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
1360
+ NONE: :none
1361
+
1362
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::Zoho::outcome]
1363
+ end
1364
+ end
1365
+
1366
+ type created_by =
1367
+ {
1368
+ id: String,
1369
+ email: String,
1370
+ first_name: String?,
1371
+ last_name: String?
1372
+ }
1373
+
1374
+ class CreatedBy < Revox::Internal::Type::BaseModel
1375
+ attr_accessor id: String
1376
+
1377
+ attr_accessor email: String
1378
+
1379
+ attr_accessor first_name: String?
1380
+
1381
+ attr_accessor last_name: String?
1382
+
1383
+ def initialize: (
1384
+ id: String,
1385
+ email: String,
1386
+ first_name: String?,
1387
+ last_name: String?
1388
+ ) -> void
1389
+
1390
+ def to_hash: -> {
1391
+ id: String,
1392
+ email: String,
1393
+ first_name: String?,
1394
+ last_name: String?
1395
+ }
1396
+ end
1397
+
1398
+ type faq_item =
1399
+ {
1400
+ answer: String,
1401
+ question: String,
1402
+ id: String,
1403
+ needs_human_answer: bool,
1404
+ source: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::FaqItem::source
1405
+ }
1406
+
1407
+ class FaqItem < Revox::Internal::Type::BaseModel
1408
+ attr_accessor answer: String
1409
+
1410
+ attr_accessor question: String
1411
+
1412
+ attr_reader id: String?
1413
+
1414
+ def id=: (String) -> String
1415
+
1416
+ attr_reader needs_human_answer: bool?
1417
+
1418
+ def needs_human_answer=: (bool) -> bool
1419
+
1420
+ attr_reader source: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::FaqItem::source?
1421
+
1422
+ def source=: (
1423
+ Revox::Models::CampaignUpdateResponse::Campaign::Assistant::FaqItem::source
1424
+ ) -> Revox::Models::CampaignUpdateResponse::Campaign::Assistant::FaqItem::source
1425
+
1426
+ def initialize: (
1427
+ answer: String,
1428
+ question: String,
1429
+ ?id: String,
1430
+ ?needs_human_answer: bool,
1431
+ ?source: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::FaqItem::source
1432
+ ) -> void
1433
+
1434
+ def to_hash: -> {
1435
+ answer: String,
1436
+ question: String,
1437
+ id: String,
1438
+ needs_human_answer: bool,
1439
+ source: Revox::Models::CampaignUpdateResponse::Campaign::Assistant::FaqItem::source
1440
+ }
1441
+
1442
+ type source = :human | :ai
1443
+
1444
+ module Source
1445
+ extend Revox::Internal::Type::Enum
1446
+
1447
+ HUMAN: :human
1448
+ AI: :ai
1449
+
1450
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::Assistant::FaqItem::source]
1451
+ end
1452
+ end
1453
+ end
1454
+
1455
+ type call_retry_config =
1456
+ {
1457
+ allowed_days: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::CallRetryConfig::allowed_day],
1458
+ call_twice_in_a_row: bool,
1459
+ calling_windows: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::CallRetryConfig::CallingWindow],
1460
+ max_retry_attempts: Integer,
1461
+ timezone: String?
1462
+ }
1463
+
1464
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
1465
+ attr_accessor allowed_days: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::CallRetryConfig::allowed_day]
1466
+
1467
+ attr_accessor call_twice_in_a_row: bool
1468
+
1469
+ attr_accessor calling_windows: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::CallRetryConfig::CallingWindow]
1470
+
1471
+ attr_accessor max_retry_attempts: Integer
1472
+
1473
+ attr_accessor timezone: String?
1474
+
1475
+ def initialize: (
1476
+ allowed_days: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::CallRetryConfig::allowed_day],
1477
+ call_twice_in_a_row: bool,
1478
+ calling_windows: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::CallRetryConfig::CallingWindow],
1479
+ max_retry_attempts: Integer,
1480
+ ?timezone: String?
1481
+ ) -> void
1482
+
1483
+ def to_hash: -> {
1484
+ allowed_days: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::CallRetryConfig::allowed_day],
1485
+ call_twice_in_a_row: bool,
1486
+ calling_windows: ::Array[Revox::Models::CampaignUpdateResponse::Campaign::CallRetryConfig::CallingWindow],
1487
+ max_retry_attempts: Integer,
1488
+ timezone: String?
1489
+ }
1490
+
1491
+ type allowed_day =
1492
+ :monday
1493
+ | :tuesday
1494
+ | :wednesday
1495
+ | :thursday
1496
+ | :friday
1497
+ | :saturday
1498
+ | :sunday
1499
+
1500
+ module AllowedDay
1501
+ extend Revox::Internal::Type::Enum
1502
+
1503
+ MONDAY: :monday
1504
+ TUESDAY: :tuesday
1505
+ WEDNESDAY: :wednesday
1506
+ THURSDAY: :thursday
1507
+ FRIDAY: :friday
1508
+ SATURDAY: :saturday
1509
+ SUNDAY: :sunday
1510
+
1511
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::CallRetryConfig::allowed_day]
1512
+ end
1513
+
1514
+ type calling_window =
1515
+ {
1516
+ calling_window_end_time: String,
1517
+ calling_window_start_time: String,
1518
+ retry_delay_seconds: Integer
1519
+ }
1520
+
1521
+ class CallingWindow < Revox::Internal::Type::BaseModel
1522
+ attr_accessor calling_window_end_time: String
1523
+
1524
+ attr_accessor calling_window_start_time: String
1525
+
1526
+ attr_accessor retry_delay_seconds: Integer
1527
+
1528
+ def initialize: (
1529
+ calling_window_end_time: String,
1530
+ calling_window_start_time: String,
1531
+ retry_delay_seconds: Integer
1532
+ ) -> void
1533
+
1534
+ def to_hash: -> {
1535
+ calling_window_end_time: String,
1536
+ calling_window_start_time: String,
1537
+ retry_delay_seconds: Integer
1538
+ }
1539
+ end
1540
+ end
1541
+
1542
+ type created_by =
1543
+ { id: String, email: String, first_name: String?, last_name: String? }
1544
+
1545
+ class CreatedBy < Revox::Internal::Type::BaseModel
1546
+ attr_accessor id: String
1547
+
1548
+ attr_accessor email: String
1549
+
1550
+ attr_accessor first_name: String?
1551
+
1552
+ attr_accessor last_name: String?
1553
+
1554
+ def initialize: (
1555
+ id: String,
1556
+ email: String,
1557
+ first_name: String?,
1558
+ last_name: String?
1559
+ ) -> void
1560
+
1561
+ def to_hash: -> {
1562
+ id: String,
1563
+ email: String,
1564
+ first_name: String?,
1565
+ last_name: String?
1566
+ }
1567
+ end
1568
+
1569
+ type funnel_stats =
1570
+ { hot: Float, talked_to_human: Float, total_leads: Float }
1571
+
1572
+ class FunnelStats < Revox::Internal::Type::BaseModel
1573
+ attr_accessor hot: Float
1574
+
1575
+ attr_accessor talked_to_human: Float
1576
+
1577
+ attr_accessor total_leads: Float
1578
+
1579
+ def initialize: (
1580
+ hot: Float,
1581
+ talked_to_human: Float,
1582
+ total_leads: Float
1583
+ ) -> void
1584
+
1585
+ def to_hash: -> {
1586
+ hot: Float,
1587
+ talked_to_human: Float,
1588
+ total_leads: Float
1589
+ }
1590
+ end
1591
+
1592
+ type row_stats =
1593
+ {
1594
+ calling: Float,
1595
+ completed: Float,
1596
+ failed: Float,
1597
+ not_launched: Float,
1598
+ pending: Float,
1599
+ retry_: Float,
1600
+ skipped: Float,
1601
+ total: Float
1602
+ }
1603
+
1604
+ class RowStats < Revox::Internal::Type::BaseModel
1605
+ attr_accessor calling: Float
1606
+
1607
+ attr_accessor completed: Float
1608
+
1609
+ attr_accessor failed: Float
1610
+
1611
+ attr_accessor not_launched: Float
1612
+
1613
+ attr_accessor pending: Float
1614
+
1615
+ attr_accessor retry_: Float
1616
+
1617
+ attr_accessor skipped: Float
1618
+
1619
+ attr_accessor total: Float
1620
+
1621
+ def initialize: (
1622
+ calling: Float,
1623
+ completed: Float,
1624
+ failed: Float,
1625
+ not_launched: Float,
1626
+ pending: Float,
1627
+ retry_: Float,
1628
+ skipped: Float,
1629
+ total: Float
1630
+ ) -> void
1631
+
1632
+ def to_hash: -> {
1633
+ calling: Float,
1634
+ completed: Float,
1635
+ failed: Float,
1636
+ not_launched: Float,
1637
+ pending: Float,
1638
+ retry_: Float,
1639
+ skipped: Float,
1640
+ total: Float
1641
+ }
1642
+ end
1643
+
1644
+ type structured_output_extraction = :none | :running | :completed
1645
+
1646
+ module StructuredOutputExtraction
1647
+ extend Revox::Internal::Type::Enum
1648
+
1649
+ NONE: :none
1650
+ RUNNING: :running
1651
+ COMPLETED: :completed
1652
+
1653
+ def self?.values: -> ::Array[Revox::Models::CampaignUpdateResponse::Campaign::structured_output_extraction]
1654
+ end
1655
+ end
1656
+ end
1657
+ end
1658
+ end