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,684 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ # @see Revox::Resources::Call#retrieve
6
+ class CallRetrieveResponse < Revox::Internal::Type::BaseModel
7
+ # @!attribute call
8
+ # This represent a call "order" that was requested by the user. A call order can
9
+ # be resolved over multiple call attempts spanning up to a few days.
10
+ #
11
+ # @return [Revox::Models::CallRetrieveResponse::Call]
12
+ required :call, -> { Revox::Models::CallRetrieveResponse::Call }
13
+
14
+ # @!method initialize(call:)
15
+ # Some parameter documentations has been truncated, see
16
+ # {Revox::Models::CallRetrieveResponse} for more details.
17
+ #
18
+ # @param call [Revox::Models::CallRetrieveResponse::Call] This represent a call "order" that was requested by the user. A call order can b
19
+
20
+ # @see Revox::Models::CallRetrieveResponse#call
21
+ class Call < Revox::Internal::Type::BaseModel
22
+ # @!attribute id
23
+ # The ID of the call.
24
+ #
25
+ # @return [String]
26
+ required :id, String
27
+
28
+ # @!attribute call_attempts
29
+ # All call attempts for this call order, ordered by most recent first.
30
+ #
31
+ # @return [Array<Revox::Models::CallRetrieveResponse::Call::CallAttempt>]
32
+ required :call_attempts,
33
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CallRetrieveResponse::Call::CallAttempt] }
34
+
35
+ # @!attribute call_retry_config
36
+ # Configuration for call retry behavior including time windows, delays, and max
37
+ # iterations. If not provided, defaults will be used.
38
+ #
39
+ # @return [Revox::Models::CallRetrieveResponse::Call::CallRetryConfig, nil]
40
+ required :call_retry_config, -> { Revox::Models::CallRetrieveResponse::Call::CallRetryConfig }, nil?: true
41
+
42
+ # @!attribute calls_count
43
+ # The number of call attempts made.
44
+ #
45
+ # @return [Float]
46
+ required :calls_count, Float
47
+
48
+ # @!attribute created_at
49
+ # The time the call order was created.
50
+ #
51
+ # @return [Object]
52
+ required :created_at, Revox::Internal::Type::Unknown
53
+
54
+ # @!attribute direction
55
+ # Whether the call is inbound or outbound.
56
+ #
57
+ # @return [Symbol, Revox::Models::CallRetrieveResponse::Call::Direction]
58
+ required :direction, enum: -> { Revox::Models::CallRetrieveResponse::Call::Direction }
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 from_phone_number
67
+ # The phone number that made the call. Formatted in E.164 format. Example:
68
+ # +1234567890
69
+ #
70
+ # @return [String]
71
+ required :from_phone_number, String
72
+
73
+ # @!attribute is_cancelled
74
+ # Whether the call was cancelled.
75
+ #
76
+ # @return [Boolean]
77
+ required :is_cancelled, Revox::Internal::Type::Boolean
78
+
79
+ # @!attribute is_completed
80
+ # Whether the call is completed or still in progress.
81
+ #
82
+ # @return [Boolean]
83
+ required :is_completed, Revox::Internal::Type::Boolean
84
+
85
+ # @!attribute last_call_attempt
86
+ # This represent a single call attempt. A call attempt is a single call made to
87
+ # the phone number.
88
+ #
89
+ # @return [Revox::Models::CallRetrieveResponse::Call::LastCallAttempt, nil]
90
+ required :last_call_attempt, -> { Revox::Models::CallRetrieveResponse::Call::LastCallAttempt }, nil?: true
91
+
92
+ # @!attribute llm_model
93
+ #
94
+ # @return [Revox::Models::CallRetrieveResponse::Call::LlmModel::UnionMember0, Revox::Models::CallRetrieveResponse::Call::LlmModel::UnionMember1]
95
+ required :llm_model, union: -> { Revox::Models::CallRetrieveResponse::Call::LlmModel }
96
+
97
+ # @!attribute metadata
98
+ # Metadata stored with the call.
99
+ #
100
+ # @return [Hash{Symbol=>String}, nil]
101
+ required :metadata, Revox::Internal::Type::HashOf[String], nil?: true
102
+
103
+ # @!attribute next_call_at
104
+ # The next call attempt time.
105
+ #
106
+ # @return [Object]
107
+ required :next_call_at, Revox::Internal::Type::Unknown
108
+
109
+ # @!attribute scheduled_at
110
+ # The time the call order is scheduled to start.
111
+ #
112
+ # @return [Object]
113
+ required :scheduled_at, Revox::Internal::Type::Unknown
114
+
115
+ # @!attribute to_phone_number
116
+ # The phone number that received the call. Formatted in E.164 format. Example:
117
+ # +1234567890
118
+ #
119
+ # @return [String]
120
+ required :to_phone_number, String
121
+
122
+ # @!method initialize(id:, call_attempts:, call_retry_config:, calls_count:, created_at:, direction:, first_sentence_delay_ms:, from_phone_number:, is_cancelled:, is_completed:, last_call_attempt:, llm_model:, metadata:, next_call_at:, scheduled_at:, to_phone_number:)
123
+ # Some parameter documentations has been truncated, see
124
+ # {Revox::Models::CallRetrieveResponse::Call} for more details.
125
+ #
126
+ # This represent a call "order" that was requested by the user. A call order can
127
+ # be resolved over multiple call attempts spanning up to a few days.
128
+ #
129
+ # @param id [String] The ID of the call.
130
+ #
131
+ # @param call_attempts [Array<Revox::Models::CallRetrieveResponse::Call::CallAttempt>] All call attempts for this call order, ordered by most recent first.
132
+ #
133
+ # @param call_retry_config [Revox::Models::CallRetrieveResponse::Call::CallRetryConfig, nil] Configuration for call retry behavior including time windows, delays, and max it
134
+ #
135
+ # @param calls_count [Float] The number of call attempts made.
136
+ #
137
+ # @param created_at [Object] The time the call order was created.
138
+ #
139
+ # @param direction [Symbol, Revox::Models::CallRetrieveResponse::Call::Direction] Whether the call is inbound or outbound.
140
+ #
141
+ # @param first_sentence_delay_ms [Integer] Delay in milliseconds before speaking the first sentence. Default: 400.
142
+ #
143
+ # @param from_phone_number [String] The phone number that made the call. Formatted in E.164 format. Example: +123456
144
+ #
145
+ # @param is_cancelled [Boolean] Whether the call was cancelled.
146
+ #
147
+ # @param is_completed [Boolean] Whether the call is completed or still in progress.
148
+ #
149
+ # @param last_call_attempt [Revox::Models::CallRetrieveResponse::Call::LastCallAttempt, nil] This represent a single call attempt. A call attempt is a single call made to th
150
+ #
151
+ # @param llm_model [Revox::Models::CallRetrieveResponse::Call::LlmModel::UnionMember0, Revox::Models::CallRetrieveResponse::Call::LlmModel::UnionMember1]
152
+ #
153
+ # @param metadata [Hash{Symbol=>String}, nil] Metadata stored with the call.
154
+ #
155
+ # @param next_call_at [Object] The next call attempt time.
156
+ #
157
+ # @param scheduled_at [Object] The time the call order is scheduled to start.
158
+ #
159
+ # @param to_phone_number [String] The phone number that received the call. Formatted in E.164 format. Example: +12
160
+
161
+ class CallAttempt < Revox::Internal::Type::BaseModel
162
+ # @!attribute id
163
+ # The ID of the call attempt.
164
+ #
165
+ # @return [String]
166
+ required :id, String
167
+
168
+ # @!attribute answered_at
169
+ # The time the call was answered.
170
+ #
171
+ # @return [Object]
172
+ required :answered_at, Revox::Internal::Type::Unknown
173
+
174
+ # @!attribute ended_at
175
+ # The time the call ended.
176
+ #
177
+ # @return [Object]
178
+ required :ended_at, Revox::Internal::Type::Unknown
179
+
180
+ # @!attribute phone_number
181
+ # The phone number that was called. Formatted in E.164 format. Example:
182
+ # +1234567890
183
+ #
184
+ # @return [String]
185
+ required :phone_number, String
186
+
187
+ # @!attribute recording_url
188
+ # The URL of the audio recording of the call.
189
+ #
190
+ # @return [String, nil]
191
+ required :recording_url, String, nil?: true
192
+
193
+ # @!attribute result
194
+ #
195
+ # @return [Symbol, Revox::Models::CallRetrieveResponse::Call::CallAttempt::Result, nil]
196
+ required :result, enum: -> { Revox::Models::CallRetrieveResponse::Call::CallAttempt::Result }, nil?: true
197
+
198
+ # @!attribute started_at
199
+ # The time the call started.
200
+ #
201
+ # @return [Object]
202
+ required :started_at, Revox::Internal::Type::Unknown
203
+
204
+ # @!attribute status
205
+ # The status of the call attempt.
206
+ #
207
+ # @return [Symbol, Revox::Models::CallRetrieveResponse::Call::CallAttempt::Status]
208
+ required :status, enum: -> { Revox::Models::CallRetrieveResponse::Call::CallAttempt::Status }
209
+
210
+ # @!attribute structured_output
211
+ # The data extracted from the call, using the structured output config from the
212
+ # parent call object.
213
+ #
214
+ # @return [Hash{Symbol=>Object}, nil]
215
+ optional :structured_output,
216
+ Revox::Internal::Type::HashOf[Revox::Internal::Type::Unknown],
217
+ nil?: true
218
+
219
+ # @!attribute transcript
220
+ # The transcript of the call.
221
+ #
222
+ # @return [Array<Revox::Models::CallRetrieveResponse::Call::CallAttempt::Transcript>, nil]
223
+ optional :transcript,
224
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CallRetrieveResponse::Call::CallAttempt::Transcript] },
225
+ nil?: true
226
+
227
+ # @!method initialize(id:, answered_at:, ended_at:, phone_number:, recording_url:, result:, started_at:, status:, structured_output: nil, transcript: nil)
228
+ # Some parameter documentations has been truncated, see
229
+ # {Revox::Models::CallRetrieveResponse::Call::CallAttempt} for more details.
230
+ #
231
+ # This represent a single call attempt. A call attempt is a single call made to
232
+ # the phone number.
233
+ #
234
+ # @param id [String] The ID of the call attempt.
235
+ #
236
+ # @param answered_at [Object] The time the call was answered.
237
+ #
238
+ # @param ended_at [Object] The time the call ended.
239
+ #
240
+ # @param phone_number [String] The phone number that was called. Formatted in E.164 format. Example: +123456789
241
+ #
242
+ # @param recording_url [String, nil] The URL of the audio recording of the call.
243
+ #
244
+ # @param result [Symbol, Revox::Models::CallRetrieveResponse::Call::CallAttempt::Result, nil]
245
+ #
246
+ # @param started_at [Object] The time the call started.
247
+ #
248
+ # @param status [Symbol, Revox::Models::CallRetrieveResponse::Call::CallAttempt::Status] The status of the call attempt.
249
+ #
250
+ # @param structured_output [Hash{Symbol=>Object}, nil] The data extracted from the call, using the structured output config from the pa
251
+ #
252
+ # @param transcript [Array<Revox::Models::CallRetrieveResponse::Call::CallAttempt::Transcript>, nil] The transcript of the call.
253
+
254
+ # @see Revox::Models::CallRetrieveResponse::Call::CallAttempt#result
255
+ module Result
256
+ extend Revox::Internal::Type::Enum
257
+
258
+ IVR = :IVR
259
+ VOICEMAIL = :voicemail
260
+ HUMAN = :human
261
+ UNKNOWN = :unknown
262
+
263
+ # @!method self.values
264
+ # @return [Array<Symbol>]
265
+ end
266
+
267
+ # The status of the call attempt.
268
+ #
269
+ # @see Revox::Models::CallRetrieveResponse::Call::CallAttempt#status
270
+ module Status
271
+ extend Revox::Internal::Type::Enum
272
+
273
+ QUEUED = :queued
274
+ RINGING = :ringing
275
+ ONGOING = :ongoing
276
+ COMPLETED = :completed
277
+
278
+ # @!method self.values
279
+ # @return [Array<Symbol>]
280
+ end
281
+
282
+ class Transcript < Revox::Internal::Type::BaseModel
283
+ # @!attribute content
284
+ #
285
+ # @return [String]
286
+ required :content, String
287
+
288
+ # @!attribute role
289
+ #
290
+ # @return [Symbol, Revox::Models::CallRetrieveResponse::Call::CallAttempt::Transcript::Role]
291
+ required :role, enum: -> { Revox::Models::CallRetrieveResponse::Call::CallAttempt::Transcript::Role }
292
+
293
+ # @!attribute tool_arguments
294
+ #
295
+ # @return [Hash{Symbol=>Object}, String, nil]
296
+ optional :tool_arguments,
297
+ union: -> { Revox::Models::CallRetrieveResponse::Call::CallAttempt::Transcript::ToolArguments }
298
+
299
+ # @!attribute tool_is_error
300
+ #
301
+ # @return [Boolean, nil]
302
+ optional :tool_is_error, Revox::Internal::Type::Boolean
303
+
304
+ # @!attribute tool_name
305
+ #
306
+ # @return [String, nil]
307
+ optional :tool_name, String
308
+
309
+ # @!method initialize(content:, role:, tool_arguments: nil, tool_is_error: nil, tool_name: nil)
310
+ # @param content [String]
311
+ # @param role [Symbol, Revox::Models::CallRetrieveResponse::Call::CallAttempt::Transcript::Role]
312
+ # @param tool_arguments [Hash{Symbol=>Object}, String]
313
+ # @param tool_is_error [Boolean]
314
+ # @param tool_name [String]
315
+
316
+ # @see Revox::Models::CallRetrieveResponse::Call::CallAttempt::Transcript#role
317
+ module Role
318
+ extend Revox::Internal::Type::Enum
319
+
320
+ USER = :user
321
+ ASSISTANT = :assistant
322
+ TOOL = :tool
323
+
324
+ # @!method self.values
325
+ # @return [Array<Symbol>]
326
+ end
327
+
328
+ # @see Revox::Models::CallRetrieveResponse::Call::CallAttempt::Transcript#tool_arguments
329
+ module ToolArguments
330
+ extend Revox::Internal::Type::Union
331
+
332
+ variant -> { Revox::Models::CallRetrieveResponse::Call::CallAttempt::Transcript::ToolArguments::UnionMember0Map }
333
+
334
+ variant String
335
+
336
+ # @!method self.variants
337
+ # @return [Array(Hash{Symbol=>Object}, String)]
338
+
339
+ # @type [Revox::Internal::Type::Converter]
340
+ UnionMember0Map = Revox::Internal::Type::HashOf[Revox::Internal::Type::Unknown]
341
+ end
342
+ end
343
+ end
344
+
345
+ # @see Revox::Models::CallRetrieveResponse::Call#call_retry_config
346
+ class CallRetryConfig < Revox::Internal::Type::BaseModel
347
+ # @!attribute calling_windows
348
+ #
349
+ # @return [Array<Revox::Models::CallRetrieveResponse::Call::CallRetryConfig::CallingWindow>]
350
+ required :calling_windows,
351
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CallRetrieveResponse::Call::CallRetryConfig::CallingWindow] }
352
+
353
+ # @!attribute max_retry_attempts
354
+ # Maximum number of call retry attempts. Default: 3.
355
+ #
356
+ # @return [Integer]
357
+ required :max_retry_attempts, Integer
358
+
359
+ # @!attribute timezone
360
+ # Optional IANA timezone identifier to override the automatic timezone detection
361
+ # from phone number. If not provided, timezone is determined from the recipient's
362
+ # phone number country code. Examples: 'America/New_York', 'Europe/Paris'.
363
+ #
364
+ # @return [String, nil]
365
+ optional :timezone, String, nil?: true
366
+
367
+ # @!method initialize(calling_windows:, max_retry_attempts:, timezone: nil)
368
+ # Some parameter documentations has been truncated, see
369
+ # {Revox::Models::CallRetrieveResponse::Call::CallRetryConfig} for more details.
370
+ #
371
+ # Configuration for call retry behavior including time windows, delays, and max
372
+ # iterations. If not provided, defaults will be used.
373
+ #
374
+ # @param calling_windows [Array<Revox::Models::CallRetrieveResponse::Call::CallRetryConfig::CallingWindow>]
375
+ #
376
+ # @param max_retry_attempts [Integer] Maximum number of call retry attempts. Default: 3.
377
+ #
378
+ # @param timezone [String, nil] Optional IANA timezone identifier to override the automatic timezone detection f
379
+
380
+ class CallingWindow < Revox::Internal::Type::BaseModel
381
+ # @!attribute calling_window_end_time
382
+ # End time for the calling window in the recipient's timezone (or
383
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
384
+ # Examples: '17:00', '6pm'. Default: '18:00'.
385
+ #
386
+ # @return [String]
387
+ required :calling_window_end_time, String
388
+
389
+ # @!attribute calling_window_start_time
390
+ # Start time for the calling window in the recipient's timezone (or
391
+ # timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
392
+ # Examples: '09:00', '10am'. Default: '10:00'.
393
+ #
394
+ # @return [String]
395
+ required :calling_window_start_time, String
396
+
397
+ # @!attribute retry_delay_seconds
398
+ # Delay between retry attempts in seconds. Default: 7200 (2 hours).
399
+ #
400
+ # @return [Integer]
401
+ required :retry_delay_seconds, Integer
402
+
403
+ # @!method initialize(calling_window_end_time:, calling_window_start_time:, retry_delay_seconds:)
404
+ # Some parameter documentations has been truncated, see
405
+ # {Revox::Models::CallRetrieveResponse::Call::CallRetryConfig::CallingWindow} for
406
+ # more details.
407
+ #
408
+ # @param calling_window_end_time [String] End time for the calling window in the recipient's timezone (or timezone_overrid
409
+ #
410
+ # @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
411
+ #
412
+ # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. Default: 7200 (2 hours).
413
+ end
414
+ end
415
+
416
+ # Whether the call is inbound or outbound.
417
+ #
418
+ # @see Revox::Models::CallRetrieveResponse::Call#direction
419
+ module Direction
420
+ extend Revox::Internal::Type::Enum
421
+
422
+ INBOUND = :inbound
423
+ OUTBOUND = :outbound
424
+
425
+ # @!method self.values
426
+ # @return [Array<Symbol>]
427
+ end
428
+
429
+ # @see Revox::Models::CallRetrieveResponse::Call#last_call_attempt
430
+ class LastCallAttempt < Revox::Internal::Type::BaseModel
431
+ # @!attribute id
432
+ # The ID of the call attempt.
433
+ #
434
+ # @return [String]
435
+ required :id, String
436
+
437
+ # @!attribute answered_at
438
+ # The time the call was answered.
439
+ #
440
+ # @return [Object]
441
+ required :answered_at, Revox::Internal::Type::Unknown
442
+
443
+ # @!attribute ended_at
444
+ # The time the call ended.
445
+ #
446
+ # @return [Object]
447
+ required :ended_at, Revox::Internal::Type::Unknown
448
+
449
+ # @!attribute phone_number
450
+ # The phone number that was called. Formatted in E.164 format. Example:
451
+ # +1234567890
452
+ #
453
+ # @return [String]
454
+ required :phone_number, String
455
+
456
+ # @!attribute recording_url
457
+ # The URL of the audio recording of the call.
458
+ #
459
+ # @return [String, nil]
460
+ required :recording_url, String, nil?: true
461
+
462
+ # @!attribute result
463
+ #
464
+ # @return [Symbol, Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Result, nil]
465
+ required :result,
466
+ enum: -> { Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Result },
467
+ nil?: true
468
+
469
+ # @!attribute started_at
470
+ # The time the call started.
471
+ #
472
+ # @return [Object]
473
+ required :started_at, Revox::Internal::Type::Unknown
474
+
475
+ # @!attribute status
476
+ # The status of the call attempt.
477
+ #
478
+ # @return [Symbol, Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Status]
479
+ required :status, enum: -> { Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Status }
480
+
481
+ # @!attribute structured_output
482
+ # The data extracted from the call, using the structured output config from the
483
+ # parent call object.
484
+ #
485
+ # @return [Hash{Symbol=>Object}, nil]
486
+ optional :structured_output,
487
+ Revox::Internal::Type::HashOf[Revox::Internal::Type::Unknown],
488
+ nil?: true
489
+
490
+ # @!attribute transcript
491
+ # The transcript of the call.
492
+ #
493
+ # @return [Array<Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Transcript>, nil]
494
+ optional :transcript,
495
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Transcript] },
496
+ nil?: true
497
+
498
+ # @!method initialize(id:, answered_at:, ended_at:, phone_number:, recording_url:, result:, started_at:, status:, structured_output: nil, transcript: nil)
499
+ # Some parameter documentations has been truncated, see
500
+ # {Revox::Models::CallRetrieveResponse::Call::LastCallAttempt} for more details.
501
+ #
502
+ # This represent a single call attempt. A call attempt is a single call made to
503
+ # the phone number.
504
+ #
505
+ # @param id [String] The ID of the call attempt.
506
+ #
507
+ # @param answered_at [Object] The time the call was answered.
508
+ #
509
+ # @param ended_at [Object] The time the call ended.
510
+ #
511
+ # @param phone_number [String] The phone number that was called. Formatted in E.164 format. Example: +123456789
512
+ #
513
+ # @param recording_url [String, nil] The URL of the audio recording of the call.
514
+ #
515
+ # @param result [Symbol, Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Result, nil]
516
+ #
517
+ # @param started_at [Object] The time the call started.
518
+ #
519
+ # @param status [Symbol, Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Status] The status of the call attempt.
520
+ #
521
+ # @param structured_output [Hash{Symbol=>Object}, nil] The data extracted from the call, using the structured output config from the pa
522
+ #
523
+ # @param transcript [Array<Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Transcript>, nil] The transcript of the call.
524
+
525
+ # @see Revox::Models::CallRetrieveResponse::Call::LastCallAttempt#result
526
+ module Result
527
+ extend Revox::Internal::Type::Enum
528
+
529
+ IVR = :IVR
530
+ VOICEMAIL = :voicemail
531
+ HUMAN = :human
532
+ UNKNOWN = :unknown
533
+
534
+ # @!method self.values
535
+ # @return [Array<Symbol>]
536
+ end
537
+
538
+ # The status of the call attempt.
539
+ #
540
+ # @see Revox::Models::CallRetrieveResponse::Call::LastCallAttempt#status
541
+ module Status
542
+ extend Revox::Internal::Type::Enum
543
+
544
+ QUEUED = :queued
545
+ RINGING = :ringing
546
+ ONGOING = :ongoing
547
+ COMPLETED = :completed
548
+
549
+ # @!method self.values
550
+ # @return [Array<Symbol>]
551
+ end
552
+
553
+ class Transcript < Revox::Internal::Type::BaseModel
554
+ # @!attribute content
555
+ #
556
+ # @return [String]
557
+ required :content, String
558
+
559
+ # @!attribute role
560
+ #
561
+ # @return [Symbol, Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Transcript::Role]
562
+ required :role, enum: -> { Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Transcript::Role }
563
+
564
+ # @!attribute tool_arguments
565
+ #
566
+ # @return [Hash{Symbol=>Object}, String, nil]
567
+ optional :tool_arguments,
568
+ union: -> { Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Transcript::ToolArguments }
569
+
570
+ # @!attribute tool_is_error
571
+ #
572
+ # @return [Boolean, nil]
573
+ optional :tool_is_error, Revox::Internal::Type::Boolean
574
+
575
+ # @!attribute tool_name
576
+ #
577
+ # @return [String, nil]
578
+ optional :tool_name, String
579
+
580
+ # @!method initialize(content:, role:, tool_arguments: nil, tool_is_error: nil, tool_name: nil)
581
+ # @param content [String]
582
+ # @param role [Symbol, Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Transcript::Role]
583
+ # @param tool_arguments [Hash{Symbol=>Object}, String]
584
+ # @param tool_is_error [Boolean]
585
+ # @param tool_name [String]
586
+
587
+ # @see Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Transcript#role
588
+ module Role
589
+ extend Revox::Internal::Type::Enum
590
+
591
+ USER = :user
592
+ ASSISTANT = :assistant
593
+ TOOL = :tool
594
+
595
+ # @!method self.values
596
+ # @return [Array<Symbol>]
597
+ end
598
+
599
+ # @see Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Transcript#tool_arguments
600
+ module ToolArguments
601
+ extend Revox::Internal::Type::Union
602
+
603
+ variant -> { Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Transcript::ToolArguments::UnionMember0Map }
604
+
605
+ variant String
606
+
607
+ # @!method self.variants
608
+ # @return [Array(Hash{Symbol=>Object}, String)]
609
+
610
+ # @type [Revox::Internal::Type::Converter]
611
+ UnionMember0Map = Revox::Internal::Type::HashOf[Revox::Internal::Type::Unknown]
612
+ end
613
+ end
614
+ end
615
+
616
+ # @see Revox::Models::CallRetrieveResponse::Call#llm_model
617
+ module LlmModel
618
+ extend Revox::Internal::Type::Union
619
+
620
+ variant -> { Revox::Models::CallRetrieveResponse::Call::LlmModel::UnionMember0 }
621
+
622
+ variant -> { Revox::Models::CallRetrieveResponse::Call::LlmModel::UnionMember1 }
623
+
624
+ class UnionMember0 < Revox::Internal::Type::BaseModel
625
+ # @!attribute name
626
+ #
627
+ # @return [Symbol, Revox::Models::CallRetrieveResponse::Call::LlmModel::UnionMember0::Name]
628
+ required :name, enum: -> { Revox::Models::CallRetrieveResponse::Call::LlmModel::UnionMember0::Name }
629
+
630
+ # @!attribute type
631
+ #
632
+ # @return [Symbol, :"dedicated-instance"]
633
+ required :type, const: :"dedicated-instance"
634
+
635
+ # @!method initialize(name:, type: :"dedicated-instance")
636
+ # @param name [Symbol, Revox::Models::CallRetrieveResponse::Call::LlmModel::UnionMember0::Name]
637
+ # @param type [Symbol, :"dedicated-instance"]
638
+
639
+ # @see Revox::Models::CallRetrieveResponse::Call::LlmModel::UnionMember0#name
640
+ module Name
641
+ extend Revox::Internal::Type::Enum
642
+
643
+ GPT_4_1 = :"gpt-4.1"
644
+ MINISTRAL_3_8B_INSTRUCT = :"ministral-3-8b-instruct"
645
+
646
+ # @!method self.values
647
+ # @return [Array<Symbol>]
648
+ end
649
+ end
650
+
651
+ class UnionMember1 < Revox::Internal::Type::BaseModel
652
+ # @!attribute openrouter_model_id
653
+ # The model ID to use from OpenRouter. eg: openai/gpt-4.1
654
+ #
655
+ # @return [String]
656
+ required :openrouter_model_id, String
657
+
658
+ # @!attribute openrouter_provider
659
+ # The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
660
+ #
661
+ # @return [String]
662
+ required :openrouter_provider, String
663
+
664
+ # @!attribute type
665
+ # Use a model from OpenRouter.
666
+ #
667
+ # @return [Symbol, :openrouter]
668
+ required :type, const: :openrouter
669
+
670
+ # @!method initialize(openrouter_model_id:, openrouter_provider:, type: :openrouter)
671
+ # @param openrouter_model_id [String] The model ID to use from OpenRouter. eg: openai/gpt-4.1
672
+ #
673
+ # @param openrouter_provider [String] The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
674
+ #
675
+ # @param type [Symbol, :openrouter] Use a model from OpenRouter.
676
+ end
677
+
678
+ # @!method self.variants
679
+ # @return [Array(Revox::Models::CallRetrieveResponse::Call::LlmModel::UnionMember0, Revox::Models::CallRetrieveResponse::Call::LlmModel::UnionMember1)]
680
+ end
681
+ end
682
+ end
683
+ end
684
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ module Users
6
+ # @see Revox::Resources::Users::Me#retrieve
7
+ class MeRetrieveParams < Revox::Internal::Type::BaseModel
8
+ extend Revox::Internal::Type::RequestParameters::Converter
9
+ include Revox::Internal::Type::RequestParameters
10
+
11
+ # @!method initialize(request_options: {})
12
+ # @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}]
13
+ end
14
+ end
15
+ end
16
+ end