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,1799 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ # @see Revox::Resources::PhoneNumbers#list
6
+ class PhoneNumberListResponse < Revox::Internal::Type::BaseModel
7
+ # @!attribute phone_numbers
8
+ #
9
+ # @return [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber>]
10
+ required :phone_numbers,
11
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::PhoneNumberListResponse::PhoneNumber] }
12
+
13
+ # @!method initialize(phone_numbers:)
14
+ # @param phone_numbers [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber>]
15
+
16
+ class PhoneNumber < Revox::Internal::Type::BaseModel
17
+ # @!attribute id
18
+ #
19
+ # @return [String]
20
+ required :id, String
21
+
22
+ # @!attribute created_at
23
+ #
24
+ # @return [Object]
25
+ required :created_at, Revox::Internal::Type::Unknown
26
+
27
+ # @!attribute created_by
28
+ # A member of the current organization.
29
+ #
30
+ # @return [Revox::Models::PhoneNumberListResponse::PhoneNumber::CreatedBy, nil]
31
+ required :created_by, -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::CreatedBy }, nil?: true
32
+
33
+ # @!attribute inbound_assistant
34
+ #
35
+ # @return [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant, nil]
36
+ required :inbound_assistant,
37
+ -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant },
38
+ nil?: true
39
+
40
+ # @!attribute inbound_sip_uri
41
+ #
42
+ # @return [String, nil]
43
+ required :inbound_sip_uri, String, nil?: true
44
+
45
+ # @!attribute label
46
+ #
47
+ # @return [String, nil]
48
+ required :label, String, nil?: true
49
+
50
+ # @!attribute livekit_outbound_trunk_id
51
+ #
52
+ # @return [String, nil]
53
+ required :livekit_outbound_trunk_id, String, nil?: true
54
+
55
+ # @!attribute phone_number
56
+ #
57
+ # @return [String]
58
+ required :phone_number, String
59
+
60
+ # @!attribute provider
61
+ #
62
+ # @return [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::Provider]
63
+ required :provider, enum: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::Provider }
64
+
65
+ # @!attribute source
66
+ #
67
+ # @return [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::Source]
68
+ required :source, enum: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::Source }
69
+
70
+ # @!attribute type
71
+ #
72
+ # @return [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::Type]
73
+ required :type, enum: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::Type }
74
+
75
+ # @!method initialize(id:, created_at:, created_by:, inbound_assistant:, inbound_sip_uri:, label:, livekit_outbound_trunk_id:, phone_number:, provider:, source:, type:)
76
+ # @param id [String]
77
+ #
78
+ # @param created_at [Object]
79
+ #
80
+ # @param created_by [Revox::Models::PhoneNumberListResponse::PhoneNumber::CreatedBy, nil] A member of the current organization.
81
+ #
82
+ # @param inbound_assistant [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant, nil]
83
+ #
84
+ # @param inbound_sip_uri [String, nil]
85
+ #
86
+ # @param label [String, nil]
87
+ #
88
+ # @param livekit_outbound_trunk_id [String, nil]
89
+ #
90
+ # @param phone_number [String]
91
+ #
92
+ # @param provider [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::Provider]
93
+ #
94
+ # @param source [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::Source]
95
+ #
96
+ # @param type [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::Type]
97
+
98
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber#created_by
99
+ class CreatedBy < Revox::Internal::Type::BaseModel
100
+ # @!attribute id
101
+ # The database user id (foreign key target on calls.assignee_id).
102
+ #
103
+ # @return [String]
104
+ required :id, String
105
+
106
+ # @!attribute email
107
+ #
108
+ # @return [String]
109
+ required :email, String
110
+
111
+ # @!attribute first_name
112
+ #
113
+ # @return [String, nil]
114
+ required :first_name, String, nil?: true
115
+
116
+ # @!attribute last_name
117
+ #
118
+ # @return [String, nil]
119
+ required :last_name, String, nil?: true
120
+
121
+ # @!method initialize(id:, email:, first_name:, last_name:)
122
+ # A member of the current organization.
123
+ #
124
+ # @param id [String] The database user id (foreign key target on calls.assignee_id).
125
+ #
126
+ # @param email [String]
127
+ #
128
+ # @param first_name [String, nil]
129
+ #
130
+ # @param last_name [String, nil]
131
+ end
132
+
133
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber#inbound_assistant
134
+ class InboundAssistant < Revox::Internal::Type::BaseModel
135
+ # @!attribute id
136
+ #
137
+ # @return [String]
138
+ required :id, String
139
+
140
+ # @!attribute after_call_sms_outcomes
141
+ # Which call outcomes trigger the after-call SMS. When empty or null, no
142
+ # after-call SMS is sent. Use "none" when outcome is null.
143
+ #
144
+ # @return [Array<Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::AfterCallSMSOutcome>, nil]
145
+ required :after_call_sms_outcomes,
146
+ -> { Revox::Internal::Type::ArrayOf[enum: Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::AfterCallSMSOutcome] },
147
+ nil?: true
148
+
149
+ # @!attribute after_call_sms_prompt
150
+ # Prompt / instructions for the after-call SMS. Supports {{variable}}
151
+ # placeholders. When null, no after-call SMS is sent.
152
+ #
153
+ # @return [String, nil]
154
+ required :after_call_sms_prompt, String, nil?: true
155
+
156
+ # @!attribute background_sound
157
+ # Ambient background sound to play during the call. null disables it.
158
+ #
159
+ # @return [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::BackgroundSound, nil]
160
+ required :background_sound,
161
+ enum: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::BackgroundSound },
162
+ nil?: true
163
+
164
+ # @!attribute background_sound_volume
165
+ # Volume of the ambient background sound (0 = silent, 1 = max).
166
+ #
167
+ # @return [Float]
168
+ required :background_sound_volume, Float
169
+
170
+ # @!attribute calendly
171
+ #
172
+ # @return [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Calendly, nil]
173
+ required :calendly,
174
+ -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Calendly },
175
+ nil?: true
176
+
177
+ # @!attribute call_retry_config
178
+ # Configuration for call retry behavior including time windows, delays, and max
179
+ # iterations. If not provided, defaults will be used.
180
+ #
181
+ # @return [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CallRetryConfig, nil]
182
+ required :call_retry_config,
183
+ -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CallRetryConfig },
184
+ nil?: true
185
+
186
+ # @!attribute cartesia_dictionary_pronunciation_id
187
+ # Optional Cartesia pronunciation dictionary ID linked to this assistant.
188
+ #
189
+ # @return [String, nil]
190
+ required :cartesia_dictionary_pronunciation_id, String, nil?: true
191
+
192
+ # @!attribute created_at
193
+ #
194
+ # @return [Object]
195
+ required :created_at, Revox::Internal::Type::Unknown
196
+
197
+ # @!attribute custom_tools
198
+ #
199
+ # @return [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool>, nil]
200
+ required :custom_tools,
201
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool] },
202
+ nil?: true
203
+
204
+ # @!attribute email_notification_address
205
+ # Email address(es) to receive notifications when a call ends with a matching
206
+ # outcome. Accepts a single email or a comma-separated list (e.g. "alice@x.com,
207
+ # bob@y.com").
208
+ #
209
+ # @return [String, nil]
210
+ required :email_notification_address, String, nil?: true
211
+
212
+ # @!attribute email_notification_outcomes
213
+ # Which call outcomes trigger an email notification. E.g. ["interested",
214
+ # "completed", "none"]. Use "none" when outcome is null.
215
+ #
216
+ # @return [Array<Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::EmailNotificationOutcome>, nil]
217
+ required :email_notification_outcomes,
218
+ -> { Revox::Internal::Type::ArrayOf[enum: Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::EmailNotificationOutcome] },
219
+ nil?: true
220
+
221
+ # @!attribute end_of_call_sentence
222
+ #
223
+ # @return [String, nil]
224
+ required :end_of_call_sentence, String, nil?: true
225
+
226
+ # @!attribute first_sentence
227
+ #
228
+ # @return [String, nil]
229
+ required :first_sentence, String, nil?: true
230
+
231
+ # @!attribute first_sentence_delay_ms
232
+ # Delay in milliseconds before speaking the first sentence. Default: 400.
233
+ #
234
+ # @return [Integer]
235
+ required :first_sentence_delay_ms, Integer
236
+
237
+ # @!attribute first_sentence_mode
238
+ #
239
+ # @return [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::FirstSentenceMode]
240
+ required :first_sentence_mode,
241
+ enum: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::FirstSentenceMode }
242
+
243
+ # @!attribute from_phone_number
244
+ # Override the default outbound phone number for calls placed with this assistant.
245
+ # When null, the organization's default phone number is used.
246
+ #
247
+ # @return [String, nil]
248
+ required :from_phone_number, String, nil?: true
249
+
250
+ # @!attribute human_transfer_mode
251
+ # Warm or cold transfer when transfer_destinations is non-empty; null when
252
+ # transfer is not configured.
253
+ #
254
+ # @return [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::HumanTransferMode, nil]
255
+ required :human_transfer_mode,
256
+ enum: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::HumanTransferMode },
257
+ nil?: true
258
+
259
+ # @!attribute ivr_navigation_enabled
260
+ # Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
261
+ # skip turns to navigate phone menus.
262
+ #
263
+ # @return [Boolean]
264
+ required :ivr_navigation_enabled, Revox::Internal::Type::Boolean
265
+
266
+ # @!attribute llm_model
267
+ #
268
+ # @return [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember0, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember1, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember2, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember3]
269
+ required :llm_model,
270
+ union: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel }
271
+
272
+ # @!attribute logo_url
273
+ # Public URL of the brand logo shown on the assistant's demo page. Null when
274
+ # unset.
275
+ #
276
+ # @return [String, nil]
277
+ required :logo_url, String, nil?: true
278
+
279
+ # @!attribute max_call_duration_secs
280
+ # The maximum duration of the call in seconds. This is the maximum time the call
281
+ # will be allowed to run.
282
+ #
283
+ # @return [Float]
284
+ required :max_call_duration_secs, Float
285
+
286
+ # @!attribute max_duration_end_message
287
+ # Optional message the agent will say, without being interruptible, when the call
288
+ # reaches its max duration. Kept short so it fits inside the farewell buffer. If
289
+ # null, the call ends silently.
290
+ #
291
+ # @return [String, nil]
292
+ required :max_duration_end_message, String, nil?: true
293
+
294
+ # @!attribute name
295
+ #
296
+ # @return [String]
297
+ required :name, String
298
+
299
+ # @!attribute organization_id
300
+ #
301
+ # @return [String]
302
+ required :organization_id, String
303
+
304
+ # @!attribute position
305
+ #
306
+ # @return [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Position, nil]
307
+ required :position,
308
+ -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Position },
309
+ nil?: true
310
+
311
+ # @!attribute precall_lookup_url
312
+ # URL fetched before an inbound call is answered to resolve the assistant's prompt
313
+ # variables. Null when no lookup is configured.
314
+ #
315
+ # @return [String, nil]
316
+ required :precall_lookup_url, String, nil?: true
317
+
318
+ # @!attribute prompt
319
+ #
320
+ # @return [String]
321
+ required :prompt, String
322
+
323
+ # @!attribute prompt_flow
324
+ #
325
+ # @return [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::PromptFlow, nil]
326
+ required :prompt_flow,
327
+ -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::PromptFlow },
328
+ nil?: true
329
+
330
+ # @!attribute slack
331
+ #
332
+ # @return [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Slack, nil]
333
+ required :slack,
334
+ -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Slack },
335
+ nil?: true
336
+
337
+ # @!attribute sms_enabled
338
+ # Enable SMS tool during calls. When enabled, the agent can send SMS messages to
339
+ # the user on the call.
340
+ #
341
+ # @return [Boolean]
342
+ required :sms_enabled, Revox::Internal::Type::Boolean
343
+
344
+ # @!attribute sms_template
345
+ # Hardcoded SMS template to send during calls. When set, this exact text is sent
346
+ # instead of letting the agent generate the message. Supports {{variable}}
347
+ # placeholders.
348
+ #
349
+ # @return [String, nil]
350
+ required :sms_template, String, nil?: true
351
+
352
+ # @!attribute structured_output_config
353
+ # The structured output config to use for the call. This is used to extract the
354
+ # data from the call (like email, name, company name, etc.).
355
+ #
356
+ # @return [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::StructuredOutputConfig>, nil]
357
+ required :structured_output_config,
358
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::StructuredOutputConfig] },
359
+ nil?: true
360
+
361
+ # @!attribute structured_output_prompt
362
+ # Custom prompt for structured data extraction. If not provided, a default prompt
363
+ # is used. Available variables: {{transcript}}, {{call_direction}},
364
+ # {{user_phone_number}}, {{agent_phone_number}}.
365
+ #
366
+ # @return [String, nil]
367
+ required :structured_output_prompt, String, nil?: true
368
+
369
+ # @!attribute stt_context
370
+ # Assistant-level speech-to-text context: structured `general` key/value pairs
371
+ # plus a list of domain `terms`. Prompt-derived context is merged in without
372
+ # replacing existing entries.
373
+ #
374
+ # @return [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::SttContext, nil]
375
+ required :stt_context,
376
+ -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::SttContext },
377
+ nil?: true
378
+
379
+ # @!attribute stt_model
380
+ # Transcriber (speech-to-text) model used for the assistant.
381
+ #
382
+ # @return [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::SttModel]
383
+ required :stt_model,
384
+ enum: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::SttModel }
385
+
386
+ # @!attribute thinking_sound
387
+ # Audio clip to play while the agent is processing a response. One of the built-in
388
+ # LiveKit audio clips; null disables it.
389
+ #
390
+ # @return [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::ThinkingSound, nil]
391
+ required :thinking_sound,
392
+ enum: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::ThinkingSound },
393
+ nil?: true
394
+
395
+ # @!attribute thinking_sound_probability
396
+ # Probability [0..1] that the thinking sound plays on any given turn; otherwise
397
+ # the agent is silent while thinking.
398
+ #
399
+ # @return [Float]
400
+ required :thinking_sound_probability, Float
401
+
402
+ # @!attribute thinking_sound_volume
403
+ # Volume of the thinking sound (0 = silent, 1 = max).
404
+ #
405
+ # @return [Float]
406
+ required :thinking_sound_volume, Float
407
+
408
+ # @!attribute transfer_destinations
409
+ # Where calls can be transferred to when users ask to speak to a human. Null or
410
+ # empty when transfer is not configured.
411
+ #
412
+ # @return [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::TransferDestination>, nil]
413
+ required :transfer_destinations,
414
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::TransferDestination] },
415
+ nil?: true
416
+
417
+ # @!attribute type
418
+ #
419
+ # @return [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Type]
420
+ required :type, enum: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Type }
421
+
422
+ # @!attribute updated_at
423
+ #
424
+ # @return [Object]
425
+ required :updated_at, Revox::Internal::Type::Unknown
426
+
427
+ # @!attribute voice
428
+ #
429
+ # @return [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Voice, nil]
430
+ required :voice,
431
+ -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Voice },
432
+ nil?: true
433
+
434
+ # @!attribute voicemail_message
435
+ # If set, when voicemail is detected the agent will speak this message then hang
436
+ # up; if null, hang up immediately.
437
+ #
438
+ # @return [String, nil]
439
+ required :voicemail_message, String, nil?: true
440
+
441
+ # @!attribute voicemail_sms_prompt
442
+ # Prompt / instructions for the voicemail SMS. Supports {{variable}} placeholders.
443
+ # When null, no SMS is sent on voicemail.
444
+ #
445
+ # @return [String, nil]
446
+ required :voicemail_sms_prompt, String, nil?: true
447
+
448
+ # @!attribute warm_transfer_summary_instructions
449
+ # Warm transfer only: instructions for the supervisor handoff summary; null when
450
+ # not configured or cold transfer.
451
+ #
452
+ # @return [String, nil]
453
+ required :warm_transfer_summary_instructions, String, nil?: true
454
+
455
+ # @!attribute webhook_url
456
+ # The webhook URL to call when the call is completed.
457
+ #
458
+ # @return [String, nil]
459
+ required :webhook_url, String, nil?: true
460
+
461
+ # @!attribute zoho
462
+ #
463
+ # @return [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Zoho, nil]
464
+ required :zoho,
465
+ -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Zoho },
466
+ nil?: true
467
+
468
+ # @!attribute created_by
469
+ # The user who created the assistant.
470
+ #
471
+ # @return [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CreatedBy, nil]
472
+ optional :created_by,
473
+ -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CreatedBy },
474
+ nil?: true
475
+
476
+ # @!attribute faq_items
477
+ #
478
+ # @return [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::FaqItem>, nil]
479
+ optional :faq_items,
480
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::FaqItem] }
481
+
482
+ # @!attribute is_inbound_receptionist
483
+ #
484
+ # @return [Boolean, nil]
485
+ optional :is_inbound_receptionist, Revox::Internal::Type::Boolean
486
+
487
+ # @!attribute is_realestate_assistant
488
+ #
489
+ # @return [Boolean, nil]
490
+ optional :is_realestate_assistant, Revox::Internal::Type::Boolean
491
+
492
+ # @!attribute pending_faq_count
493
+ #
494
+ # @return [Float, nil]
495
+ optional :pending_faq_count, Float
496
+
497
+ # @!method initialize(id:, after_call_sms_outcomes:, after_call_sms_prompt:, background_sound:, background_sound_volume:, calendly:, call_retry_config:, cartesia_dictionary_pronunciation_id:, created_at:, custom_tools:, email_notification_address:, email_notification_outcomes:, end_of_call_sentence:, first_sentence:, first_sentence_delay_ms:, first_sentence_mode:, from_phone_number:, human_transfer_mode:, ivr_navigation_enabled:, llm_model:, logo_url:, max_call_duration_secs:, max_duration_end_message:, name:, organization_id:, position:, precall_lookup_url:, prompt:, prompt_flow:, slack:, sms_enabled:, sms_template:, structured_output_config:, structured_output_prompt:, stt_context:, stt_model:, thinking_sound:, thinking_sound_probability:, thinking_sound_volume:, transfer_destinations:, type:, updated_at:, voice:, voicemail_message:, voicemail_sms_prompt:, warm_transfer_summary_instructions:, webhook_url:, zoho:, created_by: nil, faq_items: nil, is_inbound_receptionist: nil, is_realestate_assistant: nil, pending_faq_count: nil)
498
+ # Some parameter documentations has been truncated, see
499
+ # {Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant} for more
500
+ # details.
501
+ #
502
+ # @param id [String]
503
+ #
504
+ # @param after_call_sms_outcomes [Array<Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::AfterCallSMSOutcome>, nil] Which call outcomes trigger the after-call SMS. When empty or null, no after-cal
505
+ #
506
+ # @param after_call_sms_prompt [String, nil] Prompt / instructions for the after-call SMS. Supports {{variable}} placeholders
507
+ #
508
+ # @param background_sound [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::BackgroundSound, nil] Ambient background sound to play during the call. null disables it.
509
+ #
510
+ # @param background_sound_volume [Float] Volume of the ambient background sound (0 = silent, 1 = max).
511
+ #
512
+ # @param calendly [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Calendly, nil]
513
+ #
514
+ # @param call_retry_config [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CallRetryConfig, nil] Configuration for call retry behavior including time windows, delays, and max it
515
+ #
516
+ # @param cartesia_dictionary_pronunciation_id [String, nil] Optional Cartesia pronunciation dictionary ID linked to this assistant.
517
+ #
518
+ # @param created_at [Object]
519
+ #
520
+ # @param custom_tools [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool>, nil]
521
+ #
522
+ # @param email_notification_address [String, nil] Email address(es) to receive notifications when a call ends with a matching outc
523
+ #
524
+ # @param email_notification_outcomes [Array<Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::EmailNotificationOutcome>, nil] Which call outcomes trigger an email notification. E.g. ["interested", "complete
525
+ #
526
+ # @param end_of_call_sentence [String, nil]
527
+ #
528
+ # @param first_sentence [String, nil]
529
+ #
530
+ # @param first_sentence_delay_ms [Integer] Delay in milliseconds before speaking the first sentence. Default: 400.
531
+ #
532
+ # @param first_sentence_mode [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::FirstSentenceMode]
533
+ #
534
+ # @param from_phone_number [String, nil] Override the default outbound phone number for calls placed with this assistant.
535
+ #
536
+ # @param human_transfer_mode [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::HumanTransferMode, nil] Warm or cold transfer when transfer_destinations is non-empty; null when transfe
537
+ #
538
+ # @param ivr_navigation_enabled [Boolean] Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
539
+ #
540
+ # @param llm_model [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember0, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember1, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember2, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember3]
541
+ #
542
+ # @param logo_url [String, nil] Public URL of the brand logo shown on the assistant's demo page. Null when unset
543
+ #
544
+ # @param max_call_duration_secs [Float] The maximum duration of the call in seconds. This is the maximum time the call w
545
+ #
546
+ # @param max_duration_end_message [String, nil] Optional message the agent will say, without being interruptible, when the call
547
+ #
548
+ # @param name [String]
549
+ #
550
+ # @param organization_id [String]
551
+ #
552
+ # @param position [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Position, nil]
553
+ #
554
+ # @param precall_lookup_url [String, nil] URL fetched before an inbound call is answered to resolve the assistant's prompt
555
+ #
556
+ # @param prompt [String]
557
+ #
558
+ # @param prompt_flow [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::PromptFlow, nil]
559
+ #
560
+ # @param slack [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Slack, nil]
561
+ #
562
+ # @param sms_enabled [Boolean] Enable SMS tool during calls. When enabled, the agent can send SMS messages to t
563
+ #
564
+ # @param sms_template [String, nil] Hardcoded SMS template to send during calls. When set, this exact text is sent i
565
+ #
566
+ # @param structured_output_config [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::StructuredOutputConfig>, nil] The structured output config to use for the call. This is used to extract the da
567
+ #
568
+ # @param structured_output_prompt [String, nil] Custom prompt for structured data extraction. If not provided, a default prompt
569
+ #
570
+ # @param stt_context [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::SttContext, nil] Assistant-level speech-to-text context: structured `general` key/value pairs plu
571
+ #
572
+ # @param stt_model [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::SttModel] Transcriber (speech-to-text) model used for the assistant.
573
+ #
574
+ # @param thinking_sound [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::ThinkingSound, nil] Audio clip to play while the agent is processing a response. One of the built-in
575
+ #
576
+ # @param thinking_sound_probability [Float] Probability [0..1] that the thinking sound plays on any given turn; otherwise th
577
+ #
578
+ # @param thinking_sound_volume [Float] Volume of the thinking sound (0 = silent, 1 = max).
579
+ #
580
+ # @param transfer_destinations [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::TransferDestination>, nil] Where calls can be transferred to when users ask to speak to a human. Null or em
581
+ #
582
+ # @param type [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Type]
583
+ #
584
+ # @param updated_at [Object]
585
+ #
586
+ # @param voice [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Voice, nil]
587
+ #
588
+ # @param voicemail_message [String, nil] If set, when voicemail is detected the agent will speak this message then hang u
589
+ #
590
+ # @param voicemail_sms_prompt [String, nil] Prompt / instructions for the voicemail SMS. Supports {{variable}} placeholders.
591
+ #
592
+ # @param warm_transfer_summary_instructions [String, nil] Warm transfer only: instructions for the supervisor handoff summary; null when n
593
+ #
594
+ # @param webhook_url [String, nil] The webhook URL to call when the call is completed.
595
+ #
596
+ # @param zoho [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Zoho, nil]
597
+ #
598
+ # @param created_by [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CreatedBy, nil] The user who created the assistant.
599
+ #
600
+ # @param faq_items [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::FaqItem>]
601
+ #
602
+ # @param is_inbound_receptionist [Boolean]
603
+ #
604
+ # @param is_realestate_assistant [Boolean]
605
+ #
606
+ # @param pending_faq_count [Float]
607
+
608
+ module AfterCallSMSOutcome
609
+ extend Revox::Internal::Type::Enum
610
+
611
+ NOT_INTERESTED = :not_interested
612
+ INTERESTED = :interested
613
+ COMPLETED = :completed
614
+ REQUESTED_CALLBACK_LATER = :requested_callback_later
615
+ NONE = :none
616
+
617
+ # @!method self.values
618
+ # @return [Array<Symbol>]
619
+ end
620
+
621
+ # Ambient background sound to play during the call. null disables it.
622
+ #
623
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant#background_sound
624
+ module BackgroundSound
625
+ extend Revox::Internal::Type::Enum
626
+
627
+ AUDIO_OFFICE_OGG = :"audio/office.ogg"
628
+
629
+ # @!method self.values
630
+ # @return [Array<Symbol>]
631
+ end
632
+
633
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant#calendly
634
+ class Calendly < Revox::Internal::Type::BaseModel
635
+ # @!attribute connection_id
636
+ # The connection ID representing the link between your Calendly account and Revox.
637
+ #
638
+ # @return [String]
639
+ required :connection_id, String
640
+
641
+ # @!attribute event_type_id
642
+ # The event type ID representing the event type to schedule. (eg:
643
+ # https://api.calendly.com/event_types/b2330295-2a91-4a1d-bb73-99e7707663d5)
644
+ #
645
+ # @return [String]
646
+ required :event_type_id, String
647
+
648
+ # @!method initialize(connection_id:, event_type_id:)
649
+ # Some parameter documentations has been truncated, see
650
+ # {Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Calendly}
651
+ # for more details.
652
+ #
653
+ # @param connection_id [String] The connection ID representing the link between your Calendly account and Revox.
654
+ #
655
+ # @param event_type_id [String] The event type ID representing the event type to schedule. (eg: https://api.cale
656
+ end
657
+
658
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant#call_retry_config
659
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
660
+ # @!attribute allowed_days
661
+ # Days of the week when calls are allowed, in the recipient's timezone. Default:
662
+ # Monday through Friday.
663
+ #
664
+ # @return [Array<Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CallRetryConfig::AllowedDay>]
665
+ required :allowed_days,
666
+ -> { Revox::Internal::Type::ArrayOf[enum: Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CallRetryConfig::AllowedDay] }
667
+
668
+ # @!attribute call_twice_in_a_row
669
+ # If true and max_retry_attempts >= 2, attempt #2 fires immediately (skipping
670
+ # retry_delay_seconds) when attempt #1 didn't reach a human.
671
+ # Calling-window/allowed-days checks still apply. Only affects the 1→2 transition.
672
+ # Default: false.
673
+ #
674
+ # @return [Boolean]
675
+ required :call_twice_in_a_row, Revox::Internal::Type::Boolean
676
+
677
+ # @!attribute calling_windows
678
+ #
679
+ # @return [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CallRetryConfig::CallingWindow>]
680
+ required :calling_windows,
681
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CallRetryConfig::CallingWindow] }
682
+
683
+ # @!attribute max_retry_attempts
684
+ # Maximum number of call retry attempts. Default: 3.
685
+ #
686
+ # @return [Integer]
687
+ required :max_retry_attempts, Integer
688
+
689
+ # @!attribute timezone
690
+ # Optional IANA timezone identifier to override the automatic timezone detection
691
+ # from phone number. If not provided, timezone is determined from the recipient's
692
+ # phone number country code. Examples: 'America/New_York', 'Europe/Paris'.
693
+ #
694
+ # @return [String, nil]
695
+ optional :timezone, String, nil?: true
696
+
697
+ # @!method initialize(allowed_days:, call_twice_in_a_row:, calling_windows:, max_retry_attempts:, timezone: nil)
698
+ # Some parameter documentations has been truncated, see
699
+ # {Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CallRetryConfig}
700
+ # for more details.
701
+ #
702
+ # Configuration for call retry behavior including time windows, delays, and max
703
+ # iterations. If not provided, defaults will be used.
704
+ #
705
+ # @param allowed_days [Array<Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CallRetryConfig::AllowedDay>] Days of the week when calls are allowed, in the recipient's timezone. Default: M
706
+ #
707
+ # @param call_twice_in_a_row [Boolean] If true and max_retry_attempts >= 2, attempt #2 fires immediately (skipping retr
708
+ #
709
+ # @param calling_windows [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CallRetryConfig::CallingWindow>]
710
+ #
711
+ # @param max_retry_attempts [Integer] Maximum number of call retry attempts. Default: 3.
712
+ #
713
+ # @param timezone [String, nil] Optional IANA timezone identifier to override the automatic timezone detection f
714
+
715
+ module AllowedDay
716
+ extend Revox::Internal::Type::Enum
717
+
718
+ MONDAY = :monday
719
+ TUESDAY = :tuesday
720
+ WEDNESDAY = :wednesday
721
+ THURSDAY = :thursday
722
+ FRIDAY = :friday
723
+ SATURDAY = :saturday
724
+ SUNDAY = :sunday
725
+
726
+ # @!method self.values
727
+ # @return [Array<Symbol>]
728
+ end
729
+
730
+ class CallingWindow < Revox::Internal::Type::BaseModel
731
+ # @!attribute calling_window_end_time
732
+ # End time for the calling window in the recipient's timezone (or
733
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
734
+ # Examples: '17:00', '6pm'. Default: '18:00'.
735
+ #
736
+ # @return [String]
737
+ required :calling_window_end_time, String
738
+
739
+ # @!attribute calling_window_start_time
740
+ # Start time for the calling window in the recipient's timezone (or
741
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
742
+ # Examples: '09:00', '10am'. Default: '10:00'.
743
+ #
744
+ # @return [String]
745
+ required :calling_window_start_time, String
746
+
747
+ # @!attribute retry_delay_seconds
748
+ # Delay between retry attempts in seconds. 0 retries as soon as the calling window
749
+ # allows. Default: 7200 (2 hours).
750
+ #
751
+ # @return [Integer]
752
+ required :retry_delay_seconds, Integer
753
+
754
+ # @!method initialize(calling_window_end_time:, calling_window_start_time:, retry_delay_seconds:)
755
+ # Some parameter documentations has been truncated, see
756
+ # {Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CallRetryConfig::CallingWindow}
757
+ # for more details.
758
+ #
759
+ # @param calling_window_end_time [String] End time for the calling window in the recipient's timezone (or timezone_overrid
760
+ #
761
+ # @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
762
+ #
763
+ # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. 0 retries as soon as the calling window
764
+ end
765
+ end
766
+
767
+ class CustomTool < Revox::Internal::Type::BaseModel
768
+ # @!attribute body_template
769
+ # JSON body template for the request. Use quoted {{variable}} placeholders (e.g.
770
+ # "{{name}}") for dynamic values
771
+ #
772
+ # @return [String, nil]
773
+ required :body_template, String, nil?: true
774
+
775
+ # @!attribute description
776
+ # Human-readable description of what the tool does, used by the LLM to decide when
777
+ # to call it
778
+ #
779
+ # @return [String]
780
+ required :description, String
781
+
782
+ # @!attribute headers
783
+ # HTTP headers to include in the request. Values support {{variable}} placeholders
784
+ #
785
+ # @return [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool::Header>]
786
+ required :headers,
787
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool::Header] }
788
+
789
+ # @!attribute input_schema
790
+ # Schema defining the parameters the LLM should extract from the conversation to
791
+ # pass to this tool
792
+ #
793
+ # @return [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool::InputSchema>]
794
+ required :input_schema,
795
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool::InputSchema] }
796
+
797
+ # @!attribute method_
798
+ # HTTP method to use when calling the API endpoint
799
+ #
800
+ # @return [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool::Method]
801
+ required :method_,
802
+ enum: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool::Method },
803
+ api_name: :method
804
+
805
+ # @!attribute name
806
+ # Unique tool name in lowercase_snake_case (e.g. check_inventory)
807
+ #
808
+ # @return [String]
809
+ required :name, String
810
+
811
+ # @!attribute query_params
812
+ # Query string parameters appended to the URL. Values support {{variable}}
813
+ # placeholders
814
+ #
815
+ # @return [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool::QueryParam>]
816
+ required :query_params,
817
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool::QueryParam] }
818
+
819
+ # @!attribute url
820
+ # Full URL of the API endpoint. Supports {{variable}} placeholders for dynamic
821
+ # values
822
+ #
823
+ # @return [String]
824
+ required :url, String
825
+
826
+ # @!method initialize(body_template:, description:, headers:, input_schema:, method_:, name:, query_params:, url:)
827
+ # Some parameter documentations has been truncated, see
828
+ # {Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool}
829
+ # for more details.
830
+ #
831
+ # @param body_template [String, nil] JSON body template for the request. Use quoted {{variable}} placeholders (e.g. "
832
+ #
833
+ # @param description [String] Human-readable description of what the tool does, used by the LLM to decide when
834
+ #
835
+ # @param headers [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool::Header>] HTTP headers to include in the request. Values support {{variable}} placeholders
836
+ #
837
+ # @param input_schema [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool::InputSchema>] Schema defining the parameters the LLM should extract from the conversation to p
838
+ #
839
+ # @param method_ [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool::Method] HTTP method to use when calling the API endpoint
840
+ #
841
+ # @param name [String] Unique tool name in lowercase_snake_case (e.g. check_inventory)
842
+ #
843
+ # @param query_params [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool::QueryParam>] Query string parameters appended to the URL. Values support {{variable}} placeho
844
+ #
845
+ # @param url [String] Full URL of the API endpoint. Supports {{variable}} placeholders for dynamic val
846
+
847
+ class Header < Revox::Internal::Type::BaseModel
848
+ # @!attribute key
849
+ #
850
+ # @return [String]
851
+ required :key, String
852
+
853
+ # @!attribute value
854
+ #
855
+ # @return [String]
856
+ required :value, String
857
+
858
+ # @!method initialize(key:, value:)
859
+ # @param key [String]
860
+ # @param value [String]
861
+ end
862
+
863
+ class InputSchema < Revox::Internal::Type::BaseModel
864
+ # @!attribute name
865
+ #
866
+ # @return [String]
867
+ required :name, String
868
+
869
+ # @!attribute required
870
+ #
871
+ # @return [Boolean]
872
+ required :required, Revox::Internal::Type::Boolean
873
+
874
+ # @!attribute type
875
+ #
876
+ # @return [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool::InputSchema::Type]
877
+ required :type,
878
+ enum: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool::InputSchema::Type }
879
+
880
+ # @!attribute description
881
+ #
882
+ # @return [String, nil]
883
+ optional :description, String
884
+
885
+ # @!attribute enum_options
886
+ #
887
+ # @return [Array<String>, nil]
888
+ optional :enum_options, Revox::Internal::Type::ArrayOf[String]
889
+
890
+ # @!method initialize(name:, required:, type:, description: nil, enum_options: nil)
891
+ # @param name [String]
892
+ # @param required [Boolean]
893
+ # @param type [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool::InputSchema::Type]
894
+ # @param description [String]
895
+ # @param enum_options [Array<String>]
896
+
897
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool::InputSchema#type
898
+ module Type
899
+ extend Revox::Internal::Type::Enum
900
+
901
+ STRING = :string
902
+ NUMBER = :number
903
+ BOOLEAN = :boolean
904
+ ENUM = :enum
905
+ DATE = :date
906
+ DATETIME = :datetime
907
+
908
+ # @!method self.values
909
+ # @return [Array<Symbol>]
910
+ end
911
+ end
912
+
913
+ # HTTP method to use when calling the API endpoint
914
+ #
915
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::CustomTool#method_
916
+ module Method
917
+ extend Revox::Internal::Type::Enum
918
+
919
+ GET = :GET
920
+ POST = :POST
921
+ PUT = :PUT
922
+ PATCH = :PATCH
923
+ DELETE = :DELETE
924
+
925
+ # @!method self.values
926
+ # @return [Array<Symbol>]
927
+ end
928
+
929
+ class QueryParam < Revox::Internal::Type::BaseModel
930
+ # @!attribute key
931
+ #
932
+ # @return [String]
933
+ required :key, String
934
+
935
+ # @!attribute value
936
+ #
937
+ # @return [String]
938
+ required :value, String
939
+
940
+ # @!method initialize(key:, value:)
941
+ # @param key [String]
942
+ # @param value [String]
943
+ end
944
+ end
945
+
946
+ module EmailNotificationOutcome
947
+ extend Revox::Internal::Type::Enum
948
+
949
+ NOT_INTERESTED = :not_interested
950
+ INTERESTED = :interested
951
+ COMPLETED = :completed
952
+ REQUESTED_CALLBACK_LATER = :requested_callback_later
953
+ NONE = :none
954
+
955
+ # @!method self.values
956
+ # @return [Array<Symbol>]
957
+ end
958
+
959
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant#first_sentence_mode
960
+ module FirstSentenceMode
961
+ extend Revox::Internal::Type::Enum
962
+
963
+ GENERATED = :generated
964
+ STATIC = :static
965
+ NONE = :none
966
+
967
+ # @!method self.values
968
+ # @return [Array<Symbol>]
969
+ end
970
+
971
+ # Warm or cold transfer when transfer_destinations is non-empty; null when
972
+ # transfer is not configured.
973
+ #
974
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant#human_transfer_mode
975
+ module HumanTransferMode
976
+ extend Revox::Internal::Type::Enum
977
+
978
+ WARM = :warm
979
+ COLD = :cold
980
+
981
+ # @!method self.values
982
+ # @return [Array<Symbol>]
983
+ end
984
+
985
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant#llm_model
986
+ module LlmModel
987
+ extend Revox::Internal::Type::Union
988
+
989
+ variant -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember0 }
990
+
991
+ variant -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember1 }
992
+
993
+ variant -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember2 }
994
+
995
+ variant -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember3 }
996
+
997
+ class UnionMember0 < Revox::Internal::Type::BaseModel
998
+ # @!attribute name
999
+ #
1000
+ # @return [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember0::Name]
1001
+ required :name,
1002
+ enum: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember0::Name }
1003
+
1004
+ # @!attribute type
1005
+ #
1006
+ # @return [Symbol, :"dedicated-instance"]
1007
+ required :type, const: :"dedicated-instance"
1008
+
1009
+ # @!method initialize(name:, type: :"dedicated-instance")
1010
+ # @param name [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember0::Name]
1011
+ # @param type [Symbol, :"dedicated-instance"]
1012
+
1013
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember0#name
1014
+ module Name
1015
+ extend Revox::Internal::Type::Enum
1016
+
1017
+ GPT_4_1 = :"gpt-4.1"
1018
+ MINISTRAL_3_8B_INSTRUCT = :"ministral-3-8b-instruct"
1019
+
1020
+ # @!method self.values
1021
+ # @return [Array<Symbol>]
1022
+ end
1023
+ end
1024
+
1025
+ class UnionMember1 < Revox::Internal::Type::BaseModel
1026
+ # @!attribute openrouter_model_id
1027
+ # The model ID to use from OpenRouter. eg: openai/gpt-4.1
1028
+ #
1029
+ # @return [String]
1030
+ required :openrouter_model_id, String
1031
+
1032
+ # @!attribute openrouter_provider
1033
+ # The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
1034
+ #
1035
+ # @return [String]
1036
+ required :openrouter_provider, String
1037
+
1038
+ # @!attribute type
1039
+ # Use a model from OpenRouter.
1040
+ #
1041
+ # @return [Symbol, :openrouter]
1042
+ required :type, const: :openrouter
1043
+
1044
+ # @!method initialize(openrouter_model_id:, openrouter_provider:, type: :openrouter)
1045
+ # @param openrouter_model_id [String] The model ID to use from OpenRouter. eg: openai/gpt-4.1
1046
+ #
1047
+ # @param openrouter_provider [String] The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
1048
+ #
1049
+ # @param type [Symbol, :openrouter] Use a model from OpenRouter.
1050
+ end
1051
+
1052
+ class UnionMember2 < Revox::Internal::Type::BaseModel
1053
+ # @!attribute api_key
1054
+ # API key sent as Bearer token to the custom endpoint.
1055
+ #
1056
+ # @return [String]
1057
+ required :api_key, String
1058
+
1059
+ # @!attribute api_url
1060
+ # Base URL for the OpenAI-compatible API, e.g. https://api.together.xyz/v1
1061
+ #
1062
+ # @return [String]
1063
+ required :api_url, String
1064
+
1065
+ # @!attribute model_name
1066
+ # Model name as expected by the provider, e.g. meta-llama/llama-3-70b
1067
+ #
1068
+ # @return [String]
1069
+ required :model_name, String
1070
+
1071
+ # @!attribute type
1072
+ # OpenAI-compatible chat completions API (bring your own endpoint and key).
1073
+ #
1074
+ # @return [Symbol, :custom]
1075
+ required :type, const: :custom
1076
+
1077
+ # @!method initialize(api_key:, api_url:, model_name:, type: :custom)
1078
+ # @param api_key [String] API key sent as Bearer token to the custom endpoint.
1079
+ #
1080
+ # @param api_url [String] Base URL for the OpenAI-compatible API, e.g. https://api.together.xyz/v1
1081
+ #
1082
+ # @param model_name [String] Model name as expected by the provider, e.g. meta-llama/llama-3-70b
1083
+ #
1084
+ # @param type [Symbol, :custom] OpenAI-compatible chat completions API (bring your own endpoint and key).
1085
+ end
1086
+
1087
+ class UnionMember3 < Revox::Internal::Type::BaseModel
1088
+ # @!attribute provider
1089
+ # The provider to use from Realtime. eg: openai, google.
1090
+ #
1091
+ # @return [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember3::Provider]
1092
+ required :provider,
1093
+ enum: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember3::Provider }
1094
+
1095
+ # @!attribute realtime_model_id
1096
+ # The model ID to use from Realtime. eg: gpt-4.1
1097
+ #
1098
+ # @return [String]
1099
+ required :realtime_model_id, String
1100
+
1101
+ # @!attribute type
1102
+ # Use a model from Realtime.
1103
+ #
1104
+ # @return [Symbol, :realtime]
1105
+ required :type, const: :realtime
1106
+
1107
+ # @!attribute realtime_voice_id
1108
+ # Output voice for the realtime provider (e.g. OpenAI: marin; Gemini: Puck).
1109
+ #
1110
+ # @return [String, nil]
1111
+ optional :realtime_voice_id, String
1112
+
1113
+ # @!method initialize(provider:, realtime_model_id:, realtime_voice_id: nil, type: :realtime)
1114
+ # @param provider [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember3::Provider] The provider to use from Realtime. eg: openai, google.
1115
+ #
1116
+ # @param realtime_model_id [String] The model ID to use from Realtime. eg: gpt-4.1
1117
+ #
1118
+ # @param realtime_voice_id [String] Output voice for the realtime provider (e.g. OpenAI: marin; Gemini: Puck).
1119
+ #
1120
+ # @param type [Symbol, :realtime] Use a model from Realtime.
1121
+
1122
+ # The provider to use from Realtime. eg: openai, google.
1123
+ #
1124
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember3#provider
1125
+ module Provider
1126
+ extend Revox::Internal::Type::Enum
1127
+
1128
+ OPENAI = :openai
1129
+ GOOGLE = :google
1130
+
1131
+ # @!method self.values
1132
+ # @return [Array<Symbol>]
1133
+ end
1134
+ end
1135
+
1136
+ # @!method self.variants
1137
+ # @return [Array(Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember0, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember1, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember2, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::LlmModel::UnionMember3)]
1138
+ end
1139
+
1140
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant#position
1141
+ class Position < Revox::Internal::Type::BaseModel
1142
+ # @!attribute x
1143
+ #
1144
+ # @return [Float]
1145
+ required :x, Float
1146
+
1147
+ # @!attribute y_
1148
+ #
1149
+ # @return [Float]
1150
+ required :y_, Float, api_name: :y
1151
+
1152
+ # @!method initialize(x:, y_:)
1153
+ # @param x [Float]
1154
+ # @param y_ [Float]
1155
+ end
1156
+
1157
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant#prompt_flow
1158
+ class PromptFlow < Revox::Internal::Type::BaseModel
1159
+ # @!attribute edges
1160
+ #
1161
+ # @return [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::PromptFlow::Edge>]
1162
+ required :edges,
1163
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::PromptFlow::Edge] }
1164
+
1165
+ # @!attribute nodes
1166
+ #
1167
+ # @return [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::PromptFlow::Node>]
1168
+ required :nodes,
1169
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::PromptFlow::Node] }
1170
+
1171
+ # @!method initialize(edges:, nodes:)
1172
+ # @param edges [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::PromptFlow::Edge>]
1173
+ # @param nodes [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::PromptFlow::Node>]
1174
+
1175
+ class Edge < Revox::Internal::Type::BaseModel
1176
+ # @!attribute id
1177
+ #
1178
+ # @return [String]
1179
+ required :id, String
1180
+
1181
+ # @!attribute source
1182
+ #
1183
+ # @return [String]
1184
+ required :source, String
1185
+
1186
+ # @!attribute target
1187
+ #
1188
+ # @return [String]
1189
+ required :target, String
1190
+
1191
+ # @!method initialize(id:, source:, target:)
1192
+ # @param id [String]
1193
+ # @param source [String]
1194
+ # @param target [String]
1195
+ end
1196
+
1197
+ class Node < Revox::Internal::Type::BaseModel
1198
+ # @!attribute id
1199
+ #
1200
+ # @return [String]
1201
+ required :id, String
1202
+
1203
+ # @!attribute data
1204
+ #
1205
+ # @return [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::PromptFlow::Node::Data]
1206
+ required :data,
1207
+ -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::PromptFlow::Node::Data }
1208
+
1209
+ # @!attribute position
1210
+ #
1211
+ # @return [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::PromptFlow::Node::Position]
1212
+ required :position,
1213
+ -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::PromptFlow::Node::Position }
1214
+
1215
+ # @!attribute type
1216
+ #
1217
+ # @return [Symbol, :promptBlock]
1218
+ required :type, const: :promptBlock
1219
+
1220
+ # @!method initialize(id:, data:, position:, type: :promptBlock)
1221
+ # @param id [String]
1222
+ # @param data [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::PromptFlow::Node::Data]
1223
+ # @param position [Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::PromptFlow::Node::Position]
1224
+ # @param type [Symbol, :promptBlock]
1225
+
1226
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::PromptFlow::Node#data
1227
+ class Data < Revox::Internal::Type::BaseModel
1228
+ # @!attribute body
1229
+ #
1230
+ # @return [String]
1231
+ required :body, String
1232
+
1233
+ # @!attribute title
1234
+ #
1235
+ # @return [String]
1236
+ required :title, String
1237
+
1238
+ # @!method initialize(body:, title:)
1239
+ # @param body [String]
1240
+ # @param title [String]
1241
+ end
1242
+
1243
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::PromptFlow::Node#position
1244
+ class Position < Revox::Internal::Type::BaseModel
1245
+ # @!attribute x
1246
+ #
1247
+ # @return [Float]
1248
+ required :x, Float
1249
+
1250
+ # @!attribute y_
1251
+ #
1252
+ # @return [Float]
1253
+ required :y_, Float, api_name: :y
1254
+
1255
+ # @!method initialize(x:, y_:)
1256
+ # @param x [Float]
1257
+ # @param y_ [Float]
1258
+ end
1259
+ end
1260
+ end
1261
+
1262
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant#slack
1263
+ class Slack < Revox::Internal::Type::BaseModel
1264
+ # @!attribute channels
1265
+ # The Slack channels eligible to receive the notification. When more than one is
1266
+ # configured, the agent prompt may define routing rules to narrow it down per
1267
+ # call; with no such rules every channel here is notified.
1268
+ #
1269
+ # @return [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Slack::Channel>]
1270
+ required :channels,
1271
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Slack::Channel] }
1272
+
1273
+ # @!attribute connection_id
1274
+ # The Nango connection ID linking the org's Slack workspace to Revox.
1275
+ #
1276
+ # @return [String]
1277
+ required :connection_id, String
1278
+
1279
+ # @!attribute outcomes
1280
+ # Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
1281
+ # Use 'none' to notify when outcome is null.
1282
+ #
1283
+ # @return [Array<Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Slack::Outcome>]
1284
+ required :outcomes,
1285
+ -> { Revox::Internal::Type::ArrayOf[enum: Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Slack::Outcome] }
1286
+
1287
+ # @!attribute template
1288
+ # Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
1289
+ # {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
1290
+ # {{last_name}}, {{email}}, {{company}}, {{job_title}}, {{contact_name}},
1291
+ # {{contact_line}}, plus prompt_variables and structured_output keys. When
1292
+ # null/empty a default template is used.
1293
+ #
1294
+ # @return [String, nil]
1295
+ optional :template, String, nil?: true
1296
+
1297
+ # @!method initialize(channels:, connection_id:, outcomes:, template: nil)
1298
+ # Some parameter documentations has been truncated, see
1299
+ # {Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Slack}
1300
+ # for more details.
1301
+ #
1302
+ # @param channels [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Slack::Channel>] The Slack channels eligible to receive the notification. When more than one is c
1303
+ #
1304
+ # @param connection_id [String] The Nango connection ID linking the org's Slack workspace to Revox.
1305
+ #
1306
+ # @param outcomes [Array<Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Slack::Outcome>] Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
1307
+ #
1308
+ # @param template [String, nil] Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
1309
+ # {{call\_
1310
+
1311
+ class Channel < Revox::Internal::Type::BaseModel
1312
+ # @!attribute id
1313
+ # The Slack channel ID (e.g. 'C01234567').
1314
+ #
1315
+ # @return [String]
1316
+ required :id, String
1317
+
1318
+ # @!attribute name
1319
+ # Human-readable Slack channel name, cached for display in the UI and given to the
1320
+ # LLM when the agent prompt routes by channel name.
1321
+ #
1322
+ # @return [String, nil]
1323
+ optional :name, String, nil?: true
1324
+
1325
+ # @!method initialize(id:, name: nil)
1326
+ # Some parameter documentations has been truncated, see
1327
+ # {Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Slack::Channel}
1328
+ # for more details.
1329
+ #
1330
+ # @param id [String] The Slack channel ID (e.g. 'C01234567').
1331
+ #
1332
+ # @param name [String, nil] Human-readable Slack channel name, cached for display in the UI and given to the
1333
+ end
1334
+
1335
+ module Outcome
1336
+ extend Revox::Internal::Type::Enum
1337
+
1338
+ NOT_INTERESTED = :not_interested
1339
+ INTERESTED = :interested
1340
+ COMPLETED = :completed
1341
+ REQUESTED_CALLBACK_LATER = :requested_callback_later
1342
+ NONE = :none
1343
+
1344
+ # @!method self.values
1345
+ # @return [Array<Symbol>]
1346
+ end
1347
+ end
1348
+
1349
+ class StructuredOutputConfig < Revox::Internal::Type::BaseModel
1350
+ # @!attribute name
1351
+ #
1352
+ # @return [String]
1353
+ required :name, String
1354
+
1355
+ # @!attribute required
1356
+ #
1357
+ # @return [Boolean]
1358
+ required :required, Revox::Internal::Type::Boolean
1359
+
1360
+ # @!attribute type
1361
+ #
1362
+ # @return [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::StructuredOutputConfig::Type]
1363
+ required :type,
1364
+ enum: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::StructuredOutputConfig::Type }
1365
+
1366
+ # @!attribute description
1367
+ #
1368
+ # @return [String, nil]
1369
+ optional :description, String
1370
+
1371
+ # @!attribute enum_options
1372
+ #
1373
+ # @return [Array<String>, nil]
1374
+ optional :enum_options, Revox::Internal::Type::ArrayOf[String]
1375
+
1376
+ # @!method initialize(name:, required:, type:, description: nil, enum_options: nil)
1377
+ # @param name [String]
1378
+ # @param required [Boolean]
1379
+ # @param type [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::StructuredOutputConfig::Type]
1380
+ # @param description [String]
1381
+ # @param enum_options [Array<String>]
1382
+
1383
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::StructuredOutputConfig#type
1384
+ module Type
1385
+ extend Revox::Internal::Type::Enum
1386
+
1387
+ STRING = :string
1388
+ NUMBER = :number
1389
+ BOOLEAN = :boolean
1390
+ ENUM = :enum
1391
+ DATE = :date
1392
+ DATETIME = :datetime
1393
+
1394
+ # @!method self.values
1395
+ # @return [Array<Symbol>]
1396
+ end
1397
+ end
1398
+
1399
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant#stt_context
1400
+ class SttContext < Revox::Internal::Type::BaseModel
1401
+ # @!attribute general
1402
+ #
1403
+ # @return [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::SttContext::General>]
1404
+ required :general,
1405
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::SttContext::General] }
1406
+
1407
+ # @!attribute terms
1408
+ #
1409
+ # @return [Array<String>]
1410
+ required :terms, Revox::Internal::Type::ArrayOf[String]
1411
+
1412
+ # @!method initialize(general:, terms:)
1413
+ # Assistant-level speech-to-text context: structured `general` key/value pairs
1414
+ # plus a list of domain `terms`. Prompt-derived context is merged in without
1415
+ # replacing existing entries.
1416
+ #
1417
+ # @param general [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::SttContext::General>]
1418
+ # @param terms [Array<String>]
1419
+
1420
+ class General < Revox::Internal::Type::BaseModel
1421
+ # @!attribute key
1422
+ #
1423
+ # @return [String]
1424
+ required :key, String
1425
+
1426
+ # @!attribute value
1427
+ #
1428
+ # @return [String]
1429
+ required :value, String
1430
+
1431
+ # @!method initialize(key:, value:)
1432
+ # @param key [String]
1433
+ # @param value [String]
1434
+ end
1435
+ end
1436
+
1437
+ # Transcriber (speech-to-text) model used for the assistant.
1438
+ #
1439
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant#stt_model
1440
+ module SttModel
1441
+ extend Revox::Internal::Type::Enum
1442
+
1443
+ STT_RT_V4 = :"stt-rt-v4"
1444
+ STT_RT_V5 = :"stt-rt-v5"
1445
+
1446
+ # @!method self.values
1447
+ # @return [Array<Symbol>]
1448
+ end
1449
+
1450
+ # Audio clip to play while the agent is processing a response. One of the built-in
1451
+ # LiveKit audio clips; null disables it.
1452
+ #
1453
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant#thinking_sound
1454
+ module ThinkingSound
1455
+ extend Revox::Internal::Type::Enum
1456
+
1457
+ CITY_AMBIENCE_OGG = :"city-ambience.ogg"
1458
+ FOREST_AMBIENCE_OGG = :"forest-ambience.ogg"
1459
+ OFFICE_AMBIENCE_OGG = :"office-ambience.ogg"
1460
+ CROWDED_ROOM_OGG = :"crowded-room.ogg"
1461
+ KEYBOARD_TYPING_OGG = :"keyboard-typing.ogg"
1462
+ KEYBOARD_TYPING2_OGG = :"keyboard-typing2.ogg"
1463
+ HOLD_MUSIC_OGG = :"hold_music.ogg"
1464
+
1465
+ # @!method self.values
1466
+ # @return [Array<Symbol>]
1467
+ end
1468
+
1469
+ class TransferDestination < Revox::Internal::Type::BaseModel
1470
+ # @!attribute label
1471
+ #
1472
+ # @return [String]
1473
+ required :label, String
1474
+
1475
+ # @!attribute phone_number
1476
+ #
1477
+ # @return [String]
1478
+ required :phone_number, String
1479
+
1480
+ # @!method initialize(label:, phone_number:)
1481
+ # @param label [String]
1482
+ # @param phone_number [String]
1483
+ end
1484
+
1485
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant#type
1486
+ module Type
1487
+ extend Revox::Internal::Type::Enum
1488
+
1489
+ STANDALONE = :standalone
1490
+ MULTI_STEP = :"multi-step"
1491
+ SUB_ASSISTANT = :"sub-assistant"
1492
+
1493
+ # @!method self.values
1494
+ # @return [Array<Symbol>]
1495
+ end
1496
+
1497
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant#voice
1498
+ class Voice < Revox::Internal::Type::BaseModel
1499
+ # @!attribute id
1500
+ # The ID of the voice.
1501
+ #
1502
+ # @return [String]
1503
+ required :id, String
1504
+
1505
+ # @!attribute provider
1506
+ # The provider of the voice.
1507
+ #
1508
+ # @return [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Voice::Provider]
1509
+ required :provider,
1510
+ enum: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Voice::Provider }
1511
+
1512
+ # @!attribute model
1513
+ # Cartesia TTS model (Cartesia only). Defaults to sonic-3 when omitted. Ignored
1514
+ # for other providers.
1515
+ #
1516
+ # @return [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Voice::Model, nil]
1517
+ optional :model,
1518
+ enum: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Voice::Model }
1519
+
1520
+ # @!attribute speed
1521
+ # The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
1522
+ # 0.7–1.2, Gradium 0.6–1.5. Default is 1.0.
1523
+ #
1524
+ # @return [Float, nil]
1525
+ optional :speed, Float
1526
+
1527
+ # @!attribute volume
1528
+ # Volume of the voice (Cartesia only). 0.5–2.0, default 1.0. Ignored for other
1529
+ # providers.
1530
+ #
1531
+ # @return [Float, nil]
1532
+ optional :volume, Float
1533
+
1534
+ # @!method initialize(id:, provider:, model: nil, speed: nil, volume: nil)
1535
+ # Some parameter documentations has been truncated, see
1536
+ # {Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Voice}
1537
+ # for more details.
1538
+ #
1539
+ # @param id [String] The ID of the voice.
1540
+ #
1541
+ # @param provider [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Voice::Provider] The provider of the voice.
1542
+ #
1543
+ # @param model [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Voice::Model] Cartesia TTS model (Cartesia only). Defaults to sonic-3 when omitted. Ignored fo
1544
+ #
1545
+ # @param speed [Float] The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
1546
+ #
1547
+ # @param volume [Float] Volume of the voice (Cartesia only). 0.5–2.0, default 1.0. Ignored for other pro
1548
+
1549
+ # The provider of the voice.
1550
+ #
1551
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Voice#provider
1552
+ module Provider
1553
+ extend Revox::Internal::Type::Enum
1554
+
1555
+ CARTESIA = :cartesia
1556
+ ELEVENLABS = :elevenlabs
1557
+ GRADIUM = :gradium
1558
+
1559
+ # @!method self.values
1560
+ # @return [Array<Symbol>]
1561
+ end
1562
+
1563
+ # Cartesia TTS model (Cartesia only). Defaults to sonic-3 when omitted. Ignored
1564
+ # for other providers.
1565
+ #
1566
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Voice#model
1567
+ module Model
1568
+ extend Revox::Internal::Type::Enum
1569
+
1570
+ SONIC_3 = :"sonic-3"
1571
+ SONIC_3_5 = :"sonic-3.5"
1572
+
1573
+ # @!method self.values
1574
+ # @return [Array<Symbol>]
1575
+ end
1576
+ end
1577
+
1578
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant#zoho
1579
+ class Zoho < Revox::Internal::Type::BaseModel
1580
+ # @!attribute connection_id
1581
+ # The Nango connection ID linking the org's Zoho CRM account to Revox.
1582
+ #
1583
+ # @return [String]
1584
+ required :connection_id, String
1585
+
1586
+ # @!attribute field_mapping
1587
+ # Maps extracted call fields (structured_output / prompt variables) onto Zoho
1588
+ # field API names on the upserted record.
1589
+ #
1590
+ # @return [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Zoho::FieldMapping>]
1591
+ required :field_mapping,
1592
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Zoho::FieldMapping] }
1593
+
1594
+ # @!attribute log_call_activity
1595
+ # When true, also log the call as a record in Zoho's Calls module (related to the
1596
+ # upserted prospect via Who_Id).
1597
+ #
1598
+ # @return [Boolean]
1599
+ required :log_call_activity, Revox::Internal::Type::Boolean
1600
+
1601
+ # @!attribute module_
1602
+ # Zoho module the prospect record is upserted into (e.g. 'Leads' or 'Contacts').
1603
+ #
1604
+ # @return [String]
1605
+ required :module_, String, api_name: :module
1606
+
1607
+ # @!attribute outcomes
1608
+ # Which call outcomes trigger the Zoho push (e.g. ['interested', 'none']). Use
1609
+ # 'none' to push when outcome is null.
1610
+ #
1611
+ # @return [Array<Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Zoho::Outcome>]
1612
+ required :outcomes,
1613
+ -> { Revox::Internal::Type::ArrayOf[enum: Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Zoho::Outcome] }
1614
+
1615
+ # @!attribute template
1616
+ # Optional Note body template. Supports {{summary}}, {{outcome}}, {{phone}},
1617
+ # {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{transcript}}, plus
1618
+ # prompt_variables and structured_output keys. When null/empty a default note
1619
+ # (outcome + summary + auto-listed extracted fields) is used.
1620
+ #
1621
+ # @return [String, nil]
1622
+ optional :template, String, nil?: true
1623
+
1624
+ # @!method initialize(connection_id:, field_mapping:, log_call_activity:, module_:, outcomes:, template: nil)
1625
+ # Some parameter documentations has been truncated, see
1626
+ # {Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Zoho}
1627
+ # for more details.
1628
+ #
1629
+ # @param connection_id [String] The Nango connection ID linking the org's Zoho CRM account to Revox.
1630
+ #
1631
+ # @param field_mapping [Array<Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Zoho::FieldMapping>] Maps extracted call fields (structured_output / prompt variables) onto Zoho fiel
1632
+ #
1633
+ # @param log_call_activity [Boolean] When true, also log the call as a record in Zoho's Calls module (related to the
1634
+ #
1635
+ # @param module_ [String] Zoho module the prospect record is upserted into (e.g. 'Leads' or 'Contacts').
1636
+ #
1637
+ # @param outcomes [Array<Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Zoho::Outcome>] Which call outcomes trigger the Zoho push (e.g. ['interested', 'none']). Use 'no
1638
+ #
1639
+ # @param template [String, nil] Optional Note body template. Supports {{summary}}, {{outcome}}, {{phone}}, {{cal
1640
+
1641
+ class FieldMapping < Revox::Internal::Type::BaseModel
1642
+ # @!attribute source
1643
+ # Source key to read from the call: a structured_output field name, falling back
1644
+ # to a prompt variable of the same name.
1645
+ #
1646
+ # @return [String]
1647
+ required :source, String
1648
+
1649
+ # @!attribute zoho_field
1650
+ # Destination Zoho field API name on the upserted record (e.g. 'Email', 'Company',
1651
+ # or a custom 'Budget\_\_c').
1652
+ #
1653
+ # @return [String]
1654
+ required :zoho_field, String
1655
+
1656
+ # @!method initialize(source:, zoho_field:)
1657
+ # Some parameter documentations has been truncated, see
1658
+ # {Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::Zoho::FieldMapping}
1659
+ # for more details.
1660
+ #
1661
+ # @param source [String] Source key to read from the call: a structured_output field name, falling back t
1662
+ #
1663
+ # @param zoho_field [String] Destination Zoho field API name on the upserted record (e.g. 'Email', 'Company',
1664
+ end
1665
+
1666
+ module Outcome
1667
+ extend Revox::Internal::Type::Enum
1668
+
1669
+ NOT_INTERESTED = :not_interested
1670
+ INTERESTED = :interested
1671
+ COMPLETED = :completed
1672
+ REQUESTED_CALLBACK_LATER = :requested_callback_later
1673
+ NONE = :none
1674
+
1675
+ # @!method self.values
1676
+ # @return [Array<Symbol>]
1677
+ end
1678
+ end
1679
+
1680
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant#created_by
1681
+ class CreatedBy < Revox::Internal::Type::BaseModel
1682
+ # @!attribute id
1683
+ # The database user id of the creator.
1684
+ #
1685
+ # @return [String]
1686
+ required :id, String
1687
+
1688
+ # @!attribute email
1689
+ #
1690
+ # @return [String]
1691
+ required :email, String
1692
+
1693
+ # @!attribute first_name
1694
+ #
1695
+ # @return [String, nil]
1696
+ required :first_name, String, nil?: true
1697
+
1698
+ # @!attribute last_name
1699
+ #
1700
+ # @return [String, nil]
1701
+ required :last_name, String, nil?: true
1702
+
1703
+ # @!method initialize(id:, email:, first_name:, last_name:)
1704
+ # The user who created the assistant.
1705
+ #
1706
+ # @param id [String] The database user id of the creator.
1707
+ #
1708
+ # @param email [String]
1709
+ #
1710
+ # @param first_name [String, nil]
1711
+ #
1712
+ # @param last_name [String, nil]
1713
+ end
1714
+
1715
+ class FaqItem < Revox::Internal::Type::BaseModel
1716
+ # @!attribute answer
1717
+ #
1718
+ # @return [String]
1719
+ required :answer, String
1720
+
1721
+ # @!attribute question
1722
+ #
1723
+ # @return [String]
1724
+ required :question, String
1725
+
1726
+ # @!attribute id
1727
+ #
1728
+ # @return [String, nil]
1729
+ optional :id, String
1730
+
1731
+ # @!attribute needs_human_answer
1732
+ #
1733
+ # @return [Boolean, nil]
1734
+ optional :needs_human_answer, Revox::Internal::Type::Boolean
1735
+
1736
+ # @!attribute source
1737
+ #
1738
+ # @return [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::FaqItem::Source, nil]
1739
+ optional :source,
1740
+ enum: -> { Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::FaqItem::Source }
1741
+
1742
+ # @!method initialize(answer:, question:, id: nil, needs_human_answer: nil, source: nil)
1743
+ # @param answer [String]
1744
+ # @param question [String]
1745
+ # @param id [String]
1746
+ # @param needs_human_answer [Boolean]
1747
+ # @param source [Symbol, Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::FaqItem::Source]
1748
+
1749
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber::InboundAssistant::FaqItem#source
1750
+ module Source
1751
+ extend Revox::Internal::Type::Enum
1752
+
1753
+ HUMAN = :human
1754
+ AI = :ai
1755
+
1756
+ # @!method self.values
1757
+ # @return [Array<Symbol>]
1758
+ end
1759
+ end
1760
+ end
1761
+
1762
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber#provider
1763
+ module Provider
1764
+ extend Revox::Internal::Type::Enum
1765
+
1766
+ TWILIO = :twilio
1767
+ TELNYX = :telnyx
1768
+ SIP = :sip
1769
+
1770
+ # @!method self.values
1771
+ # @return [Array<Symbol>]
1772
+ end
1773
+
1774
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber#source
1775
+ module Source
1776
+ extend Revox::Internal::Type::Enum
1777
+
1778
+ USER_IMPORTED = :user_imported
1779
+ REVOX_PROVISIONED = :revox_provisioned
1780
+ REVOX_PURCHASED = :revox_purchased
1781
+
1782
+ # @!method self.values
1783
+ # @return [Array<Symbol>]
1784
+ end
1785
+
1786
+ # @see Revox::Models::PhoneNumberListResponse::PhoneNumber#type
1787
+ module Type
1788
+ extend Revox::Internal::Type::Enum
1789
+
1790
+ OWNED_NUMBER = :owned_number
1791
+ VERIFIED_CALLER_ID = :verified_caller_id
1792
+
1793
+ # @!method self.values
1794
+ # @return [Array<Symbol>]
1795
+ end
1796
+ end
1797
+ end
1798
+ end
1799
+ end