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,535 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ # @see Revox::Resources::Assistants#create
6
+ class AssistantCreateResponse < Revox::Internal::Type::BaseModel
7
+ # @!attribute assistant
8
+ #
9
+ # @return [Revox::Models::AssistantCreateResponse::Assistant]
10
+ required :assistant, -> { Revox::Models::AssistantCreateResponse::Assistant }
11
+
12
+ # @!method initialize(assistant:)
13
+ # @param assistant [Revox::Models::AssistantCreateResponse::Assistant]
14
+
15
+ # @see Revox::Models::AssistantCreateResponse#assistant
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::AssistantCreateResponse::Assistant::BackgroundSound, nil]
27
+ required :background_sound,
28
+ enum: -> { Revox::Models::AssistantCreateResponse::Assistant::BackgroundSound },
29
+ nil?: true
30
+
31
+ # @!attribute calendly
32
+ #
33
+ # @return [Revox::Models::AssistantCreateResponse::Assistant::Calendly, nil]
34
+ required :calendly, -> { Revox::Models::AssistantCreateResponse::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::AssistantCreateResponse::Assistant::CallRetryConfig, nil]
41
+ required :call_retry_config,
42
+ -> { Revox::Models::AssistantCreateResponse::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::AssistantCreateResponse::Assistant::FirstSentenceMode]
69
+ required :first_sentence_mode,
70
+ enum: -> { Revox::Models::AssistantCreateResponse::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::AssistantCreateResponse::Assistant::LlmModel::UnionMember0, Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember1]
82
+ required :llm_model, union: -> { Revox::Models::AssistantCreateResponse::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::AssistantCreateResponse::Assistant::StructuredOutputConfig>, nil]
111
+ required :structured_output_config,
112
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::AssistantCreateResponse::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::AssistantCreateResponse::Assistant::Voice, nil]
129
+ required :voice, -> { Revox::Models::AssistantCreateResponse::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::AssistantCreateResponse::Assistant::FaqItem>, nil]
147
+ optional :faq_items,
148
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::AssistantCreateResponse::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::AssistantCreateResponse::Assistant} for more details.
158
+ #
159
+ # @param id [String]
160
+ #
161
+ # @param background_sound [Symbol, Revox::Models::AssistantCreateResponse::Assistant::BackgroundSound, nil] The background sound to play during the call. Useful to give the impression that
162
+ #
163
+ # @param calendly [Revox::Models::AssistantCreateResponse::Assistant::Calendly, nil]
164
+ #
165
+ # @param call_retry_config [Revox::Models::AssistantCreateResponse::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::AssistantCreateResponse::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::AssistantCreateResponse::Assistant::LlmModel::UnionMember0, Revox::Models::AssistantCreateResponse::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::AssistantCreateResponse::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::AssistantCreateResponse::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::AssistantCreateResponse::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::AssistantCreateResponse::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::AssistantCreateResponse::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::AssistantCreateResponse::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::AssistantCreateResponse::Assistant#call_retry_config
243
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
244
+ # @!attribute calling_windows
245
+ #
246
+ # @return [Array<Revox::Models::AssistantCreateResponse::Assistant::CallRetryConfig::CallingWindow>]
247
+ required :calling_windows,
248
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::AssistantCreateResponse::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::AssistantCreateResponse::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::AssistantCreateResponse::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::AssistantCreateResponse::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::AssistantCreateResponse::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::AssistantCreateResponse::Assistant#llm_model
327
+ module LlmModel
328
+ extend Revox::Internal::Type::Union
329
+
330
+ variant -> { Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember0 }
331
+
332
+ variant -> { Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember1 }
333
+
334
+ class UnionMember0 < Revox::Internal::Type::BaseModel
335
+ # @!attribute name
336
+ #
337
+ # @return [Symbol, Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember0::Name]
338
+ required :name,
339
+ enum: -> { Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember0::Name }
340
+
341
+ # @!attribute type
342
+ #
343
+ # @return [Symbol, :"dedicated-instance"]
344
+ required :type, const: :"dedicated-instance"
345
+
346
+ # @!method initialize(name:, type: :"dedicated-instance")
347
+ # @param name [Symbol, Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember0::Name]
348
+ # @param type [Symbol, :"dedicated-instance"]
349
+
350
+ # @see Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember0#name
351
+ module Name
352
+ extend Revox::Internal::Type::Enum
353
+
354
+ GPT_4_1 = :"gpt-4.1"
355
+ MINISTRAL_3_8B_INSTRUCT = :"ministral-3-8b-instruct"
356
+
357
+ # @!method self.values
358
+ # @return [Array<Symbol>]
359
+ end
360
+ end
361
+
362
+ class UnionMember1 < Revox::Internal::Type::BaseModel
363
+ # @!attribute openrouter_model_id
364
+ # The model ID to use from OpenRouter. eg: openai/gpt-4.1
365
+ #
366
+ # @return [String]
367
+ required :openrouter_model_id, String
368
+
369
+ # @!attribute openrouter_provider
370
+ # The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
371
+ #
372
+ # @return [String]
373
+ required :openrouter_provider, String
374
+
375
+ # @!attribute type
376
+ # Use a model from OpenRouter.
377
+ #
378
+ # @return [Symbol, :openrouter]
379
+ required :type, const: :openrouter
380
+
381
+ # @!method initialize(openrouter_model_id:, openrouter_provider:, type: :openrouter)
382
+ # @param openrouter_model_id [String] The model ID to use from OpenRouter. eg: openai/gpt-4.1
383
+ #
384
+ # @param openrouter_provider [String] The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
385
+ #
386
+ # @param type [Symbol, :openrouter] Use a model from OpenRouter.
387
+ end
388
+
389
+ # @!method self.variants
390
+ # @return [Array(Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember0, Revox::Models::AssistantCreateResponse::Assistant::LlmModel::UnionMember1)]
391
+ end
392
+
393
+ class StructuredOutputConfig < Revox::Internal::Type::BaseModel
394
+ # @!attribute name
395
+ #
396
+ # @return [String]
397
+ required :name, String
398
+
399
+ # @!attribute required
400
+ #
401
+ # @return [Boolean]
402
+ required :required, Revox::Internal::Type::Boolean
403
+
404
+ # @!attribute type
405
+ #
406
+ # @return [Symbol, Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig::Type]
407
+ required :type,
408
+ enum: -> { Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig::Type }
409
+
410
+ # @!attribute description
411
+ #
412
+ # @return [String, nil]
413
+ optional :description, String
414
+
415
+ # @!attribute enum_options
416
+ #
417
+ # @return [Array<String>, nil]
418
+ optional :enum_options, Revox::Internal::Type::ArrayOf[String]
419
+
420
+ # @!method initialize(name:, required:, type:, description: nil, enum_options: nil)
421
+ # @param name [String]
422
+ # @param required [Boolean]
423
+ # @param type [Symbol, Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig::Type]
424
+ # @param description [String]
425
+ # @param enum_options [Array<String>]
426
+
427
+ # @see Revox::Models::AssistantCreateResponse::Assistant::StructuredOutputConfig#type
428
+ module Type
429
+ extend Revox::Internal::Type::Enum
430
+
431
+ STRING = :string
432
+ NUMBER = :number
433
+ BOOLEAN = :boolean
434
+ ENUM = :enum
435
+ DATE = :date
436
+ DATETIME = :datetime
437
+
438
+ # @!method self.values
439
+ # @return [Array<Symbol>]
440
+ end
441
+ end
442
+
443
+ # @see Revox::Models::AssistantCreateResponse::Assistant#voice
444
+ class Voice < Revox::Internal::Type::BaseModel
445
+ # @!attribute id
446
+ # The ID of the voice.
447
+ #
448
+ # @return [String]
449
+ required :id, String
450
+
451
+ # @!attribute provider
452
+ # The provider of the voice.
453
+ #
454
+ # @return [Symbol, Revox::Models::AssistantCreateResponse::Assistant::Voice::Provider]
455
+ required :provider, enum: -> { Revox::Models::AssistantCreateResponse::Assistant::Voice::Provider }
456
+
457
+ # @!attribute speed
458
+ # The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
459
+ # 0.7–1.2. Default is 1.0.
460
+ #
461
+ # @return [Float, nil]
462
+ optional :speed, Float
463
+
464
+ # @!method initialize(id:, provider:, speed: nil)
465
+ # Some parameter documentations has been truncated, see
466
+ # {Revox::Models::AssistantCreateResponse::Assistant::Voice} for more details.
467
+ #
468
+ # @param id [String] The ID of the voice.
469
+ #
470
+ # @param provider [Symbol, Revox::Models::AssistantCreateResponse::Assistant::Voice::Provider] The provider of the voice.
471
+ #
472
+ # @param speed [Float] The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
473
+
474
+ # The provider of the voice.
475
+ #
476
+ # @see Revox::Models::AssistantCreateResponse::Assistant::Voice#provider
477
+ module Provider
478
+ extend Revox::Internal::Type::Enum
479
+
480
+ CARTESIA = :cartesia
481
+ ELEVENLABS = :elevenlabs
482
+
483
+ # @!method self.values
484
+ # @return [Array<Symbol>]
485
+ end
486
+ end
487
+
488
+ class FaqItem < Revox::Internal::Type::BaseModel
489
+ # @!attribute answer
490
+ #
491
+ # @return [String]
492
+ required :answer, String
493
+
494
+ # @!attribute question
495
+ #
496
+ # @return [String]
497
+ required :question, String
498
+
499
+ # @!attribute id
500
+ #
501
+ # @return [String, nil]
502
+ optional :id, String
503
+
504
+ # @!attribute needs_human_answer
505
+ #
506
+ # @return [Boolean, nil]
507
+ optional :needs_human_answer, Revox::Internal::Type::Boolean
508
+
509
+ # @!attribute source
510
+ #
511
+ # @return [Symbol, Revox::Models::AssistantCreateResponse::Assistant::FaqItem::Source, nil]
512
+ optional :source, enum: -> { Revox::Models::AssistantCreateResponse::Assistant::FaqItem::Source }
513
+
514
+ # @!method initialize(answer:, question:, id: nil, needs_human_answer: nil, source: nil)
515
+ # @param answer [String]
516
+ # @param question [String]
517
+ # @param id [String]
518
+ # @param needs_human_answer [Boolean]
519
+ # @param source [Symbol, Revox::Models::AssistantCreateResponse::Assistant::FaqItem::Source]
520
+
521
+ # @see Revox::Models::AssistantCreateResponse::Assistant::FaqItem#source
522
+ module Source
523
+ extend Revox::Internal::Type::Enum
524
+
525
+ HUMAN = :human
526
+ AI = :ai
527
+
528
+ # @!method self.values
529
+ # @return [Array<Symbol>]
530
+ end
531
+ end
532
+ end
533
+ end
534
+ end
535
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ # @see Revox::Resources::Assistants#delete
6
+ class AssistantDeleteParams < 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
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ # @see Revox::Resources::Assistants#delete
6
+ class AssistantDeleteResponse < Revox::Internal::Type::BaseModel
7
+ # @!attribute success
8
+ #
9
+ # @return [Boolean]
10
+ required :success, Revox::Internal::Type::Boolean
11
+
12
+ # @!method initialize(success:)
13
+ # @param success [Boolean]
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ # @see Revox::Resources::Assistants#list
6
+ class AssistantListParams < 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