context.dev 2.5.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/client.rb +4 -0
  5. data/lib/context_dev/models/batch_cancel_params.rb +22 -0
  6. data/lib/context_dev/models/batch_cancel_response.rb +241 -0
  7. data/lib/context_dev/models/batch_get_results_params.rb +42 -0
  8. data/lib/context_dev/models/batch_get_results_response.rb +463 -0
  9. data/lib/context_dev/models/batch_list_params.rb +94 -0
  10. data/lib/context_dev/models/batch_list_response.rb +379 -0
  11. data/lib/context_dev/models/batch_retrieve_params.rb +22 -0
  12. data/lib/context_dev/models/batch_retrieve_response.rb +373 -0
  13. data/lib/context_dev/models/batch_submit_params.rb +56 -0
  14. data/lib/context_dev/models/batch_submit_response.rb +614 -0
  15. data/lib/context_dev/models/crawl_controls.rb +126 -0
  16. data/lib/context_dev/models/failure.rb +27 -0
  17. data/lib/context_dev/models/intake.rb +62 -0
  18. data/lib/context_dev/models/monitor_create_params.rb +141 -127
  19. data/lib/context_dev/models/monitor_create_response.rb +34 -10
  20. data/lib/context_dev/models/monitor_list_response.rb +21 -7
  21. data/lib/context_dev/models/monitor_retrieve_response.rb +21 -7
  22. data/lib/context_dev/models/monitor_update_params.rb +21 -7
  23. data/lib/context_dev/models/monitor_update_response.rb +21 -7
  24. data/lib/context_dev/models/page_error_count.rb +26 -0
  25. data/lib/context_dev/models/web_screenshot_params.rb +5 -7
  26. data/lib/context_dev/models/web_web_crawl_md_params.rb +5 -7
  27. data/lib/context_dev/models/web_web_scrape_html_params.rb +5 -7
  28. data/lib/context_dev/models/web_web_scrape_html_response.rb +93 -1
  29. data/lib/context_dev/models/web_web_scrape_md_params.rb +5 -7
  30. data/lib/context_dev/models/web_web_scrape_md_response.rb +93 -1
  31. data/lib/context_dev/models.rb +18 -0
  32. data/lib/context_dev/resources/batch.rb +152 -0
  33. data/lib/context_dev/resources/monitors.rb +5 -5
  34. data/lib/context_dev/resources/web.rb +4 -4
  35. data/lib/context_dev/version.rb +1 -1
  36. data/lib/context_dev.rb +15 -0
  37. data/rbi/context_dev/client.rbi +3 -0
  38. data/rbi/context_dev/models/batch_cancel_params.rbi +40 -0
  39. data/rbi/context_dev/models/batch_cancel_response.rbi +424 -0
  40. data/rbi/context_dev/models/batch_get_results_params.rbi +70 -0
  41. data/rbi/context_dev/models/batch_get_results_response.rbi +848 -0
  42. data/rbi/context_dev/models/batch_list_params.rbi +166 -0
  43. data/rbi/context_dev/models/batch_list_response.rbi +713 -0
  44. data/rbi/context_dev/models/batch_retrieve_params.rbi +40 -0
  45. data/rbi/context_dev/models/batch_retrieve_response.rbi +672 -0
  46. data/rbi/context_dev/models/batch_submit_params.rbi +105 -0
  47. data/rbi/context_dev/models/batch_submit_response.rbi +1330 -0
  48. data/rbi/context_dev/models/crawl_controls.rbi +252 -0
  49. data/rbi/context_dev/models/failure.rbi +35 -0
  50. data/rbi/context_dev/models/intake.rbi +88 -0
  51. data/rbi/context_dev/models/monitor_create_params.rbi +274 -242
  52. data/rbi/context_dev/models/monitor_create_response.rbi +38 -7
  53. data/rbi/context_dev/models/monitor_list_response.rbi +24 -5
  54. data/rbi/context_dev/models/monitor_retrieve_response.rbi +24 -5
  55. data/rbi/context_dev/models/monitor_update_params.rbi +24 -5
  56. data/rbi/context_dev/models/monitor_update_response.rbi +24 -5
  57. data/rbi/context_dev/models/page_error_count.rbi +34 -0
  58. data/rbi/context_dev/models/web_screenshot_params.rbi +6 -9
  59. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +6 -9
  60. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +6 -9
  61. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +182 -0
  62. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +6 -9
  63. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +180 -0
  64. data/rbi/context_dev/models.rbi +18 -0
  65. data/rbi/context_dev/resources/batch.rbi +117 -0
  66. data/rbi/context_dev/resources/monitors.rbi +12 -12
  67. data/rbi/context_dev/resources/web.rbi +8 -12
  68. data/sig/context_dev/client.rbs +2 -0
  69. data/sig/context_dev/models/batch_cancel_params.rbs +23 -0
  70. data/sig/context_dev/models/batch_cancel_response.rbs +174 -0
  71. data/sig/context_dev/models/batch_get_results_params.rbs +36 -0
  72. data/sig/context_dev/models/batch_get_results_response.rbs +399 -0
  73. data/sig/context_dev/models/batch_list_params.rbs +94 -0
  74. data/sig/context_dev/models/batch_list_response.rbs +283 -0
  75. data/sig/context_dev/models/batch_retrieve_params.rbs +23 -0
  76. data/sig/context_dev/models/batch_retrieve_response.rbs +262 -0
  77. data/sig/context_dev/models/batch_submit_params.rbs +52 -0
  78. data/sig/context_dev/models/batch_submit_response.rbs +542 -0
  79. data/sig/context_dev/models/crawl_controls.rbs +114 -0
  80. data/sig/context_dev/models/failure.rbs +15 -0
  81. data/sig/context_dev/models/intake.rbs +40 -0
  82. data/sig/context_dev/models/monitor_create_params.rbs +117 -97
  83. data/sig/context_dev/models/monitor_create_response.rbs +18 -1
  84. data/sig/context_dev/models/monitor_list_response.rbs +13 -1
  85. data/sig/context_dev/models/monitor_retrieve_response.rbs +13 -1
  86. data/sig/context_dev/models/monitor_update_params.rbs +13 -1
  87. data/sig/context_dev/models/monitor_update_response.rbs +13 -1
  88. data/sig/context_dev/models/page_error_count.rbs +15 -0
  89. data/sig/context_dev/models/web_web_scrape_html_response.rbs +85 -0
  90. data/sig/context_dev/models/web_web_scrape_md_response.rbs +85 -0
  91. data/sig/context_dev/models.rbs +18 -0
  92. data/sig/context_dev/resources/batch.rbs +41 -0
  93. data/sig/context_dev/resources/monitors.rbs +2 -2
  94. metadata +47 -2
@@ -0,0 +1,40 @@
1
+ # typed: strong
2
+
3
+ module ContextDev
4
+ module Models
5
+ class BatchRetrieveParams < ContextDev::Internal::Type::BaseModel
6
+ extend ContextDev::Internal::Type::RequestParameters::Converter
7
+ include ContextDev::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(ContextDev::BatchRetrieveParams, ContextDev::Internal::AnyHash)
12
+ end
13
+
14
+ # ID of the batch to retrieve or cancel.
15
+ sig { returns(String) }
16
+ attr_accessor :batch_id
17
+
18
+ sig do
19
+ params(
20
+ batch_id: String,
21
+ request_options: ContextDev::RequestOptions::OrHash
22
+ ).returns(T.attached_class)
23
+ end
24
+ def self.new(
25
+ # ID of the batch to retrieve or cancel.
26
+ batch_id:,
27
+ request_options: {}
28
+ )
29
+ end
30
+
31
+ sig do
32
+ override.returns(
33
+ { batch_id: String, request_options: ContextDev::RequestOptions }
34
+ )
35
+ end
36
+ def to_hash
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,672 @@
1
+ # typed: strong
2
+
3
+ module ContextDev
4
+ module Models
5
+ class BatchRetrieveResponse < ContextDev::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ ContextDev::Models::BatchRetrieveResponse,
10
+ ContextDev::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Batch ID used to retrieve or cancel the job.
15
+ sig { returns(String) }
16
+ attr_accessor :id
17
+
18
+ # The crawl controls as submitted, so the limits requested can be compared against
19
+ # what the crawl reached.
20
+ sig { returns(T.nilable(ContextDev::CrawlControls)) }
21
+ attr_reader :crawl
22
+
23
+ sig { params(crawl: T.nilable(ContextDev::CrawlControls::OrHash)).void }
24
+ attr_writer :crawl
25
+
26
+ # What this batch has done to your credit balance.
27
+ sig { returns(ContextDev::Models::BatchRetrieveResponse::Credits) }
28
+ attr_reader :credits
29
+
30
+ sig do
31
+ params(
32
+ credits: ContextDev::Models::BatchRetrieveResponse::Credits::OrHash
33
+ ).void
34
+ end
35
+ attr_writer :credits
36
+
37
+ # A failure of the batch as a whole, distinct from the per-page failures in
38
+ # `page_errors`.
39
+ sig { returns(T.nilable(ContextDev::Failure)) }
40
+ attr_reader :failure
41
+
42
+ sig { params(failure: T.nilable(ContextDev::Failure::OrHash)).void }
43
+ attr_writer :failure
44
+
45
+ # What each page is returned as. Matches `input.data.format` on the submit
46
+ # request.
47
+ sig do
48
+ returns(ContextDev::Models::BatchRetrieveResponse::Format::TaggedSymbol)
49
+ end
50
+ attr_accessor :format_
51
+
52
+ # What submission took in, and what it charged for.
53
+ sig { returns(ContextDev::Intake) }
54
+ attr_reader :input
55
+
56
+ sig { params(input: ContextDev::Intake::OrHash).void }
57
+ attr_writer :input
58
+
59
+ # Rejected URLs, up to 100. These are not charged.
60
+ sig do
61
+ returns(T::Array[ContextDev::Models::BatchRetrieveResponse::InvalidURL])
62
+ end
63
+ attr_accessor :invalid_urls
64
+
65
+ # How pages were selected. Matches `input.mode` on the submit request.
66
+ sig do
67
+ returns(ContextDev::Models::BatchRetrieveResponse::Mode::TaggedSymbol)
68
+ end
69
+ attr_accessor :mode
70
+
71
+ # Individual page failures grouped by error code, sorted by count. Unrelated to
72
+ # `failure`, which is the batch itself failing.
73
+ sig { returns(T::Array[ContextDev::PageErrorCount]) }
74
+ attr_accessor :page_errors
75
+
76
+ # Pages attempted so far. Use `status` to check completion.
77
+ sig { returns(ContextDev::Models::BatchRetrieveResponse::Progress) }
78
+ attr_reader :progress
79
+
80
+ sig do
81
+ params(
82
+ progress: ContextDev::Models::BatchRetrieveResponse::Progress::OrHash
83
+ ).void
84
+ end
85
+ attr_writer :progress
86
+
87
+ # Download links, available once the batch reaches a final status and null before
88
+ # then. GET /batch/{batch_id}/results serves the same records as paginated JSON.
89
+ sig do
90
+ returns(T.nilable(ContextDev::Models::BatchRetrieveResponse::Results))
91
+ end
92
+ attr_reader :results
93
+
94
+ sig do
95
+ params(
96
+ results:
97
+ T.nilable(
98
+ ContextDev::Models::BatchRetrieveResponse::Results::OrHash
99
+ )
100
+ ).void
101
+ end
102
+ attr_writer :results
103
+
104
+ # Current state. `completed`, `cancelled`, and `failed` are final.
105
+ sig do
106
+ returns(ContextDev::Models::BatchRetrieveResponse::Status::TaggedSymbol)
107
+ end
108
+ attr_accessor :status
109
+
110
+ # Tags stored on the batch at submission.
111
+ sig { returns(T::Array[String]) }
112
+ attr_accessor :tags
113
+
114
+ sig { returns(ContextDev::Models::BatchRetrieveResponse::Timing) }
115
+ attr_reader :timing
116
+
117
+ sig do
118
+ params(
119
+ timing: ContextDev::Models::BatchRetrieveResponse::Timing::OrHash
120
+ ).void
121
+ end
122
+ attr_writer :timing
123
+
124
+ # API key usage for this request.
125
+ sig do
126
+ returns(
127
+ T.nilable(ContextDev::Models::BatchRetrieveResponse::KeyMetadata)
128
+ )
129
+ end
130
+ attr_reader :key_metadata
131
+
132
+ sig do
133
+ params(
134
+ key_metadata:
135
+ ContextDev::Models::BatchRetrieveResponse::KeyMetadata::OrHash
136
+ ).void
137
+ end
138
+ attr_writer :key_metadata
139
+
140
+ sig do
141
+ params(
142
+ id: String,
143
+ crawl: T.nilable(ContextDev::CrawlControls::OrHash),
144
+ credits: ContextDev::Models::BatchRetrieveResponse::Credits::OrHash,
145
+ failure: T.nilable(ContextDev::Failure::OrHash),
146
+ format_: ContextDev::Models::BatchRetrieveResponse::Format::OrSymbol,
147
+ input: ContextDev::Intake::OrHash,
148
+ invalid_urls:
149
+ T::Array[
150
+ ContextDev::Models::BatchRetrieveResponse::InvalidURL::OrHash
151
+ ],
152
+ mode: ContextDev::Models::BatchRetrieveResponse::Mode::OrSymbol,
153
+ page_errors: T::Array[ContextDev::PageErrorCount::OrHash],
154
+ progress: ContextDev::Models::BatchRetrieveResponse::Progress::OrHash,
155
+ results:
156
+ T.nilable(
157
+ ContextDev::Models::BatchRetrieveResponse::Results::OrHash
158
+ ),
159
+ status: ContextDev::Models::BatchRetrieveResponse::Status::OrSymbol,
160
+ tags: T::Array[String],
161
+ timing: ContextDev::Models::BatchRetrieveResponse::Timing::OrHash,
162
+ key_metadata:
163
+ ContextDev::Models::BatchRetrieveResponse::KeyMetadata::OrHash
164
+ ).returns(T.attached_class)
165
+ end
166
+ def self.new(
167
+ # Batch ID used to retrieve or cancel the job.
168
+ id:,
169
+ # The crawl controls as submitted, so the limits requested can be compared against
170
+ # what the crawl reached.
171
+ crawl:,
172
+ # What this batch has done to your credit balance.
173
+ credits:,
174
+ # A failure of the batch as a whole, distinct from the per-page failures in
175
+ # `page_errors`.
176
+ failure:,
177
+ # What each page is returned as. Matches `input.data.format` on the submit
178
+ # request.
179
+ format_:,
180
+ # What submission took in, and what it charged for.
181
+ input:,
182
+ # Rejected URLs, up to 100. These are not charged.
183
+ invalid_urls:,
184
+ # How pages were selected. Matches `input.mode` on the submit request.
185
+ mode:,
186
+ # Individual page failures grouped by error code, sorted by count. Unrelated to
187
+ # `failure`, which is the batch itself failing.
188
+ page_errors:,
189
+ # Pages attempted so far. Use `status` to check completion.
190
+ progress:,
191
+ # Download links, available once the batch reaches a final status and null before
192
+ # then. GET /batch/{batch_id}/results serves the same records as paginated JSON.
193
+ results:,
194
+ # Current state. `completed`, `cancelled`, and `failed` are final.
195
+ status:,
196
+ # Tags stored on the batch at submission.
197
+ tags:,
198
+ timing:,
199
+ # API key usage for this request.
200
+ key_metadata: nil
201
+ )
202
+ end
203
+
204
+ sig do
205
+ override.returns(
206
+ {
207
+ id: String,
208
+ crawl: T.nilable(ContextDev::CrawlControls),
209
+ credits: ContextDev::Models::BatchRetrieveResponse::Credits,
210
+ failure: T.nilable(ContextDev::Failure),
211
+ format_:
212
+ ContextDev::Models::BatchRetrieveResponse::Format::TaggedSymbol,
213
+ input: ContextDev::Intake,
214
+ invalid_urls:
215
+ T::Array[ContextDev::Models::BatchRetrieveResponse::InvalidURL],
216
+ mode: ContextDev::Models::BatchRetrieveResponse::Mode::TaggedSymbol,
217
+ page_errors: T::Array[ContextDev::PageErrorCount],
218
+ progress: ContextDev::Models::BatchRetrieveResponse::Progress,
219
+ results:
220
+ T.nilable(ContextDev::Models::BatchRetrieveResponse::Results),
221
+ status:
222
+ ContextDev::Models::BatchRetrieveResponse::Status::TaggedSymbol,
223
+ tags: T::Array[String],
224
+ timing: ContextDev::Models::BatchRetrieveResponse::Timing,
225
+ key_metadata: ContextDev::Models::BatchRetrieveResponse::KeyMetadata
226
+ }
227
+ )
228
+ end
229
+ def to_hash
230
+ end
231
+
232
+ class Credits < ContextDev::Internal::Type::BaseModel
233
+ OrHash =
234
+ T.type_alias do
235
+ T.any(
236
+ ContextDev::Models::BatchRetrieveResponse::Credits,
237
+ ContextDev::Internal::AnyHash
238
+ )
239
+ end
240
+
241
+ # `reserved` minus `refunded` — what the batch has cost so far. Equal to
242
+ # `reserved` until the batch settles.
243
+ sig { returns(Integer) }
244
+ attr_accessor :net
245
+
246
+ # Credits returned for pages that did not succeed. Stays 0 until the batch reaches
247
+ # a final status, then settles in one movement.
248
+ sig { returns(Integer) }
249
+ attr_accessor :refunded
250
+
251
+ # Credits debited from your balance the moment the batch was accepted. This is a
252
+ # charge, not a forecast — the whole amount leaves the balance up front.
253
+ sig { returns(Integer) }
254
+ attr_accessor :reserved
255
+
256
+ # What this batch has done to your credit balance.
257
+ sig do
258
+ params(net: Integer, refunded: Integer, reserved: Integer).returns(
259
+ T.attached_class
260
+ )
261
+ end
262
+ def self.new(
263
+ # `reserved` minus `refunded` — what the batch has cost so far. Equal to
264
+ # `reserved` until the batch settles.
265
+ net:,
266
+ # Credits returned for pages that did not succeed. Stays 0 until the batch reaches
267
+ # a final status, then settles in one movement.
268
+ refunded:,
269
+ # Credits debited from your balance the moment the batch was accepted. This is a
270
+ # charge, not a forecast — the whole amount leaves the balance up front.
271
+ reserved:
272
+ )
273
+ end
274
+
275
+ sig do
276
+ override.returns(
277
+ { net: Integer, refunded: Integer, reserved: Integer }
278
+ )
279
+ end
280
+ def to_hash
281
+ end
282
+ end
283
+
284
+ # What each page is returned as. Matches `input.data.format` on the submit
285
+ # request.
286
+ module Format
287
+ extend ContextDev::Internal::Type::Enum
288
+
289
+ TaggedSymbol =
290
+ T.type_alias do
291
+ T.all(Symbol, ContextDev::Models::BatchRetrieveResponse::Format)
292
+ end
293
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
294
+
295
+ MARKDOWN =
296
+ T.let(
297
+ :markdown,
298
+ ContextDev::Models::BatchRetrieveResponse::Format::TaggedSymbol
299
+ )
300
+ HTML =
301
+ T.let(
302
+ :html,
303
+ ContextDev::Models::BatchRetrieveResponse::Format::TaggedSymbol
304
+ )
305
+
306
+ sig do
307
+ override.returns(
308
+ T::Array[
309
+ ContextDev::Models::BatchRetrieveResponse::Format::TaggedSymbol
310
+ ]
311
+ )
312
+ end
313
+ def self.values
314
+ end
315
+ end
316
+
317
+ class InvalidURL < ContextDev::Internal::Type::BaseModel
318
+ OrHash =
319
+ T.type_alias do
320
+ T.any(
321
+ ContextDev::Models::BatchRetrieveResponse::InvalidURL,
322
+ ContextDev::Internal::AnyHash
323
+ )
324
+ end
325
+
326
+ # Why it was rejected.
327
+ sig { returns(String) }
328
+ attr_accessor :reason
329
+
330
+ # Rejected URL.
331
+ sig { returns(String) }
332
+ attr_accessor :url
333
+
334
+ sig { params(reason: String, url: String).returns(T.attached_class) }
335
+ def self.new(
336
+ # Why it was rejected.
337
+ reason:,
338
+ # Rejected URL.
339
+ url:
340
+ )
341
+ end
342
+
343
+ sig { override.returns({ reason: String, url: String }) }
344
+ def to_hash
345
+ end
346
+ end
347
+
348
+ # How pages were selected. Matches `input.mode` on the submit request.
349
+ module Mode
350
+ extend ContextDev::Internal::Type::Enum
351
+
352
+ TaggedSymbol =
353
+ T.type_alias do
354
+ T.all(Symbol, ContextDev::Models::BatchRetrieveResponse::Mode)
355
+ end
356
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
357
+
358
+ SCRAPE =
359
+ T.let(
360
+ :scrape,
361
+ ContextDev::Models::BatchRetrieveResponse::Mode::TaggedSymbol
362
+ )
363
+ CRAWL =
364
+ T.let(
365
+ :crawl,
366
+ ContextDev::Models::BatchRetrieveResponse::Mode::TaggedSymbol
367
+ )
368
+
369
+ sig do
370
+ override.returns(
371
+ T::Array[
372
+ ContextDev::Models::BatchRetrieveResponse::Mode::TaggedSymbol
373
+ ]
374
+ )
375
+ end
376
+ def self.values
377
+ end
378
+ end
379
+
380
+ class Progress < ContextDev::Internal::Type::BaseModel
381
+ OrHash =
382
+ T.type_alias do
383
+ T.any(
384
+ ContextDev::Models::BatchRetrieveResponse::Progress,
385
+ ContextDev::Internal::AnyHash
386
+ )
387
+ end
388
+
389
+ # Pages that could not be scraped.
390
+ sig { returns(Integer) }
391
+ attr_accessor :failed
392
+
393
+ # Reserved pages not yet attempted. A cancelled batch keeps reporting the URLs it
394
+ # never reached; a crawl whose `input.reserved_is_ceiling` is true reports 0 once
395
+ # final, because its unspent budget was never real pages.
396
+ sig { returns(Integer) }
397
+ attr_accessor :pending
398
+
399
+ # Pages scraped successfully.
400
+ sig { returns(Integer) }
401
+ attr_accessor :succeeded
402
+
403
+ # Pages attempted so far. Use `status` to check completion.
404
+ sig do
405
+ params(failed: Integer, pending: Integer, succeeded: Integer).returns(
406
+ T.attached_class
407
+ )
408
+ end
409
+ def self.new(
410
+ # Pages that could not be scraped.
411
+ failed:,
412
+ # Reserved pages not yet attempted. A cancelled batch keeps reporting the URLs it
413
+ # never reached; a crawl whose `input.reserved_is_ceiling` is true reports 0 once
414
+ # final, because its unspent budget was never real pages.
415
+ pending:,
416
+ # Pages scraped successfully.
417
+ succeeded:
418
+ )
419
+ end
420
+
421
+ sig do
422
+ override.returns(
423
+ { failed: Integer, pending: Integer, succeeded: Integer }
424
+ )
425
+ end
426
+ def to_hash
427
+ end
428
+ end
429
+
430
+ class Results < ContextDev::Internal::Type::BaseModel
431
+ OrHash =
432
+ T.type_alias do
433
+ T.any(
434
+ ContextDev::Models::BatchRetrieveResponse::Results,
435
+ ContextDev::Internal::AnyHash
436
+ )
437
+ end
438
+
439
+ # When the download URLs expire.
440
+ sig { returns(String) }
441
+ attr_accessor :expires_at
442
+
443
+ # Result files. Order is not guaranteed.
444
+ sig do
445
+ returns(
446
+ T::Array[ContextDev::Models::BatchRetrieveResponse::Results::File]
447
+ )
448
+ end
449
+ attr_accessor :files
450
+
451
+ # Download links, available once the batch reaches a final status and null before
452
+ # then. GET /batch/{batch_id}/results serves the same records as paginated JSON.
453
+ sig do
454
+ params(
455
+ expires_at: String,
456
+ files:
457
+ T::Array[
458
+ ContextDev::Models::BatchRetrieveResponse::Results::File::OrHash
459
+ ]
460
+ ).returns(T.attached_class)
461
+ end
462
+ def self.new(
463
+ # When the download URLs expire.
464
+ expires_at:,
465
+ # Result files. Order is not guaranteed.
466
+ files:
467
+ )
468
+ end
469
+
470
+ sig do
471
+ override.returns(
472
+ {
473
+ expires_at: String,
474
+ files:
475
+ T::Array[
476
+ ContextDev::Models::BatchRetrieveResponse::Results::File
477
+ ]
478
+ }
479
+ )
480
+ end
481
+ def to_hash
482
+ end
483
+
484
+ class File < ContextDev::Internal::Type::BaseModel
485
+ OrHash =
486
+ T.type_alias do
487
+ T.any(
488
+ ContextDev::Models::BatchRetrieveResponse::Results::File,
489
+ ContextDev::Internal::AnyHash
490
+ )
491
+ end
492
+
493
+ # Compressed file size in bytes.
494
+ sig { returns(Integer) }
495
+ attr_accessor :bytes
496
+
497
+ # Results in this file.
498
+ sig { returns(Integer) }
499
+ attr_accessor :items
500
+
501
+ # Temporary URL for a gzipped NDJSON file.
502
+ sig { returns(String) }
503
+ attr_accessor :url
504
+
505
+ sig do
506
+ params(bytes: Integer, items: Integer, url: String).returns(
507
+ T.attached_class
508
+ )
509
+ end
510
+ def self.new(
511
+ # Compressed file size in bytes.
512
+ bytes:,
513
+ # Results in this file.
514
+ items:,
515
+ # Temporary URL for a gzipped NDJSON file.
516
+ url:
517
+ )
518
+ end
519
+
520
+ sig do
521
+ override.returns({ bytes: Integer, items: Integer, url: String })
522
+ end
523
+ def to_hash
524
+ end
525
+ end
526
+ end
527
+
528
+ # Current state. `completed`, `cancelled`, and `failed` are final.
529
+ module Status
530
+ extend ContextDev::Internal::Type::Enum
531
+
532
+ TaggedSymbol =
533
+ T.type_alias do
534
+ T.all(Symbol, ContextDev::Models::BatchRetrieveResponse::Status)
535
+ end
536
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
537
+
538
+ QUEUED =
539
+ T.let(
540
+ :queued,
541
+ ContextDev::Models::BatchRetrieveResponse::Status::TaggedSymbol
542
+ )
543
+ RUNNING =
544
+ T.let(
545
+ :running,
546
+ ContextDev::Models::BatchRetrieveResponse::Status::TaggedSymbol
547
+ )
548
+ CANCELLING =
549
+ T.let(
550
+ :cancelling,
551
+ ContextDev::Models::BatchRetrieveResponse::Status::TaggedSymbol
552
+ )
553
+ COMPLETED =
554
+ T.let(
555
+ :completed,
556
+ ContextDev::Models::BatchRetrieveResponse::Status::TaggedSymbol
557
+ )
558
+ CANCELLED =
559
+ T.let(
560
+ :cancelled,
561
+ ContextDev::Models::BatchRetrieveResponse::Status::TaggedSymbol
562
+ )
563
+ FAILED =
564
+ T.let(
565
+ :failed,
566
+ ContextDev::Models::BatchRetrieveResponse::Status::TaggedSymbol
567
+ )
568
+
569
+ sig do
570
+ override.returns(
571
+ T::Array[
572
+ ContextDev::Models::BatchRetrieveResponse::Status::TaggedSymbol
573
+ ]
574
+ )
575
+ end
576
+ def self.values
577
+ end
578
+ end
579
+
580
+ class Timing < ContextDev::Internal::Type::BaseModel
581
+ OrHash =
582
+ T.type_alias do
583
+ T.any(
584
+ ContextDev::Models::BatchRetrieveResponse::Timing,
585
+ ContextDev::Internal::AnyHash
586
+ )
587
+ end
588
+
589
+ # When processing finished. Null while active.
590
+ sig { returns(T.nilable(String)) }
591
+ attr_accessor :completed_at
592
+
593
+ # When the batch was created.
594
+ sig { returns(String) }
595
+ attr_accessor :created_at
596
+
597
+ # When processing started. Null while queued.
598
+ sig { returns(T.nilable(String)) }
599
+ attr_accessor :started_at
600
+
601
+ sig do
602
+ params(
603
+ completed_at: T.nilable(String),
604
+ created_at: String,
605
+ started_at: T.nilable(String)
606
+ ).returns(T.attached_class)
607
+ end
608
+ def self.new(
609
+ # When processing finished. Null while active.
610
+ completed_at:,
611
+ # When the batch was created.
612
+ created_at:,
613
+ # When processing started. Null while queued.
614
+ started_at:
615
+ )
616
+ end
617
+
618
+ sig do
619
+ override.returns(
620
+ {
621
+ completed_at: T.nilable(String),
622
+ created_at: String,
623
+ started_at: T.nilable(String)
624
+ }
625
+ )
626
+ end
627
+ def to_hash
628
+ end
629
+ end
630
+
631
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
632
+ OrHash =
633
+ T.type_alias do
634
+ T.any(
635
+ ContextDev::Models::BatchRetrieveResponse::KeyMetadata,
636
+ ContextDev::Internal::AnyHash
637
+ )
638
+ end
639
+
640
+ # The number of credits consumed by this request.
641
+ sig { returns(Integer) }
642
+ attr_accessor :credits_consumed
643
+
644
+ # The number of credits remaining for your organization after this request.
645
+ sig { returns(Integer) }
646
+ attr_accessor :credits_remaining
647
+
648
+ # API key usage for this request.
649
+ sig do
650
+ params(credits_consumed: Integer, credits_remaining: Integer).returns(
651
+ T.attached_class
652
+ )
653
+ end
654
+ def self.new(
655
+ # The number of credits consumed by this request.
656
+ credits_consumed:,
657
+ # The number of credits remaining for your organization after this request.
658
+ credits_remaining:
659
+ )
660
+ end
661
+
662
+ sig do
663
+ override.returns(
664
+ { credits_consumed: Integer, credits_remaining: Integer }
665
+ )
666
+ end
667
+ def to_hash
668
+ end
669
+ end
670
+ end
671
+ end
672
+ end