context.dev 1.31.0 → 1.34.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 (87) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/internal/transport/base_client.rb +4 -1
  5. data/lib/context_dev/models/ai_ai_query_response.rb +36 -1
  6. data/lib/context_dev/models/ai_extract_product_response.rb +36 -1
  7. data/lib/context_dev/models/ai_extract_products_response.rb +36 -1
  8. data/lib/context_dev/models/brand_identify_from_transaction_response.rb +36 -1
  9. data/lib/context_dev/models/brand_retrieve_by_email_response.rb +36 -1
  10. data/lib/context_dev/models/brand_retrieve_by_isin_response.rb +36 -1
  11. data/lib/context_dev/models/brand_retrieve_by_name_response.rb +36 -1
  12. data/lib/context_dev/models/brand_retrieve_by_ticker_response.rb +36 -1
  13. data/lib/context_dev/models/brand_retrieve_response.rb +36 -1
  14. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +36 -1
  15. data/lib/context_dev/models/industry_retrieve_naics_response.rb +36 -1
  16. data/lib/context_dev/models/industry_retrieve_sic_response.rb +33 -1
  17. data/lib/context_dev/models/utility_prefetch_by_email_response.rb +36 -1
  18. data/lib/context_dev/models/utility_prefetch_response.rb +36 -1
  19. data/lib/context_dev/models/web_extract_competitors_response.rb +36 -1
  20. data/lib/context_dev/models/web_extract_fonts_response.rb +33 -1
  21. data/lib/context_dev/models/web_extract_params.rb +18 -1
  22. data/lib/context_dev/models/web_extract_response.rb +36 -1
  23. data/lib/context_dev/models/web_extract_styleguide_response.rb +36 -1
  24. data/lib/context_dev/models/web_screenshot_response.rb +36 -1
  25. data/lib/context_dev/models/web_search_response.rb +36 -1
  26. data/lib/context_dev/models/web_web_crawl_md_response.rb +275 -6
  27. data/lib/context_dev/models/web_web_scrape_html_response.rb +290 -1
  28. data/lib/context_dev/models/web_web_scrape_images_response.rb +36 -1
  29. data/lib/context_dev/models/web_web_scrape_md_response.rb +291 -1
  30. data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +36 -1
  31. data/lib/context_dev/resources/web.rb +5 -1
  32. data/lib/context_dev/version.rb +1 -1
  33. data/rbi/context_dev/models/ai_ai_query_response.rbi +62 -0
  34. data/rbi/context_dev/models/ai_extract_product_response.rbi +65 -0
  35. data/rbi/context_dev/models/ai_extract_products_response.rbi +65 -0
  36. data/rbi/context_dev/models/brand_identify_from_transaction_response.rbi +67 -0
  37. data/rbi/context_dev/models/brand_retrieve_by_email_response.rbi +67 -0
  38. data/rbi/context_dev/models/brand_retrieve_by_isin_response.rbi +67 -0
  39. data/rbi/context_dev/models/brand_retrieve_by_name_response.rbi +67 -0
  40. data/rbi/context_dev/models/brand_retrieve_by_ticker_response.rbi +67 -0
  41. data/rbi/context_dev/models/brand_retrieve_response.rbi +65 -0
  42. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +67 -0
  43. data/rbi/context_dev/models/industry_retrieve_naics_response.rbi +67 -0
  44. data/rbi/context_dev/models/industry_retrieve_sic_response.rbi +67 -0
  45. data/rbi/context_dev/models/utility_prefetch_by_email_response.rbi +79 -4
  46. data/rbi/context_dev/models/utility_prefetch_response.rbi +77 -4
  47. data/rbi/context_dev/models/web_extract_competitors_response.rbi +70 -3
  48. data/rbi/context_dev/models/web_extract_fonts_response.rbi +68 -3
  49. data/rbi/context_dev/models/web_extract_params.rbi +24 -0
  50. data/rbi/context_dev/models/web_extract_response.rbi +65 -3
  51. data/rbi/context_dev/models/web_extract_styleguide_response.rbi +67 -0
  52. data/rbi/context_dev/models/web_screenshot_response.rbi +65 -0
  53. data/rbi/context_dev/models/web_search_response.rbi +65 -3
  54. data/rbi/context_dev/models/web_web_crawl_md_response.rbi +497 -10
  55. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +553 -3
  56. data/rbi/context_dev/models/web_web_scrape_images_response.rbi +68 -3
  57. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +542 -3
  58. data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +70 -3
  59. data/rbi/context_dev/resources/web.rbi +7 -0
  60. data/sig/context_dev/models/ai_ai_query_response.rbs +28 -0
  61. data/sig/context_dev/models/ai_extract_product_response.rbs +28 -0
  62. data/sig/context_dev/models/ai_extract_products_response.rbs +28 -0
  63. data/sig/context_dev/models/brand_identify_from_transaction_response.rbs +28 -0
  64. data/sig/context_dev/models/brand_retrieve_by_email_response.rbs +28 -0
  65. data/sig/context_dev/models/brand_retrieve_by_isin_response.rbs +28 -0
  66. data/sig/context_dev/models/brand_retrieve_by_name_response.rbs +28 -0
  67. data/sig/context_dev/models/brand_retrieve_by_ticker_response.rbs +28 -0
  68. data/sig/context_dev/models/brand_retrieve_response.rbs +28 -0
  69. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +28 -0
  70. data/sig/context_dev/models/industry_retrieve_naics_response.rbs +28 -0
  71. data/sig/context_dev/models/industry_retrieve_sic_response.rbs +28 -0
  72. data/sig/context_dev/models/utility_prefetch_by_email_response.rbs +38 -2
  73. data/sig/context_dev/models/utility_prefetch_response.rbs +38 -2
  74. data/sig/context_dev/models/web_extract_competitors_response.rbs +31 -3
  75. data/sig/context_dev/models/web_extract_fonts_response.rbs +31 -3
  76. data/sig/context_dev/models/web_extract_params.rbs +14 -0
  77. data/sig/context_dev/models/web_extract_response.rbs +31 -3
  78. data/sig/context_dev/models/web_extract_styleguide_response.rbs +28 -0
  79. data/sig/context_dev/models/web_screenshot_response.rbs +28 -0
  80. data/sig/context_dev/models/web_search_response.rbs +31 -3
  81. data/sig/context_dev/models/web_web_crawl_md_response.rbs +229 -6
  82. data/sig/context_dev/models/web_web_scrape_html_response.rbs +263 -4
  83. data/sig/context_dev/models/web_web_scrape_images_response.rbs +31 -3
  84. data/sig/context_dev/models/web_web_scrape_md_response.rbs +250 -3
  85. data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +31 -3
  86. data/sig/context_dev/resources/web.rbs +2 -0
  87. metadata +2 -2
@@ -26,21 +26,48 @@ module ContextDev
26
26
  end
27
27
  attr_accessor :results
28
28
 
29
+ # Metadata about the API key used for the request. Included in every response
30
+ # whenever a valid API key is provided, even when the response status is not 200.
31
+ sig do
32
+ returns(
33
+ T.nilable(ContextDev::Models::WebWebCrawlMdResponse::KeyMetadata)
34
+ )
35
+ end
36
+ attr_reader :key_metadata
37
+
38
+ sig do
39
+ params(
40
+ key_metadata:
41
+ ContextDev::Models::WebWebCrawlMdResponse::KeyMetadata::OrHash
42
+ ).void
43
+ end
44
+ attr_writer :key_metadata
45
+
29
46
  sig do
30
47
  params(
31
48
  metadata: ContextDev::Models::WebWebCrawlMdResponse::Metadata::OrHash,
32
49
  results:
33
- T::Array[ContextDev::Models::WebWebCrawlMdResponse::Result::OrHash]
50
+ T::Array[ContextDev::Models::WebWebCrawlMdResponse::Result::OrHash],
51
+ key_metadata:
52
+ ContextDev::Models::WebWebCrawlMdResponse::KeyMetadata::OrHash
34
53
  ).returns(T.attached_class)
35
54
  end
36
- def self.new(metadata:, results:)
55
+ def self.new(
56
+ metadata:,
57
+ results:,
58
+ # Metadata about the API key used for the request. Included in every response
59
+ # whenever a valid API key is provided, even when the response status is not 200.
60
+ key_metadata: nil
61
+ )
37
62
  end
38
63
 
39
64
  sig do
40
65
  override.returns(
41
66
  {
42
67
  metadata: ContextDev::Models::WebWebCrawlMdResponse::Metadata,
43
- results: T::Array[ContextDev::Models::WebWebCrawlMdResponse::Result]
68
+ results:
69
+ T::Array[ContextDev::Models::WebWebCrawlMdResponse::Result],
70
+ key_metadata: ContextDev::Models::WebWebCrawlMdResponse::KeyMetadata
44
71
  }
45
72
  )
46
73
  end
@@ -181,6 +208,15 @@ module ContextDev
181
208
  sig { returns(Integer) }
182
209
  attr_accessor :crawl_depth
183
210
 
211
+ # Final URL scraped after redirects or scraper fallback, when known. Falls back to
212
+ # sourceUrl when unavailable.
213
+ sig { returns(String) }
214
+ attr_accessor :final_url
215
+
216
+ # Original URL requested by the caller.
217
+ sig { returns(String) }
218
+ attr_accessor :source_url
219
+
184
220
  # HTTP status code of the response
185
221
  sig { returns(Integer) }
186
222
  attr_accessor :status_code
@@ -189,34 +225,282 @@ module ContextDev
189
225
  sig { returns(T::Boolean) }
190
226
  attr_accessor :success
191
227
 
192
- # The page's <title> content (empty string if unavailable)
228
+ # Best page title extracted from the page (empty string if unavailable).
193
229
  sig { returns(String) }
194
230
  attr_accessor :title
195
231
 
196
- # The URL that was fetched
232
+ # The crawl URL fetched for this page.
197
233
  sig { returns(String) }
198
234
  attr_accessor :url
199
235
 
236
+ # Additional non-social meta tags not promoted to top-level metadata fields.
237
+ sig do
238
+ returns(
239
+ T.nilable(
240
+ T::Hash[
241
+ Symbol,
242
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::AdditionalMeta::Variants
243
+ ]
244
+ )
245
+ )
246
+ end
247
+ attr_reader :additional_meta
248
+
249
+ sig do
250
+ params(
251
+ additional_meta:
252
+ T::Hash[
253
+ Symbol,
254
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::AdditionalMeta::Variants
255
+ ]
256
+ ).void
257
+ end
258
+ attr_writer :additional_meta
259
+
260
+ # Resolved alternate links from link rel=alternate tags.
261
+ sig do
262
+ returns(
263
+ T.nilable(
264
+ T::Array[
265
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::Alternate
266
+ ]
267
+ )
268
+ )
269
+ end
270
+ attr_reader :alternates
271
+
272
+ sig do
273
+ params(
274
+ alternates:
275
+ T::Array[
276
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::Alternate::OrHash
277
+ ]
278
+ ).void
279
+ end
280
+ attr_writer :alternates
281
+
282
+ # Author metadata, when present.
283
+ sig { returns(T.nilable(String)) }
284
+ attr_reader :author
285
+
286
+ sig { params(author: String).void }
287
+ attr_writer :author
288
+
289
+ # Resolved canonical URL, when present.
290
+ sig { returns(T.nilable(String)) }
291
+ attr_reader :canonical_url
292
+
293
+ sig { params(canonical_url: String).void }
294
+ attr_writer :canonical_url
295
+
296
+ # Best description extracted from standard, Open Graph, or Twitter metadata.
297
+ sig { returns(T.nilable(String)) }
298
+ attr_reader :description
299
+
300
+ sig { params(description: String).void }
301
+ attr_writer :description
302
+
303
+ # Resolved favicon URL, when present.
304
+ sig { returns(T.nilable(String)) }
305
+ attr_reader :favicon
306
+
307
+ sig { params(favicon: String).void }
308
+ attr_writer :favicon
309
+
310
+ # Primary resolved preview image from Open Graph, Twitter, or image metadata.
311
+ sig { returns(T.nilable(String)) }
312
+ attr_reader :image
313
+
314
+ sig { params(image: String).void }
315
+ attr_writer :image
316
+
317
+ # JSON-LD structured data blocks parsed from the page.
318
+ sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) }
319
+ attr_reader :json_ld
320
+
321
+ sig { params(json_ld: T::Array[T::Hash[Symbol, T.anything]]).void }
322
+ attr_writer :json_ld
323
+
324
+ # Keywords extracted from the page's keywords meta tag.
325
+ sig { returns(T.nilable(T::Array[String])) }
326
+ attr_reader :keywords
327
+
328
+ sig { params(keywords: T::Array[String]).void }
329
+ attr_writer :keywords
330
+
331
+ # Language extracted from html lang or language meta tags.
332
+ sig { returns(T.nilable(String)) }
333
+ attr_reader :language
334
+
335
+ sig { params(language: String).void }
336
+ attr_writer :language
337
+
338
+ # Modified timestamp/date from page metadata, when present.
339
+ sig { returns(T.nilable(String)) }
340
+ attr_reader :modified_time
341
+
342
+ sig { params(modified_time: String).void }
343
+ attr_writer :modified_time
344
+
345
+ # Open Graph metadata with the og: prefix removed and keys camel-cased.
346
+ sig do
347
+ returns(
348
+ T.nilable(
349
+ T::Hash[
350
+ Symbol,
351
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::OpenGraph::Variants
352
+ ]
353
+ )
354
+ )
355
+ end
356
+ attr_reader :open_graph
357
+
358
+ sig do
359
+ params(
360
+ open_graph:
361
+ T::Hash[
362
+ Symbol,
363
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::OpenGraph::Variants
364
+ ]
365
+ ).void
366
+ end
367
+ attr_writer :open_graph
368
+
369
+ # Published timestamp/date from page metadata, when present.
370
+ sig { returns(T.nilable(String)) }
371
+ attr_reader :published_time
372
+
373
+ sig { params(published_time: String).void }
374
+ attr_writer :published_time
375
+
376
+ # Robots meta directive, when present.
377
+ sig { returns(T.nilable(String)) }
378
+ attr_reader :robots
379
+
380
+ sig { params(robots: String).void }
381
+ attr_writer :robots
382
+
383
+ # Site or application name from page metadata.
384
+ sig { returns(T.nilable(String)) }
385
+ attr_reader :site_name
386
+
387
+ sig { params(site_name: String).void }
388
+ attr_writer :site_name
389
+
390
+ # Twitter card metadata with the twitter: prefix removed and keys camel-cased.
391
+ sig do
392
+ returns(
393
+ T.nilable(
394
+ T::Hash[
395
+ Symbol,
396
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::Twitter::Variants
397
+ ]
398
+ )
399
+ )
400
+ end
401
+ attr_reader :twitter
402
+
403
+ sig do
404
+ params(
405
+ twitter:
406
+ T::Hash[
407
+ Symbol,
408
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::Twitter::Variants
409
+ ]
410
+ ).void
411
+ end
412
+ attr_writer :twitter
413
+
200
414
  sig do
201
415
  params(
202
416
  crawl_depth: Integer,
417
+ final_url: String,
418
+ source_url: String,
203
419
  status_code: Integer,
204
420
  success: T::Boolean,
205
421
  title: String,
206
- url: String
422
+ url: String,
423
+ additional_meta:
424
+ T::Hash[
425
+ Symbol,
426
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::AdditionalMeta::Variants
427
+ ],
428
+ alternates:
429
+ T::Array[
430
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::Alternate::OrHash
431
+ ],
432
+ author: String,
433
+ canonical_url: String,
434
+ description: String,
435
+ favicon: String,
436
+ image: String,
437
+ json_ld: T::Array[T::Hash[Symbol, T.anything]],
438
+ keywords: T::Array[String],
439
+ language: String,
440
+ modified_time: String,
441
+ open_graph:
442
+ T::Hash[
443
+ Symbol,
444
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::OpenGraph::Variants
445
+ ],
446
+ published_time: String,
447
+ robots: String,
448
+ site_name: String,
449
+ twitter:
450
+ T::Hash[
451
+ Symbol,
452
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::Twitter::Variants
453
+ ]
207
454
  ).returns(T.attached_class)
208
455
  end
209
456
  def self.new(
210
457
  # Depth relative to the start URL. 0 = start URL, 1 = one link away.
211
458
  crawl_depth:,
459
+ # Final URL scraped after redirects or scraper fallback, when known. Falls back to
460
+ # sourceUrl when unavailable.
461
+ final_url:,
462
+ # Original URL requested by the caller.
463
+ source_url:,
212
464
  # HTTP status code of the response
213
465
  status_code:,
214
466
  # true if the page was fetched and parsed successfully
215
467
  success:,
216
- # The page's <title> content (empty string if unavailable)
468
+ # Best page title extracted from the page (empty string if unavailable).
217
469
  title:,
218
- # The URL that was fetched
219
- url:
470
+ # The crawl URL fetched for this page.
471
+ url:,
472
+ # Additional non-social meta tags not promoted to top-level metadata fields.
473
+ additional_meta: nil,
474
+ # Resolved alternate links from link rel=alternate tags.
475
+ alternates: nil,
476
+ # Author metadata, when present.
477
+ author: nil,
478
+ # Resolved canonical URL, when present.
479
+ canonical_url: nil,
480
+ # Best description extracted from standard, Open Graph, or Twitter metadata.
481
+ description: nil,
482
+ # Resolved favicon URL, when present.
483
+ favicon: nil,
484
+ # Primary resolved preview image from Open Graph, Twitter, or image metadata.
485
+ image: nil,
486
+ # JSON-LD structured data blocks parsed from the page.
487
+ json_ld: nil,
488
+ # Keywords extracted from the page's keywords meta tag.
489
+ keywords: nil,
490
+ # Language extracted from html lang or language meta tags.
491
+ language: nil,
492
+ # Modified timestamp/date from page metadata, when present.
493
+ modified_time: nil,
494
+ # Open Graph metadata with the og: prefix removed and keys camel-cased.
495
+ open_graph: nil,
496
+ # Published timestamp/date from page metadata, when present.
497
+ published_time: nil,
498
+ # Robots meta directive, when present.
499
+ robots: nil,
500
+ # Site or application name from page metadata.
501
+ site_name: nil,
502
+ # Twitter card metadata with the twitter: prefix removed and keys camel-cased.
503
+ twitter: nil
220
504
  )
221
505
  end
222
506
 
@@ -224,15 +508,218 @@ module ContextDev
224
508
  override.returns(
225
509
  {
226
510
  crawl_depth: Integer,
511
+ final_url: String,
512
+ source_url: String,
227
513
  status_code: Integer,
228
514
  success: T::Boolean,
229
515
  title: String,
230
- url: String
516
+ url: String,
517
+ additional_meta:
518
+ T::Hash[
519
+ Symbol,
520
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::AdditionalMeta::Variants
521
+ ],
522
+ alternates:
523
+ T::Array[
524
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::Alternate
525
+ ],
526
+ author: String,
527
+ canonical_url: String,
528
+ description: String,
529
+ favicon: String,
530
+ image: String,
531
+ json_ld: T::Array[T::Hash[Symbol, T.anything]],
532
+ keywords: T::Array[String],
533
+ language: String,
534
+ modified_time: String,
535
+ open_graph:
536
+ T::Hash[
537
+ Symbol,
538
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::OpenGraph::Variants
539
+ ],
540
+ published_time: String,
541
+ robots: String,
542
+ site_name: String,
543
+ twitter:
544
+ T::Hash[
545
+ Symbol,
546
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::Twitter::Variants
547
+ ]
231
548
  }
232
549
  )
233
550
  end
234
551
  def to_hash
235
552
  end
553
+
554
+ module AdditionalMeta
555
+ extend ContextDev::Internal::Type::Union
556
+
557
+ Variants = T.type_alias { T.any(String, T::Array[String]) }
558
+
559
+ sig do
560
+ override.returns(
561
+ T::Array[
562
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::AdditionalMeta::Variants
563
+ ]
564
+ )
565
+ end
566
+ def self.variants
567
+ end
568
+
569
+ StringArray =
570
+ T.let(
571
+ ContextDev::Internal::Type::ArrayOf[String],
572
+ ContextDev::Internal::Type::Converter
573
+ )
574
+ end
575
+
576
+ class Alternate < ContextDev::Internal::Type::BaseModel
577
+ OrHash =
578
+ T.type_alias do
579
+ T.any(
580
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::Alternate,
581
+ ContextDev::Internal::AnyHash
582
+ )
583
+ end
584
+
585
+ # Resolved alternate URL.
586
+ sig { returns(String) }
587
+ attr_accessor :href
588
+
589
+ # Language or locale for the alternate URL, when present.
590
+ sig { returns(T.nilable(String)) }
591
+ attr_reader :hreflang
592
+
593
+ sig { params(hreflang: String).void }
594
+ attr_writer :hreflang
595
+
596
+ # Alternate resource title, when present.
597
+ sig { returns(T.nilable(String)) }
598
+ attr_reader :title
599
+
600
+ sig { params(title: String).void }
601
+ attr_writer :title
602
+
603
+ # Alternate resource MIME type, when present.
604
+ sig { returns(T.nilable(String)) }
605
+ attr_reader :type
606
+
607
+ sig { params(type: String).void }
608
+ attr_writer :type
609
+
610
+ sig do
611
+ params(
612
+ href: String,
613
+ hreflang: String,
614
+ title: String,
615
+ type: String
616
+ ).returns(T.attached_class)
617
+ end
618
+ def self.new(
619
+ # Resolved alternate URL.
620
+ href:,
621
+ # Language or locale for the alternate URL, when present.
622
+ hreflang: nil,
623
+ # Alternate resource title, when present.
624
+ title: nil,
625
+ # Alternate resource MIME type, when present.
626
+ type: nil
627
+ )
628
+ end
629
+
630
+ sig do
631
+ override.returns(
632
+ { href: String, hreflang: String, title: String, type: String }
633
+ )
634
+ end
635
+ def to_hash
636
+ end
637
+ end
638
+
639
+ module OpenGraph
640
+ extend ContextDev::Internal::Type::Union
641
+
642
+ Variants = T.type_alias { T.any(String, T::Array[String]) }
643
+
644
+ sig do
645
+ override.returns(
646
+ T::Array[
647
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::OpenGraph::Variants
648
+ ]
649
+ )
650
+ end
651
+ def self.variants
652
+ end
653
+
654
+ StringArray =
655
+ T.let(
656
+ ContextDev::Internal::Type::ArrayOf[String],
657
+ ContextDev::Internal::Type::Converter
658
+ )
659
+ end
660
+
661
+ module Twitter
662
+ extend ContextDev::Internal::Type::Union
663
+
664
+ Variants = T.type_alias { T.any(String, T::Array[String]) }
665
+
666
+ sig do
667
+ override.returns(
668
+ T::Array[
669
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::Twitter::Variants
670
+ ]
671
+ )
672
+ end
673
+ def self.variants
674
+ end
675
+
676
+ StringArray =
677
+ T.let(
678
+ ContextDev::Internal::Type::ArrayOf[String],
679
+ ContextDev::Internal::Type::Converter
680
+ )
681
+ end
682
+ end
683
+ end
684
+
685
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
686
+ OrHash =
687
+ T.type_alias do
688
+ T.any(
689
+ ContextDev::Models::WebWebCrawlMdResponse::KeyMetadata,
690
+ ContextDev::Internal::AnyHash
691
+ )
692
+ end
693
+
694
+ # The number of credits consumed by this request.
695
+ sig { returns(Integer) }
696
+ attr_accessor :credits_consumed
697
+
698
+ # The number of credits remaining for your organization after this request.
699
+ sig { returns(Integer) }
700
+ attr_accessor :credits_remaining
701
+
702
+ # Metadata about the API key used for the request. Included in every response
703
+ # whenever a valid API key is provided, even when the response status is not 200.
704
+ sig do
705
+ params(credits_consumed: Integer, credits_remaining: Integer).returns(
706
+ T.attached_class
707
+ )
708
+ end
709
+ def self.new(
710
+ # The number of credits consumed by this request.
711
+ credits_consumed:,
712
+ # The number of credits remaining for your organization after this request.
713
+ credits_remaining:
714
+ )
715
+ end
716
+
717
+ sig do
718
+ override.returns(
719
+ { credits_consumed: Integer, credits_remaining: Integer }
720
+ )
721
+ end
722
+ def to_hash
236
723
  end
237
724
  end
238
725
  end