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