revox 0.0.2

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 (161) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +10 -0
  4. data/README.md +234 -0
  5. data/SECURITY.md +23 -0
  6. data/lib/revox/client.rb +86 -0
  7. data/lib/revox/errors.rb +228 -0
  8. data/lib/revox/file_part.rb +58 -0
  9. data/lib/revox/internal/transport/base_client.rb +570 -0
  10. data/lib/revox/internal/transport/pooled_net_requester.rb +210 -0
  11. data/lib/revox/internal/type/array_of.rb +168 -0
  12. data/lib/revox/internal/type/base_model.rb +529 -0
  13. data/lib/revox/internal/type/base_page.rb +55 -0
  14. data/lib/revox/internal/type/boolean.rb +77 -0
  15. data/lib/revox/internal/type/converter.rb +327 -0
  16. data/lib/revox/internal/type/enum.rb +131 -0
  17. data/lib/revox/internal/type/file_input.rb +110 -0
  18. data/lib/revox/internal/type/hash_of.rb +188 -0
  19. data/lib/revox/internal/type/request_parameters.rb +42 -0
  20. data/lib/revox/internal/type/union.rb +237 -0
  21. data/lib/revox/internal/type/unknown.rb +81 -0
  22. data/lib/revox/internal/util.rb +920 -0
  23. data/lib/revox/internal.rb +20 -0
  24. data/lib/revox/models/assistant_create_params.rb +467 -0
  25. data/lib/revox/models/assistant_create_response.rb +535 -0
  26. data/lib/revox/models/assistant_delete_params.rb +14 -0
  27. data/lib/revox/models/assistant_delete_response.rb +16 -0
  28. data/lib/revox/models/assistant_list_params.rb +14 -0
  29. data/lib/revox/models/assistant_list_response.rb +533 -0
  30. data/lib/revox/models/assistant_retrieve_params.rb +14 -0
  31. data/lib/revox/models/assistant_retrieve_response.rb +518 -0
  32. data/lib/revox/models/assistant_update_params.rb +467 -0
  33. data/lib/revox/models/assistant_update_response.rb +535 -0
  34. data/lib/revox/models/call_create_params.rb +592 -0
  35. data/lib/revox/models/call_create_response.rb +684 -0
  36. data/lib/revox/models/call_list_params.rb +29 -0
  37. data/lib/revox/models/call_list_response.rb +197 -0
  38. data/lib/revox/models/call_retrieve_params.rb +14 -0
  39. data/lib/revox/models/call_retrieve_response.rb +684 -0
  40. data/lib/revox/models/users/me_retrieve_params.rb +16 -0
  41. data/lib/revox/models/users/me_retrieve_response.rb +89 -0
  42. data/lib/revox/models/users/me_update_params.rb +22 -0
  43. data/lib/revox/models/users/me_update_response.rb +89 -0
  44. data/lib/revox/models/voice_list_params.rb +14 -0
  45. data/lib/revox/models/voice_list_response.rb +91 -0
  46. data/lib/revox/models/voice_preview_params.rb +49 -0
  47. data/lib/revox/models/voice_retrieve_params.rb +30 -0
  48. data/lib/revox/models/voice_retrieve_response.rb +39 -0
  49. data/lib/revox/models.rb +65 -0
  50. data/lib/revox/request_options.rb +77 -0
  51. data/lib/revox/resources/assistants.rb +180 -0
  52. data/lib/revox/resources/call.rb +100 -0
  53. data/lib/revox/resources/users/me.rb +55 -0
  54. data/lib/revox/resources/users.rb +18 -0
  55. data/lib/revox/resources/voices.rb +83 -0
  56. data/lib/revox/version.rb +5 -0
  57. data/lib/revox.rb +85 -0
  58. data/manifest.yaml +17 -0
  59. data/rbi/revox/client.rbi +58 -0
  60. data/rbi/revox/errors.rbi +205 -0
  61. data/rbi/revox/file_part.rbi +37 -0
  62. data/rbi/revox/internal/transport/base_client.rbi +297 -0
  63. data/rbi/revox/internal/transport/pooled_net_requester.rbi +82 -0
  64. data/rbi/revox/internal/type/array_of.rbi +104 -0
  65. data/rbi/revox/internal/type/base_model.rbi +299 -0
  66. data/rbi/revox/internal/type/base_page.rbi +42 -0
  67. data/rbi/revox/internal/type/boolean.rbi +58 -0
  68. data/rbi/revox/internal/type/converter.rbi +204 -0
  69. data/rbi/revox/internal/type/enum.rbi +82 -0
  70. data/rbi/revox/internal/type/file_input.rbi +58 -0
  71. data/rbi/revox/internal/type/hash_of.rbi +104 -0
  72. data/rbi/revox/internal/type/request_parameters.rbi +29 -0
  73. data/rbi/revox/internal/type/union.rbi +126 -0
  74. data/rbi/revox/internal/type/unknown.rbi +58 -0
  75. data/rbi/revox/internal/util.rbi +478 -0
  76. data/rbi/revox/internal.rbi +16 -0
  77. data/rbi/revox/models/assistant_create_params.rbi +929 -0
  78. data/rbi/revox/models/assistant_create_response.rbi +1089 -0
  79. data/rbi/revox/models/assistant_delete_params.rbi +27 -0
  80. data/rbi/revox/models/assistant_delete_response.rbi +26 -0
  81. data/rbi/revox/models/assistant_list_params.rbi +27 -0
  82. data/rbi/revox/models/assistant_list_response.rbi +1079 -0
  83. data/rbi/revox/models/assistant_retrieve_params.rbi +27 -0
  84. data/rbi/revox/models/assistant_retrieve_response.rbi +1024 -0
  85. data/rbi/revox/models/assistant_update_params.rbi +935 -0
  86. data/rbi/revox/models/assistant_update_response.rbi +1089 -0
  87. data/rbi/revox/models/call_create_params.rbi +1147 -0
  88. data/rbi/revox/models/call_create_response.rbi +1335 -0
  89. data/rbi/revox/models/call_list_params.rbi +47 -0
  90. data/rbi/revox/models/call_list_response.rbi +401 -0
  91. data/rbi/revox/models/call_retrieve_params.rbi +27 -0
  92. data/rbi/revox/models/call_retrieve_response.rbi +1346 -0
  93. data/rbi/revox/models/users/me_retrieve_params.rbi +29 -0
  94. data/rbi/revox/models/users/me_retrieve_response.rbi +139 -0
  95. data/rbi/revox/models/users/me_update_params.rbi +43 -0
  96. data/rbi/revox/models/users/me_update_response.rbi +139 -0
  97. data/rbi/revox/models/voice_list_params.rbi +25 -0
  98. data/rbi/revox/models/voice_list_response.rbi +204 -0
  99. data/rbi/revox/models/voice_preview_params.rbi +84 -0
  100. data/rbi/revox/models/voice_retrieve_params.rbi +59 -0
  101. data/rbi/revox/models/voice_retrieve_response.rbi +70 -0
  102. data/rbi/revox/models.rbi +27 -0
  103. data/rbi/revox/request_options.rbi +55 -0
  104. data/rbi/revox/resources/assistants.rbi +206 -0
  105. data/rbi/revox/resources/call.rbi +86 -0
  106. data/rbi/revox/resources/users/me.rbi +33 -0
  107. data/rbi/revox/resources/users.rbi +15 -0
  108. data/rbi/revox/resources/voices.rbi +58 -0
  109. data/rbi/revox/version.rbi +5 -0
  110. data/sig/revox/client.rbs +32 -0
  111. data/sig/revox/errors.rbs +117 -0
  112. data/sig/revox/file_part.rbs +21 -0
  113. data/sig/revox/internal/transport/base_client.rbs +133 -0
  114. data/sig/revox/internal/transport/pooled_net_requester.rbs +48 -0
  115. data/sig/revox/internal/type/array_of.rbs +48 -0
  116. data/sig/revox/internal/type/base_model.rbs +102 -0
  117. data/sig/revox/internal/type/base_page.rbs +24 -0
  118. data/sig/revox/internal/type/boolean.rbs +26 -0
  119. data/sig/revox/internal/type/converter.rbs +79 -0
  120. data/sig/revox/internal/type/enum.rbs +32 -0
  121. data/sig/revox/internal/type/file_input.rbs +25 -0
  122. data/sig/revox/internal/type/hash_of.rbs +48 -0
  123. data/sig/revox/internal/type/request_parameters.rbs +17 -0
  124. data/sig/revox/internal/type/union.rbs +52 -0
  125. data/sig/revox/internal/type/unknown.rbs +26 -0
  126. data/sig/revox/internal/util.rbs +185 -0
  127. data/sig/revox/internal.rbs +9 -0
  128. data/sig/revox/models/assistant_create_params.rbs +413 -0
  129. data/sig/revox/models/assistant_create_response.rbs +461 -0
  130. data/sig/revox/models/assistant_delete_params.rbs +15 -0
  131. data/sig/revox/models/assistant_delete_response.rbs +13 -0
  132. data/sig/revox/models/assistant_list_params.rbs +15 -0
  133. data/sig/revox/models/assistant_list_response.rbs +461 -0
  134. data/sig/revox/models/assistant_retrieve_params.rbs +15 -0
  135. data/sig/revox/models/assistant_retrieve_response.rbs +446 -0
  136. data/sig/revox/models/assistant_update_params.rbs +417 -0
  137. data/sig/revox/models/assistant_update_response.rbs +461 -0
  138. data/sig/revox/models/call_create_params.rbs +507 -0
  139. data/sig/revox/models/call_create_response.rbs +551 -0
  140. data/sig/revox/models/call_list_params.rbs +28 -0
  141. data/sig/revox/models/call_list_response.rbs +171 -0
  142. data/sig/revox/models/call_retrieve_params.rbs +14 -0
  143. data/sig/revox/models/call_retrieve_response.rbs +551 -0
  144. data/sig/revox/models/users/me_retrieve_params.rbs +16 -0
  145. data/sig/revox/models/users/me_retrieve_response.rbs +70 -0
  146. data/sig/revox/models/users/me_update_params.rbs +28 -0
  147. data/sig/revox/models/users/me_update_response.rbs +70 -0
  148. data/sig/revox/models/voice_list_params.rbs +14 -0
  149. data/sig/revox/models/voice_list_response.rbs +83 -0
  150. data/sig/revox/models/voice_preview_params.rbs +49 -0
  151. data/sig/revox/models/voice_retrieve_params.rbs +35 -0
  152. data/sig/revox/models/voice_retrieve_response.rbs +32 -0
  153. data/sig/revox/models.rbs +25 -0
  154. data/sig/revox/request_options.rbs +34 -0
  155. data/sig/revox/resources/assistants.rbs +66 -0
  156. data/sig/revox/resources/call.rbs +31 -0
  157. data/sig/revox/resources/users/me.rbs +18 -0
  158. data/sig/revox/resources/users.rbs +9 -0
  159. data/sig/revox/resources/voices.rbs +24 -0
  160. data/sig/revox/version.rbs +3 -0
  161. metadata +232 -0
@@ -0,0 +1,533 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ # @see Revox::Resources::Assistants#list
6
+ class AssistantListResponse < Revox::Internal::Type::BaseModel
7
+ # @!attribute assistants
8
+ #
9
+ # @return [Array<Revox::Models::AssistantListResponse::Assistant>]
10
+ required :assistants,
11
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::AssistantListResponse::Assistant] }
12
+
13
+ # @!method initialize(assistants:)
14
+ # @param assistants [Array<Revox::Models::AssistantListResponse::Assistant>]
15
+
16
+ class Assistant < Revox::Internal::Type::BaseModel
17
+ # @!attribute id
18
+ #
19
+ # @return [String]
20
+ required :id, String
21
+
22
+ # @!attribute background_sound
23
+ # The background sound to play during the call. Useful to give the impression that
24
+ # your AI agent is in an office.
25
+ #
26
+ # @return [Symbol, Revox::Models::AssistantListResponse::Assistant::BackgroundSound, nil]
27
+ required :background_sound,
28
+ enum: -> { Revox::Models::AssistantListResponse::Assistant::BackgroundSound },
29
+ nil?: true
30
+
31
+ # @!attribute calendly
32
+ #
33
+ # @return [Revox::Models::AssistantListResponse::Assistant::Calendly, nil]
34
+ required :calendly, -> { Revox::Models::AssistantListResponse::Assistant::Calendly }, nil?: true
35
+
36
+ # @!attribute call_retry_config
37
+ # Configuration for call retry behavior including time windows, delays, and max
38
+ # iterations. If not provided, defaults will be used.
39
+ #
40
+ # @return [Revox::Models::AssistantListResponse::Assistant::CallRetryConfig, nil]
41
+ required :call_retry_config,
42
+ -> { Revox::Models::AssistantListResponse::Assistant::CallRetryConfig },
43
+ nil?: true
44
+
45
+ # @!attribute created_at
46
+ #
47
+ # @return [Object]
48
+ required :created_at, Revox::Internal::Type::Unknown
49
+
50
+ # @!attribute end_of_call_sentence
51
+ #
52
+ # @return [String, nil]
53
+ required :end_of_call_sentence, String, nil?: true
54
+
55
+ # @!attribute first_sentence
56
+ #
57
+ # @return [String, nil]
58
+ required :first_sentence, String, nil?: true
59
+
60
+ # @!attribute first_sentence_delay_ms
61
+ # Delay in milliseconds before speaking the first sentence. Default: 400.
62
+ #
63
+ # @return [Integer]
64
+ required :first_sentence_delay_ms, Integer
65
+
66
+ # @!attribute first_sentence_mode
67
+ #
68
+ # @return [Symbol, Revox::Models::AssistantListResponse::Assistant::FirstSentenceMode]
69
+ required :first_sentence_mode,
70
+ enum: -> { Revox::Models::AssistantListResponse::Assistant::FirstSentenceMode }
71
+
72
+ # @!attribute ivr_navigation_enabled
73
+ # Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
74
+ # skip turns to navigate phone menus.
75
+ #
76
+ # @return [Boolean]
77
+ required :ivr_navigation_enabled, Revox::Internal::Type::Boolean
78
+
79
+ # @!attribute llm_model
80
+ #
81
+ # @return [Revox::Models::AssistantListResponse::Assistant::LlmModel::UnionMember0, Revox::Models::AssistantListResponse::Assistant::LlmModel::UnionMember1]
82
+ required :llm_model, union: -> { Revox::Models::AssistantListResponse::Assistant::LlmModel }
83
+
84
+ # @!attribute max_call_duration_secs
85
+ # The maximum duration of the call in seconds. This is the maximum time the call
86
+ # will be allowed to run.
87
+ #
88
+ # @return [Float]
89
+ required :max_call_duration_secs, Float
90
+
91
+ # @!attribute name
92
+ #
93
+ # @return [String]
94
+ required :name, String
95
+
96
+ # @!attribute organization_id
97
+ #
98
+ # @return [String]
99
+ required :organization_id, String
100
+
101
+ # @!attribute prompt
102
+ #
103
+ # @return [String]
104
+ required :prompt, String
105
+
106
+ # @!attribute structured_output_config
107
+ # The structured output config to use for the call. This is used to extract the
108
+ # data from the call (like email, name, company name, etc.).
109
+ #
110
+ # @return [Array<Revox::Models::AssistantListResponse::Assistant::StructuredOutputConfig>, nil]
111
+ required :structured_output_config,
112
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::AssistantListResponse::Assistant::StructuredOutputConfig] },
113
+ nil?: true
114
+
115
+ # @!attribute transfer_phone_number
116
+ # Phone number to transfer calls to when users request to speak to a human agent.
117
+ #
118
+ # @return [String, nil]
119
+ required :transfer_phone_number, String, nil?: true
120
+
121
+ # @!attribute updated_at
122
+ #
123
+ # @return [Object]
124
+ required :updated_at, Revox::Internal::Type::Unknown
125
+
126
+ # @!attribute voice
127
+ #
128
+ # @return [Revox::Models::AssistantListResponse::Assistant::Voice, nil]
129
+ required :voice, -> { Revox::Models::AssistantListResponse::Assistant::Voice }, nil?: true
130
+
131
+ # @!attribute voicemail_message
132
+ # If set, when voicemail is detected the agent will speak this message then hang
133
+ # up; if null, hang up immediately.
134
+ #
135
+ # @return [String, nil]
136
+ required :voicemail_message, String, nil?: true
137
+
138
+ # @!attribute webhook_url
139
+ # The webhook URL to call when the call is completed.
140
+ #
141
+ # @return [String, nil]
142
+ required :webhook_url, String, nil?: true
143
+
144
+ # @!attribute faq_items
145
+ #
146
+ # @return [Array<Revox::Models::AssistantListResponse::Assistant::FaqItem>, nil]
147
+ optional :faq_items,
148
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::AssistantListResponse::Assistant::FaqItem] }
149
+
150
+ # @!attribute pending_faq_count
151
+ #
152
+ # @return [Float, nil]
153
+ optional :pending_faq_count, Float
154
+
155
+ # @!method initialize(id:, background_sound:, calendly:, call_retry_config:, created_at:, end_of_call_sentence:, first_sentence:, first_sentence_delay_ms:, first_sentence_mode:, ivr_navigation_enabled:, llm_model:, max_call_duration_secs:, name:, organization_id:, prompt:, structured_output_config:, transfer_phone_number:, updated_at:, voice:, voicemail_message:, webhook_url:, faq_items: nil, pending_faq_count: nil)
156
+ # Some parameter documentations has been truncated, see
157
+ # {Revox::Models::AssistantListResponse::Assistant} for more details.
158
+ #
159
+ # @param id [String]
160
+ #
161
+ # @param background_sound [Symbol, Revox::Models::AssistantListResponse::Assistant::BackgroundSound, nil] The background sound to play during the call. Useful to give the impression that
162
+ #
163
+ # @param calendly [Revox::Models::AssistantListResponse::Assistant::Calendly, nil]
164
+ #
165
+ # @param call_retry_config [Revox::Models::AssistantListResponse::Assistant::CallRetryConfig, nil] Configuration for call retry behavior including time windows, delays, and max it
166
+ #
167
+ # @param created_at [Object]
168
+ #
169
+ # @param end_of_call_sentence [String, nil]
170
+ #
171
+ # @param first_sentence [String, nil]
172
+ #
173
+ # @param first_sentence_delay_ms [Integer] Delay in milliseconds before speaking the first sentence. Default: 400.
174
+ #
175
+ # @param first_sentence_mode [Symbol, Revox::Models::AssistantListResponse::Assistant::FirstSentenceMode]
176
+ #
177
+ # @param ivr_navigation_enabled [Boolean] Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
178
+ #
179
+ # @param llm_model [Revox::Models::AssistantListResponse::Assistant::LlmModel::UnionMember0, Revox::Models::AssistantListResponse::Assistant::LlmModel::UnionMember1]
180
+ #
181
+ # @param max_call_duration_secs [Float] The maximum duration of the call in seconds. This is the maximum time the call w
182
+ #
183
+ # @param name [String]
184
+ #
185
+ # @param organization_id [String]
186
+ #
187
+ # @param prompt [String]
188
+ #
189
+ # @param structured_output_config [Array<Revox::Models::AssistantListResponse::Assistant::StructuredOutputConfig>, nil] The structured output config to use for the call. This is used to extract the da
190
+ #
191
+ # @param transfer_phone_number [String, nil] Phone number to transfer calls to when users request to speak to a human agent.
192
+ #
193
+ # @param updated_at [Object]
194
+ #
195
+ # @param voice [Revox::Models::AssistantListResponse::Assistant::Voice, nil]
196
+ #
197
+ # @param voicemail_message [String, nil] If set, when voicemail is detected the agent will speak this message then hang u
198
+ #
199
+ # @param webhook_url [String, nil] The webhook URL to call when the call is completed.
200
+ #
201
+ # @param faq_items [Array<Revox::Models::AssistantListResponse::Assistant::FaqItem>]
202
+ #
203
+ # @param pending_faq_count [Float]
204
+
205
+ # The background sound to play during the call. Useful to give the impression that
206
+ # your AI agent is in an office.
207
+ #
208
+ # @see Revox::Models::AssistantListResponse::Assistant#background_sound
209
+ module BackgroundSound
210
+ extend Revox::Internal::Type::Enum
211
+
212
+ AUDIO_OFFICE_OGG = :"audio/office.ogg"
213
+
214
+ # @!method self.values
215
+ # @return [Array<Symbol>]
216
+ end
217
+
218
+ # @see Revox::Models::AssistantListResponse::Assistant#calendly
219
+ class Calendly < Revox::Internal::Type::BaseModel
220
+ # @!attribute connection_id
221
+ # The connection ID representing the link between your Calendly account and Revox.
222
+ #
223
+ # @return [String]
224
+ required :connection_id, String
225
+
226
+ # @!attribute event_type_id
227
+ # The event type ID representing the event type to schedule. (eg:
228
+ # https://api.calendly.com/event_types/b2330295-2a91-4a1d-bb73-99e7707663d5)
229
+ #
230
+ # @return [String]
231
+ required :event_type_id, String
232
+
233
+ # @!method initialize(connection_id:, event_type_id:)
234
+ # Some parameter documentations has been truncated, see
235
+ # {Revox::Models::AssistantListResponse::Assistant::Calendly} for more details.
236
+ #
237
+ # @param connection_id [String] The connection ID representing the link between your Calendly account and Revox.
238
+ #
239
+ # @param event_type_id [String] The event type ID representing the event type to schedule. (eg: https://api.cale
240
+ end
241
+
242
+ # @see Revox::Models::AssistantListResponse::Assistant#call_retry_config
243
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
244
+ # @!attribute calling_windows
245
+ #
246
+ # @return [Array<Revox::Models::AssistantListResponse::Assistant::CallRetryConfig::CallingWindow>]
247
+ required :calling_windows,
248
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::AssistantListResponse::Assistant::CallRetryConfig::CallingWindow] }
249
+
250
+ # @!attribute max_retry_attempts
251
+ # Maximum number of call retry attempts. Default: 3.
252
+ #
253
+ # @return [Integer]
254
+ required :max_retry_attempts, Integer
255
+
256
+ # @!attribute timezone
257
+ # Optional IANA timezone identifier to override the automatic timezone detection
258
+ # from phone number. If not provided, timezone is determined from the recipient's
259
+ # phone number country code. Examples: 'America/New_York', 'Europe/Paris'.
260
+ #
261
+ # @return [String, nil]
262
+ optional :timezone, String, nil?: true
263
+
264
+ # @!method initialize(calling_windows:, max_retry_attempts:, timezone: nil)
265
+ # Some parameter documentations has been truncated, see
266
+ # {Revox::Models::AssistantListResponse::Assistant::CallRetryConfig} for more
267
+ # details.
268
+ #
269
+ # Configuration for call retry behavior including time windows, delays, and max
270
+ # iterations. If not provided, defaults will be used.
271
+ #
272
+ # @param calling_windows [Array<Revox::Models::AssistantListResponse::Assistant::CallRetryConfig::CallingWindow>]
273
+ #
274
+ # @param max_retry_attempts [Integer] Maximum number of call retry attempts. Default: 3.
275
+ #
276
+ # @param timezone [String, nil] Optional IANA timezone identifier to override the automatic timezone detection f
277
+
278
+ class CallingWindow < Revox::Internal::Type::BaseModel
279
+ # @!attribute calling_window_end_time
280
+ # End time for the calling window in the recipient's timezone (or
281
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
282
+ # Examples: '17:00', '6pm'. Default: '18:00'.
283
+ #
284
+ # @return [String]
285
+ required :calling_window_end_time, String
286
+
287
+ # @!attribute calling_window_start_time
288
+ # Start time for the calling window in the recipient's timezone (or
289
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
290
+ # Examples: '09:00', '10am'. Default: '10:00'.
291
+ #
292
+ # @return [String]
293
+ required :calling_window_start_time, String
294
+
295
+ # @!attribute retry_delay_seconds
296
+ # Delay between retry attempts in seconds. Default: 7200 (2 hours).
297
+ #
298
+ # @return [Integer]
299
+ required :retry_delay_seconds, Integer
300
+
301
+ # @!method initialize(calling_window_end_time:, calling_window_start_time:, retry_delay_seconds:)
302
+ # Some parameter documentations has been truncated, see
303
+ # {Revox::Models::AssistantListResponse::Assistant::CallRetryConfig::CallingWindow}
304
+ # for more details.
305
+ #
306
+ # @param calling_window_end_time [String] End time for the calling window in the recipient's timezone (or timezone_overrid
307
+ #
308
+ # @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
309
+ #
310
+ # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. Default: 7200 (2 hours).
311
+ end
312
+ end
313
+
314
+ # @see Revox::Models::AssistantListResponse::Assistant#first_sentence_mode
315
+ module FirstSentenceMode
316
+ extend Revox::Internal::Type::Enum
317
+
318
+ GENERATED = :generated
319
+ STATIC = :static
320
+ NONE = :none
321
+
322
+ # @!method self.values
323
+ # @return [Array<Symbol>]
324
+ end
325
+
326
+ # @see Revox::Models::AssistantListResponse::Assistant#llm_model
327
+ module LlmModel
328
+ extend Revox::Internal::Type::Union
329
+
330
+ variant -> { Revox::Models::AssistantListResponse::Assistant::LlmModel::UnionMember0 }
331
+
332
+ variant -> { Revox::Models::AssistantListResponse::Assistant::LlmModel::UnionMember1 }
333
+
334
+ class UnionMember0 < Revox::Internal::Type::BaseModel
335
+ # @!attribute name
336
+ #
337
+ # @return [Symbol, Revox::Models::AssistantListResponse::Assistant::LlmModel::UnionMember0::Name]
338
+ required :name, enum: -> { Revox::Models::AssistantListResponse::Assistant::LlmModel::UnionMember0::Name }
339
+
340
+ # @!attribute type
341
+ #
342
+ # @return [Symbol, :"dedicated-instance"]
343
+ required :type, const: :"dedicated-instance"
344
+
345
+ # @!method initialize(name:, type: :"dedicated-instance")
346
+ # @param name [Symbol, Revox::Models::AssistantListResponse::Assistant::LlmModel::UnionMember0::Name]
347
+ # @param type [Symbol, :"dedicated-instance"]
348
+
349
+ # @see Revox::Models::AssistantListResponse::Assistant::LlmModel::UnionMember0#name
350
+ module Name
351
+ extend Revox::Internal::Type::Enum
352
+
353
+ GPT_4_1 = :"gpt-4.1"
354
+ MINISTRAL_3_8B_INSTRUCT = :"ministral-3-8b-instruct"
355
+
356
+ # @!method self.values
357
+ # @return [Array<Symbol>]
358
+ end
359
+ end
360
+
361
+ class UnionMember1 < Revox::Internal::Type::BaseModel
362
+ # @!attribute openrouter_model_id
363
+ # The model ID to use from OpenRouter. eg: openai/gpt-4.1
364
+ #
365
+ # @return [String]
366
+ required :openrouter_model_id, String
367
+
368
+ # @!attribute openrouter_provider
369
+ # The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
370
+ #
371
+ # @return [String]
372
+ required :openrouter_provider, String
373
+
374
+ # @!attribute type
375
+ # Use a model from OpenRouter.
376
+ #
377
+ # @return [Symbol, :openrouter]
378
+ required :type, const: :openrouter
379
+
380
+ # @!method initialize(openrouter_model_id:, openrouter_provider:, type: :openrouter)
381
+ # @param openrouter_model_id [String] The model ID to use from OpenRouter. eg: openai/gpt-4.1
382
+ #
383
+ # @param openrouter_provider [String] The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
384
+ #
385
+ # @param type [Symbol, :openrouter] Use a model from OpenRouter.
386
+ end
387
+
388
+ # @!method self.variants
389
+ # @return [Array(Revox::Models::AssistantListResponse::Assistant::LlmModel::UnionMember0, Revox::Models::AssistantListResponse::Assistant::LlmModel::UnionMember1)]
390
+ end
391
+
392
+ class StructuredOutputConfig < Revox::Internal::Type::BaseModel
393
+ # @!attribute name
394
+ #
395
+ # @return [String]
396
+ required :name, String
397
+
398
+ # @!attribute required
399
+ #
400
+ # @return [Boolean]
401
+ required :required, Revox::Internal::Type::Boolean
402
+
403
+ # @!attribute type
404
+ #
405
+ # @return [Symbol, Revox::Models::AssistantListResponse::Assistant::StructuredOutputConfig::Type]
406
+ required :type, enum: -> { Revox::Models::AssistantListResponse::Assistant::StructuredOutputConfig::Type }
407
+
408
+ # @!attribute description
409
+ #
410
+ # @return [String, nil]
411
+ optional :description, String
412
+
413
+ # @!attribute enum_options
414
+ #
415
+ # @return [Array<String>, nil]
416
+ optional :enum_options, Revox::Internal::Type::ArrayOf[String]
417
+
418
+ # @!method initialize(name:, required:, type:, description: nil, enum_options: nil)
419
+ # @param name [String]
420
+ # @param required [Boolean]
421
+ # @param type [Symbol, Revox::Models::AssistantListResponse::Assistant::StructuredOutputConfig::Type]
422
+ # @param description [String]
423
+ # @param enum_options [Array<String>]
424
+
425
+ # @see Revox::Models::AssistantListResponse::Assistant::StructuredOutputConfig#type
426
+ module Type
427
+ extend Revox::Internal::Type::Enum
428
+
429
+ STRING = :string
430
+ NUMBER = :number
431
+ BOOLEAN = :boolean
432
+ ENUM = :enum
433
+ DATE = :date
434
+ DATETIME = :datetime
435
+
436
+ # @!method self.values
437
+ # @return [Array<Symbol>]
438
+ end
439
+ end
440
+
441
+ # @see Revox::Models::AssistantListResponse::Assistant#voice
442
+ class Voice < Revox::Internal::Type::BaseModel
443
+ # @!attribute id
444
+ # The ID of the voice.
445
+ #
446
+ # @return [String]
447
+ required :id, String
448
+
449
+ # @!attribute provider
450
+ # The provider of the voice.
451
+ #
452
+ # @return [Symbol, Revox::Models::AssistantListResponse::Assistant::Voice::Provider]
453
+ required :provider, enum: -> { Revox::Models::AssistantListResponse::Assistant::Voice::Provider }
454
+
455
+ # @!attribute speed
456
+ # The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
457
+ # 0.7–1.2. Default is 1.0.
458
+ #
459
+ # @return [Float, nil]
460
+ optional :speed, Float
461
+
462
+ # @!method initialize(id:, provider:, speed: nil)
463
+ # Some parameter documentations has been truncated, see
464
+ # {Revox::Models::AssistantListResponse::Assistant::Voice} for more details.
465
+ #
466
+ # @param id [String] The ID of the voice.
467
+ #
468
+ # @param provider [Symbol, Revox::Models::AssistantListResponse::Assistant::Voice::Provider] The provider of the voice.
469
+ #
470
+ # @param speed [Float] The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
471
+
472
+ # The provider of the voice.
473
+ #
474
+ # @see Revox::Models::AssistantListResponse::Assistant::Voice#provider
475
+ module Provider
476
+ extend Revox::Internal::Type::Enum
477
+
478
+ CARTESIA = :cartesia
479
+ ELEVENLABS = :elevenlabs
480
+
481
+ # @!method self.values
482
+ # @return [Array<Symbol>]
483
+ end
484
+ end
485
+
486
+ class FaqItem < Revox::Internal::Type::BaseModel
487
+ # @!attribute answer
488
+ #
489
+ # @return [String]
490
+ required :answer, String
491
+
492
+ # @!attribute question
493
+ #
494
+ # @return [String]
495
+ required :question, String
496
+
497
+ # @!attribute id
498
+ #
499
+ # @return [String, nil]
500
+ optional :id, String
501
+
502
+ # @!attribute needs_human_answer
503
+ #
504
+ # @return [Boolean, nil]
505
+ optional :needs_human_answer, Revox::Internal::Type::Boolean
506
+
507
+ # @!attribute source
508
+ #
509
+ # @return [Symbol, Revox::Models::AssistantListResponse::Assistant::FaqItem::Source, nil]
510
+ optional :source, enum: -> { Revox::Models::AssistantListResponse::Assistant::FaqItem::Source }
511
+
512
+ # @!method initialize(answer:, question:, id: nil, needs_human_answer: nil, source: nil)
513
+ # @param answer [String]
514
+ # @param question [String]
515
+ # @param id [String]
516
+ # @param needs_human_answer [Boolean]
517
+ # @param source [Symbol, Revox::Models::AssistantListResponse::Assistant::FaqItem::Source]
518
+
519
+ # @see Revox::Models::AssistantListResponse::Assistant::FaqItem#source
520
+ module Source
521
+ extend Revox::Internal::Type::Enum
522
+
523
+ HUMAN = :human
524
+ AI = :ai
525
+
526
+ # @!method self.values
527
+ # @return [Array<Symbol>]
528
+ end
529
+ end
530
+ end
531
+ end
532
+ end
533
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ # @see Revox::Resources::Assistants#retrieve
6
+ class AssistantRetrieveParams < Revox::Internal::Type::BaseModel
7
+ extend Revox::Internal::Type::RequestParameters::Converter
8
+ include Revox::Internal::Type::RequestParameters
9
+
10
+ # @!method initialize(request_options: {})
11
+ # @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}]
12
+ end
13
+ end
14
+ end