context.dev 2.18.0 → 2.19.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 (115) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/client.rb +0 -4
  5. data/lib/context_dev/models/monitor_retrieve_run_params.rb +26 -0
  6. data/lib/context_dev/models/monitor_retrieve_run_response.rb +232 -0
  7. data/lib/context_dev/models/monitor_rotate_webhook_secret_params.rb +20 -0
  8. data/lib/context_dev/models/monitor_rotate_webhook_secret_response.rb +765 -0
  9. data/lib/context_dev/models/{web_web_scrape_sitemap_params.rb → web_map_urls_params.rb} +14 -14
  10. data/lib/context_dev/models/web_map_urls_response.rb +123 -0
  11. data/lib/context_dev/models/web_scrape_params.rb +906 -0
  12. data/lib/context_dev/models/web_scrape_response.rb +659 -0
  13. data/lib/context_dev/models/web_screenshot_params.rb +15 -1
  14. data/lib/context_dev/models/web_screenshot_response.rb +3 -3
  15. data/lib/context_dev/models.rb +8 -22
  16. data/lib/context_dev/resources/brand.rb +0 -36
  17. data/lib/context_dev/resources/monitors.rb +47 -0
  18. data/lib/context_dev/resources/web.rb +106 -486
  19. data/lib/context_dev/version.rb +1 -1
  20. data/lib/context_dev.rb +8 -23
  21. data/rbi/context_dev/client.rbi +0 -3
  22. data/rbi/context_dev/models/monitor_retrieve_run_params.rbi +46 -0
  23. data/rbi/context_dev/models/monitor_retrieve_run_response.rbi +452 -0
  24. data/rbi/context_dev/models/monitor_rotate_webhook_secret_params.rbi +38 -0
  25. data/rbi/context_dev/models/monitor_rotate_webhook_secret_response.rbi +1367 -0
  26. data/rbi/context_dev/models/{web_web_scrape_sitemap_params.rbi → web_map_urls_params.rbi} +23 -45
  27. data/rbi/context_dev/models/web_map_urls_response.rbi +226 -0
  28. data/rbi/context_dev/models/web_scrape_params.rbi +2000 -0
  29. data/rbi/context_dev/models/{web_web_scrape_html_response.rbi → web_scrape_response.rbi} +539 -510
  30. data/rbi/context_dev/models/web_screenshot_params.rbi +23 -0
  31. data/rbi/context_dev/models/web_screenshot_response.rbi +4 -4
  32. data/rbi/context_dev/models.rbi +9 -24
  33. data/rbi/context_dev/resources/brand.rbi +0 -35
  34. data/rbi/context_dev/resources/monitors.rbi +24 -0
  35. data/rbi/context_dev/resources/web.rbi +135 -654
  36. data/sig/context_dev/client.rbs +0 -2
  37. data/sig/context_dev/models/monitor_retrieve_run_params.rbs +28 -0
  38. data/sig/context_dev/models/monitor_retrieve_run_response.rbs +182 -0
  39. data/sig/context_dev/models/monitor_rotate_webhook_secret_params.rbs +23 -0
  40. data/sig/context_dev/models/monitor_rotate_webhook_secret_response.rbs +545 -0
  41. data/sig/context_dev/models/{web_web_scrape_sitemap_params.rbs → web_map_urls_params.rbs} +22 -22
  42. data/sig/context_dev/models/web_map_urls_response.rbs +125 -0
  43. data/sig/context_dev/models/web_scrape_params.rbs +834 -0
  44. data/sig/context_dev/models/web_scrape_response.rbs +552 -0
  45. data/sig/context_dev/models/web_screenshot_params.rbs +7 -0
  46. data/sig/context_dev/models.rbs +8 -22
  47. data/sig/context_dev/resources/brand.rbs +0 -9
  48. data/sig/context_dev/resources/monitors.rbs +11 -0
  49. data/sig/context_dev/resources/web.rbs +30 -128
  50. metadata +26 -71
  51. data/lib/context_dev/models/ai_extract_product_params.rb +0 -125
  52. data/lib/context_dev/models/ai_extract_product_response.rb +0 -402
  53. data/lib/context_dev/models/ai_extract_products_params.rb +0 -233
  54. data/lib/context_dev/models/ai_extract_products_response.rb +0 -370
  55. data/lib/context_dev/models/brand_retrieve_simplified_params.rb +0 -120
  56. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +0 -441
  57. data/lib/context_dev/models/web_extract_fonts_params.rb +0 -114
  58. data/lib/context_dev/models/web_extract_fonts_response.rb +0 -291
  59. data/lib/context_dev/models/web_extract_params.rb +0 -419
  60. data/lib/context_dev/models/web_extract_response.rb +0 -287
  61. data/lib/context_dev/models/web_web_scrape_bytes_params.rb +0 -346
  62. data/lib/context_dev/models/web_web_scrape_bytes_response.rb +0 -135
  63. data/lib/context_dev/models/web_web_scrape_html_params.rb +0 -812
  64. data/lib/context_dev/models/web_web_scrape_html_response.rb +0 -628
  65. data/lib/context_dev/models/web_web_scrape_images_params.rb +0 -373
  66. data/lib/context_dev/models/web_web_scrape_images_response.rb +0 -409
  67. data/lib/context_dev/models/web_web_scrape_md_params.rb +0 -670
  68. data/lib/context_dev/models/web_web_scrape_md_response.rb +0 -567
  69. data/lib/context_dev/models/web_web_scrape_screenshot_params.rb +0 -471
  70. data/lib/context_dev/models/web_web_scrape_screenshot_response.rb +0 -169
  71. data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +0 -144
  72. data/lib/context_dev/resources/ai.rb +0 -71
  73. data/rbi/context_dev/models/ai_extract_product_params.rbi +0 -253
  74. data/rbi/context_dev/models/ai_extract_product_response.rbi +0 -791
  75. data/rbi/context_dev/models/ai_extract_products_params.rbi +0 -490
  76. data/rbi/context_dev/models/ai_extract_products_response.rbi +0 -718
  77. data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +0 -256
  78. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +0 -1040
  79. data/rbi/context_dev/models/web_extract_fonts_params.rbi +0 -223
  80. data/rbi/context_dev/models/web_extract_fonts_response.rbi +0 -563
  81. data/rbi/context_dev/models/web_extract_params.rbi +0 -781
  82. data/rbi/context_dev/models/web_extract_response.rbi +0 -512
  83. data/rbi/context_dev/models/web_web_scrape_bytes_params.rbi +0 -702
  84. data/rbi/context_dev/models/web_web_scrape_bytes_response.rbi +0 -238
  85. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +0 -1690
  86. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +0 -728
  87. data/rbi/context_dev/models/web_web_scrape_images_response.rbi +0 -910
  88. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +0 -1052
  89. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +0 -1088
  90. data/rbi/context_dev/models/web_web_scrape_screenshot_params.rbi +0 -1580
  91. data/rbi/context_dev/models/web_web_scrape_screenshot_response.rbi +0 -332
  92. data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +0 -258
  93. data/rbi/context_dev/resources/ai.rbi +0 -63
  94. data/sig/context_dev/models/ai_extract_product_params.rbs +0 -106
  95. data/sig/context_dev/models/ai_extract_product_response.rbs +0 -314
  96. data/sig/context_dev/models/ai_extract_products_params.rbs +0 -202
  97. data/sig/context_dev/models/ai_extract_products_response.rbs +0 -293
  98. data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +0 -104
  99. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +0 -413
  100. data/sig/context_dev/models/web_extract_fonts_params.rbs +0 -93
  101. data/sig/context_dev/models/web_extract_fonts_response.rbs +0 -230
  102. data/sig/context_dev/models/web_extract_params.rbs +0 -324
  103. data/sig/context_dev/models/web_extract_response.rbs +0 -239
  104. data/sig/context_dev/models/web_web_scrape_bytes_params.rbs +0 -531
  105. data/sig/context_dev/models/web_web_scrape_bytes_response.rbs +0 -108
  106. data/sig/context_dev/models/web_web_scrape_html_params.rbs +0 -878
  107. data/sig/context_dev/models/web_web_scrape_html_response.rbs +0 -525
  108. data/sig/context_dev/models/web_web_scrape_images_params.rbs +0 -281
  109. data/sig/context_dev/models/web_web_scrape_images_response.rbs +0 -371
  110. data/sig/context_dev/models/web_web_scrape_md_params.rbs +0 -758
  111. data/sig/context_dev/models/web_web_scrape_md_response.rbs +0 -465
  112. data/sig/context_dev/models/web_web_scrape_screenshot_params.rbs +0 -619
  113. data/sig/context_dev/models/web_web_scrape_screenshot_response.rbs +0 -127
  114. data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +0 -117
  115. data/sig/context_dev/resources/ai.rbs +0 -21
@@ -0,0 +1,659 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ContextDev
4
+ module Models
5
+ # @see ContextDev::Resources::Web#scrape
6
+ class WebScrapeResponse < ContextDev::Internal::Type::BaseModel
7
+ # @!attribute bytes
8
+ # Original HTTP response body. Waiting, actions, and content filters never change
9
+ # it.
10
+ #
11
+ # @return [ContextDev::Models::WebScrapeResponse::Bytes]
12
+ required :bytes, -> { ContextDev::Models::WebScrapeResponse::Bytes }
13
+
14
+ # @!attribute cache_metadata
15
+ # Cache outcome for this response. Composite responses are hits only when every
16
+ # cache-controlled fetch contributing to the output was a hit; age_ms is the
17
+ # oldest contributing hit.
18
+ #
19
+ # @return [ContextDev::Models::WebScrapeResponse::CacheMetadata]
20
+ required :cache_metadata, -> { ContextDev::Models::WebScrapeResponse::CacheMetadata }
21
+
22
+ # @!attribute html
23
+ # Rendered HTML after content filters.
24
+ #
25
+ # @return [ContextDev::Models::WebScrapeResponse::HTML]
26
+ required :html, -> { ContextDev::Models::WebScrapeResponse::HTML }
27
+
28
+ # @!attribute images
29
+ # Images after content filters. Empty when none are found.
30
+ #
31
+ # @return [ContextDev::Models::WebScrapeResponse::Images]
32
+ required :images, -> { ContextDev::Models::WebScrapeResponse::Images }
33
+
34
+ # @!attribute markdown
35
+ # Markdown after content filters.
36
+ #
37
+ # @return [ContextDev::Models::WebScrapeResponse::Markdown]
38
+ required :markdown, -> { ContextDev::Models::WebScrapeResponse::Markdown }
39
+
40
+ # @!attribute metadata
41
+ # Page details, when available.
42
+ #
43
+ # @return [ContextDev::Models::WebScrapeResponse::Metadata]
44
+ required :metadata, -> { ContextDev::Models::WebScrapeResponse::Metadata }
45
+
46
+ # @!attribute parsed
47
+ # Fields produced by parseParams.rules, after shared content filters.
48
+ #
49
+ # @return [ContextDev::Models::WebScrapeResponse::Parsed]
50
+ required :parsed, -> { ContextDev::Models::WebScrapeResponse::Parsed }
51
+
52
+ # @!attribute request_id
53
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
54
+ # it when contacting support about a failed request.
55
+ #
56
+ # @return [String]
57
+ required :request_id, String
58
+
59
+ # @!attribute screenshot
60
+ # An image data URL. Use directly as an image src.
61
+ #
62
+ # @return [ContextDev::Models::WebScrapeResponse::Screenshot]
63
+ required :screenshot, -> { ContextDev::Models::WebScrapeResponse::Screenshot }
64
+
65
+ # @!attribute url
66
+ # Final URL after redirects and browser actions.
67
+ #
68
+ # @return [String]
69
+ required :url, String
70
+
71
+ # @!attribute is_partial
72
+ # Present when return-partial captures a page that is still loading or returns
73
+ # images before image processing finishes. Partial responses are not cached.
74
+ #
75
+ # @return [Boolean, ContextDev::Models::WebScrapeResponse::IsPartial, nil]
76
+ optional :is_partial, enum: -> { ContextDev::Models::WebScrapeResponse::IsPartial }, api_name: :isPartial
77
+
78
+ # @!attribute key_metadata
79
+ # Credit usage, included whenever a valid API key is provided.
80
+ #
81
+ # @return [ContextDev::Models::WebScrapeResponse::KeyMetadata, nil]
82
+ optional :key_metadata, -> { ContextDev::Models::WebScrapeResponse::KeyMetadata }
83
+
84
+ # @!method initialize(bytes:, cache_metadata:, html:, images:, markdown:, metadata:, parsed:, request_id:, screenshot:, url:, is_partial: nil, key_metadata: nil)
85
+ # Some parameter documentations has been truncated, see
86
+ # {ContextDev::Models::WebScrapeResponse} for more details.
87
+ #
88
+ # @param bytes [ContextDev::Models::WebScrapeResponse::Bytes] Original HTTP response body. Waiting, actions, and content filters never change
89
+ #
90
+ # @param cache_metadata [ContextDev::Models::WebScrapeResponse::CacheMetadata] Cache outcome for this response. Composite responses are hits only when every ca
91
+ #
92
+ # @param html [ContextDev::Models::WebScrapeResponse::HTML] Rendered HTML after content filters.
93
+ #
94
+ # @param images [ContextDev::Models::WebScrapeResponse::Images] Images after content filters. Empty when none are found.
95
+ #
96
+ # @param markdown [ContextDev::Models::WebScrapeResponse::Markdown] Markdown after content filters.
97
+ #
98
+ # @param metadata [ContextDev::Models::WebScrapeResponse::Metadata] Page details, when available.
99
+ #
100
+ # @param parsed [ContextDev::Models::WebScrapeResponse::Parsed] Fields produced by parseParams.rules, after shared content filters.
101
+ #
102
+ # @param request_id [String] Unique id of this API call, also sent in the X-Request-Id response header. Quote
103
+ #
104
+ # @param screenshot [ContextDev::Models::WebScrapeResponse::Screenshot] An image data URL. Use directly as an image src.
105
+ #
106
+ # @param url [String] Final URL after redirects and browser actions.
107
+ #
108
+ # @param is_partial [Boolean, ContextDev::Models::WebScrapeResponse::IsPartial] Present when return-partial captures a page that is still loading or returns ima
109
+ #
110
+ # @param key_metadata [ContextDev::Models::WebScrapeResponse::KeyMetadata] Credit usage, included whenever a valid API key is provided.
111
+
112
+ # @see ContextDev::Models::WebScrapeResponse#bytes
113
+ class Bytes < ContextDev::Internal::Type::BaseModel
114
+ # @!attribute data
115
+ #
116
+ # @return [ContextDev::Models::WebScrapeResponse::Bytes::Data, nil]
117
+ required :data, -> { ContextDev::Models::WebScrapeResponse::Bytes::Data }, nil?: true
118
+
119
+ # @!attribute requested
120
+ #
121
+ # @return [Boolean]
122
+ required :requested, ContextDev::Internal::Type::Boolean
123
+
124
+ # @!method initialize(data:, requested:)
125
+ # Original HTTP response body. Waiting, actions, and content filters never change
126
+ # it.
127
+ #
128
+ # @param data [ContextDev::Models::WebScrapeResponse::Bytes::Data, nil]
129
+ # @param requested [Boolean]
130
+
131
+ # @see ContextDev::Models::WebScrapeResponse::Bytes#data
132
+ class Data < ContextDev::Internal::Type::BaseModel
133
+ # @!attribute base64
134
+ # Original response body as base64, after HTTP decompression. Maximum decoded
135
+ # size: 20 MiB.
136
+ #
137
+ # @return [String]
138
+ required :base64, String
139
+
140
+ # @!attribute content_type
141
+ #
142
+ # @return [String]
143
+ required :content_type, String, api_name: :contentType
144
+
145
+ # @!method initialize(base64:, content_type:)
146
+ # Some parameter documentations has been truncated, see
147
+ # {ContextDev::Models::WebScrapeResponse::Bytes::Data} for more details.
148
+ #
149
+ # @param base64 [String] Original response body as base64, after HTTP decompression. Maximum decoded size
150
+ #
151
+ # @param content_type [String]
152
+ end
153
+ end
154
+
155
+ # @see ContextDev::Models::WebScrapeResponse#cache_metadata
156
+ class CacheMetadata < ContextDev::Internal::Type::BaseModel
157
+ # @!attribute age_ms
158
+ # Age of the cached data in milliseconds. Zero for miss and zdr responses.
159
+ #
160
+ # @return [Integer]
161
+ required :age_ms, Integer
162
+
163
+ # @!attribute status
164
+ # Whether the response was served from cache, required fresh work, or honored
165
+ # zero-data-retention cache bypass.
166
+ #
167
+ # @return [Symbol, ContextDev::Models::WebScrapeResponse::CacheMetadata::Status]
168
+ required :status, enum: -> { ContextDev::Models::WebScrapeResponse::CacheMetadata::Status }
169
+
170
+ # @!method initialize(age_ms:, status:)
171
+ # Some parameter documentations has been truncated, see
172
+ # {ContextDev::Models::WebScrapeResponse::CacheMetadata} for more details.
173
+ #
174
+ # Cache outcome for this response. Composite responses are hits only when every
175
+ # cache-controlled fetch contributing to the output was a hit; age_ms is the
176
+ # oldest contributing hit.
177
+ #
178
+ # @param age_ms [Integer] Age of the cached data in milliseconds. Zero for miss and zdr responses.
179
+ #
180
+ # @param status [Symbol, ContextDev::Models::WebScrapeResponse::CacheMetadata::Status] Whether the response was served from cache, required fresh work, or honored zero
181
+
182
+ # Whether the response was served from cache, required fresh work, or honored
183
+ # zero-data-retention cache bypass.
184
+ #
185
+ # @see ContextDev::Models::WebScrapeResponse::CacheMetadata#status
186
+ module Status
187
+ extend ContextDev::Internal::Type::Enum
188
+
189
+ HIT = :hit
190
+ MISS = :miss
191
+ ZDR = :zdr
192
+
193
+ # @!method self.values
194
+ # @return [Array<Symbol>]
195
+ end
196
+ end
197
+
198
+ # @see ContextDev::Models::WebScrapeResponse#html
199
+ class HTML < ContextDev::Internal::Type::BaseModel
200
+ # @!attribute data
201
+ #
202
+ # @return [String, nil]
203
+ required :data, String, nil?: true
204
+
205
+ # @!attribute requested
206
+ #
207
+ # @return [Boolean]
208
+ required :requested, ContextDev::Internal::Type::Boolean
209
+
210
+ # @!method initialize(data:, requested:)
211
+ # Rendered HTML after content filters.
212
+ #
213
+ # @param data [String, nil]
214
+ # @param requested [Boolean]
215
+ end
216
+
217
+ # @see ContextDev::Models::WebScrapeResponse#images
218
+ class Images < ContextDev::Internal::Type::BaseModel
219
+ # @!attribute data
220
+ #
221
+ # @return [Array<ContextDev::Models::WebScrapeResponse::Images::Data>, nil]
222
+ required :data,
223
+ -> { ContextDev::Internal::Type::ArrayOf[ContextDev::Models::WebScrapeResponse::Images::Data] },
224
+ nil?: true
225
+
226
+ # @!attribute requested
227
+ #
228
+ # @return [Boolean]
229
+ required :requested, ContextDev::Internal::Type::Boolean
230
+
231
+ # @!method initialize(data:, requested:)
232
+ # Images after content filters. Empty when none are found.
233
+ #
234
+ # @param data [Array<ContextDev::Models::WebScrapeResponse::Images::Data>, nil]
235
+ # @param requested [Boolean]
236
+
237
+ class Data < ContextDev::Internal::Type::BaseModel
238
+ # @!attribute alt
239
+ # Alt text, if present.
240
+ #
241
+ # @return [String, nil]
242
+ required :alt, String, nil?: true
243
+
244
+ # @!attribute url
245
+ # Image URL, or a data URI for inline images.
246
+ #
247
+ # @return [String]
248
+ required :url, String
249
+
250
+ # @!attribute classification
251
+ #
252
+ # @return [Symbol, ContextDev::Models::WebScrapeResponse::Images::Data::Classification, nil]
253
+ optional :classification, enum: -> { ContextDev::Models::WebScrapeResponse::Images::Data::Classification }
254
+
255
+ # @!attribute file_url
256
+ # Hosted copy when file enrichment is requested and zdr is disabled. Valid for 24
257
+ # hours from the original capture.
258
+ #
259
+ # @return [String, nil]
260
+ optional :file_url, String, api_name: :fileUrl
261
+
262
+ # @!attribute height
263
+ #
264
+ # @return [Integer, nil]
265
+ optional :height, Integer
266
+
267
+ # @!attribute width
268
+ #
269
+ # @return [Integer, nil]
270
+ optional :width, Integer
271
+
272
+ # @!method initialize(alt:, url:, classification: nil, file_url: nil, height: nil, width: nil)
273
+ # Some parameter documentations has been truncated, see
274
+ # {ContextDev::Models::WebScrapeResponse::Images::Data} for more details.
275
+ #
276
+ # @param alt [String, nil] Alt text, if present.
277
+ #
278
+ # @param url [String] Image URL, or a data URI for inline images.
279
+ #
280
+ # @param classification [Symbol, ContextDev::Models::WebScrapeResponse::Images::Data::Classification]
281
+ #
282
+ # @param file_url [String] Hosted copy when file enrichment is requested and zdr is disabled. Valid for 24
283
+ #
284
+ # @param height [Integer]
285
+ #
286
+ # @param width [Integer]
287
+
288
+ # @see ContextDev::Models::WebScrapeResponse::Images::Data#classification
289
+ module Classification
290
+ extend ContextDev::Internal::Type::Enum
291
+
292
+ PHOTOGRAPHY = :photography
293
+ ILLUSTRATION = :illustration
294
+ LOGO = :logo
295
+ WORDMARK = :wordmark
296
+ ICON = :icon
297
+ PATTERN = :pattern
298
+ GRAPHIC = :graphic
299
+ OTHER = :other
300
+
301
+ # @!method self.values
302
+ # @return [Array<Symbol>]
303
+ end
304
+ end
305
+ end
306
+
307
+ # @see ContextDev::Models::WebScrapeResponse#markdown
308
+ class Markdown < ContextDev::Internal::Type::BaseModel
309
+ # @!attribute data
310
+ #
311
+ # @return [String, nil]
312
+ required :data, String, nil?: true
313
+
314
+ # @!attribute requested
315
+ #
316
+ # @return [Boolean]
317
+ required :requested, ContextDev::Internal::Type::Boolean
318
+
319
+ # @!method initialize(data:, requested:)
320
+ # Markdown after content filters.
321
+ #
322
+ # @param data [String, nil]
323
+ # @param requested [Boolean]
324
+ end
325
+
326
+ # @see ContextDev::Models::WebScrapeResponse#metadata
327
+ class Metadata < ContextDev::Internal::Type::BaseModel
328
+ # @!attribute additional_meta
329
+ # Additional non-social meta tags not promoted to top-level metadata fields.
330
+ #
331
+ # @return [Hash{Symbol=>String, Array<String>}, nil]
332
+ optional :additional_meta,
333
+ -> { ContextDev::Internal::Type::HashOf[union: ContextDev::Models::WebScrapeResponse::Metadata::AdditionalMeta] },
334
+ api_name: :additionalMeta
335
+
336
+ # @!attribute alternates
337
+ # Resolved alternate links from link rel=alternate tags.
338
+ #
339
+ # @return [Array<ContextDev::Models::WebScrapeResponse::Metadata::Alternate>, nil]
340
+ optional :alternates,
341
+ -> { ContextDev::Internal::Type::ArrayOf[ContextDev::Models::WebScrapeResponse::Metadata::Alternate] }
342
+
343
+ # @!attribute author
344
+ # Author metadata, when present.
345
+ #
346
+ # @return [String, nil]
347
+ optional :author, String
348
+
349
+ # @!attribute canonical_url
350
+ # Resolved canonical URL, when present.
351
+ #
352
+ # @return [String, nil]
353
+ optional :canonical_url, String, api_name: :canonicalUrl
354
+
355
+ # @!attribute description
356
+ # Best description extracted from standard, Open Graph, or Twitter metadata.
357
+ #
358
+ # @return [String, nil]
359
+ optional :description, String
360
+
361
+ # @!attribute favicon
362
+ # Resolved favicon URL, when present.
363
+ #
364
+ # @return [String, nil]
365
+ optional :favicon, String
366
+
367
+ # @!attribute headings
368
+ # Page headings (h1–h6) in document order, extracted from the unfiltered document.
369
+ # Capped at the first 500 headings. Omitted when the page has none.
370
+ #
371
+ # @return [Array<ContextDev::Models::WebScrapeResponse::Metadata::Heading>, nil]
372
+ optional :headings,
373
+ -> { ContextDev::Internal::Type::ArrayOf[ContextDev::Models::WebScrapeResponse::Metadata::Heading] }
374
+
375
+ # @!attribute image
376
+ # Primary resolved preview image from Open Graph, Twitter, or image metadata.
377
+ #
378
+ # @return [String, nil]
379
+ optional :image, String
380
+
381
+ # @!attribute json_ld
382
+ # JSON-LD structured data blocks parsed from the page.
383
+ #
384
+ # @return [Array<Hash{Symbol=>Object}>, nil]
385
+ optional :json_ld,
386
+ ContextDev::Internal::Type::ArrayOf[ContextDev::Internal::Type::HashOf[ContextDev::Internal::Type::Unknown]],
387
+ api_name: :jsonLd
388
+
389
+ # @!attribute keywords
390
+ # Keywords extracted from the page's keywords meta tag.
391
+ #
392
+ # @return [Array<String>, nil]
393
+ optional :keywords, ContextDev::Internal::Type::ArrayOf[String]
394
+
395
+ # @!attribute language
396
+ # Language extracted from html lang or language meta tags.
397
+ #
398
+ # @return [String, nil]
399
+ optional :language, String
400
+
401
+ # @!attribute modified_time
402
+ # Modified timestamp/date from page metadata, when present.
403
+ #
404
+ # @return [String, nil]
405
+ optional :modified_time, String, api_name: :modifiedTime
406
+
407
+ # @!attribute open_graph
408
+ # Open Graph metadata with the og: prefix removed and keys camel-cased.
409
+ #
410
+ # @return [Hash{Symbol=>String, Array<String>}, nil]
411
+ optional :open_graph,
412
+ -> { ContextDev::Internal::Type::HashOf[union: ContextDev::Models::WebScrapeResponse::Metadata::OpenGraph] },
413
+ api_name: :openGraph
414
+
415
+ # @!attribute published_time
416
+ # Published timestamp/date from page metadata, when present.
417
+ #
418
+ # @return [String, nil]
419
+ optional :published_time, String, api_name: :publishedTime
420
+
421
+ # @!attribute robots
422
+ # Robots meta directive, when present.
423
+ #
424
+ # @return [String, nil]
425
+ optional :robots, String
426
+
427
+ # @!attribute site_name
428
+ # Site or application name from page metadata.
429
+ #
430
+ # @return [String, nil]
431
+ optional :site_name, String, api_name: :siteName
432
+
433
+ # @!attribute title
434
+ # Best title extracted from the page.
435
+ #
436
+ # @return [String, nil]
437
+ optional :title, String
438
+
439
+ # @!attribute twitter
440
+ # Twitter card metadata with the twitter: prefix removed and keys camel-cased.
441
+ #
442
+ # @return [Hash{Symbol=>String, Array<String>}, nil]
443
+ optional :twitter,
444
+ -> { ContextDev::Internal::Type::HashOf[union: ContextDev::Models::WebScrapeResponse::Metadata::Twitter] }
445
+
446
+ # @!method initialize(additional_meta: nil, alternates: nil, author: nil, canonical_url: nil, description: nil, favicon: nil, headings: nil, image: nil, json_ld: nil, keywords: nil, language: nil, modified_time: nil, open_graph: nil, published_time: nil, robots: nil, site_name: nil, title: nil, twitter: nil)
447
+ # Some parameter documentations has been truncated, see
448
+ # {ContextDev::Models::WebScrapeResponse::Metadata} for more details.
449
+ #
450
+ # Page details, when available.
451
+ #
452
+ # @param additional_meta [Hash{Symbol=>String, Array<String>}] Additional non-social meta tags not promoted to top-level metadata fields.
453
+ #
454
+ # @param alternates [Array<ContextDev::Models::WebScrapeResponse::Metadata::Alternate>] Resolved alternate links from link rel=alternate tags.
455
+ #
456
+ # @param author [String] Author metadata, when present.
457
+ #
458
+ # @param canonical_url [String] Resolved canonical URL, when present.
459
+ #
460
+ # @param description [String] Best description extracted from standard, Open Graph, or Twitter metadata.
461
+ #
462
+ # @param favicon [String] Resolved favicon URL, when present.
463
+ #
464
+ # @param headings [Array<ContextDev::Models::WebScrapeResponse::Metadata::Heading>] Page headings (h1–h6) in document order, extracted from the unfiltered document.
465
+ #
466
+ # @param image [String] Primary resolved preview image from Open Graph, Twitter, or image metadata.
467
+ #
468
+ # @param json_ld [Array<Hash{Symbol=>Object}>] JSON-LD structured data blocks parsed from the page.
469
+ #
470
+ # @param keywords [Array<String>] Keywords extracted from the page's keywords meta tag.
471
+ #
472
+ # @param language [String] Language extracted from html lang or language meta tags.
473
+ #
474
+ # @param modified_time [String] Modified timestamp/date from page metadata, when present.
475
+ #
476
+ # @param open_graph [Hash{Symbol=>String, Array<String>}] Open Graph metadata with the og: prefix removed and keys camel-cased.
477
+ #
478
+ # @param published_time [String] Published timestamp/date from page metadata, when present.
479
+ #
480
+ # @param robots [String] Robots meta directive, when present.
481
+ #
482
+ # @param site_name [String] Site or application name from page metadata.
483
+ #
484
+ # @param title [String] Best title extracted from the page.
485
+ #
486
+ # @param twitter [Hash{Symbol=>String, Array<String>}] Twitter card metadata with the twitter: prefix removed and keys camel-cased.
487
+
488
+ module AdditionalMeta
489
+ extend ContextDev::Internal::Type::Union
490
+
491
+ variant String
492
+
493
+ variant -> { ContextDev::Models::WebScrapeResponse::Metadata::AdditionalMeta::StringArray }
494
+
495
+ # @!method self.variants
496
+ # @return [Array(String, Array<String>)]
497
+
498
+ # @type [ContextDev::Internal::Type::Converter]
499
+ StringArray = ContextDev::Internal::Type::ArrayOf[String]
500
+ end
501
+
502
+ class Alternate < ContextDev::Internal::Type::BaseModel
503
+ # @!attribute href
504
+ # Resolved alternate URL.
505
+ #
506
+ # @return [String]
507
+ required :href, String
508
+
509
+ # @!attribute hreflang
510
+ # Language or locale for the alternate URL, when present.
511
+ #
512
+ # @return [String, nil]
513
+ optional :hreflang, String
514
+
515
+ # @!attribute title
516
+ # Alternate resource title, when present.
517
+ #
518
+ # @return [String, nil]
519
+ optional :title, String
520
+
521
+ # @!attribute type
522
+ # Alternate resource MIME type, when present.
523
+ #
524
+ # @return [String, nil]
525
+ optional :type, String
526
+
527
+ # @!method initialize(href:, hreflang: nil, title: nil, type: nil)
528
+ # @param href [String] Resolved alternate URL.
529
+ #
530
+ # @param hreflang [String] Language or locale for the alternate URL, when present.
531
+ #
532
+ # @param title [String] Alternate resource title, when present.
533
+ #
534
+ # @param type [String] Alternate resource MIME type, when present.
535
+ end
536
+
537
+ class Heading < ContextDev::Internal::Type::BaseModel
538
+ # @!attribute level
539
+ # Heading level, 1–6 (from h1–h6).
540
+ #
541
+ # @return [Integer]
542
+ required :level, Integer
543
+
544
+ # @!attribute text
545
+ # Heading text with whitespace collapsed, truncated to 1000 characters.
546
+ #
547
+ # @return [String]
548
+ required :text, String
549
+
550
+ # @!method initialize(level:, text:)
551
+ # @param level [Integer] Heading level, 1–6 (from h1–h6).
552
+ #
553
+ # @param text [String] Heading text with whitespace collapsed, truncated to 1000 characters.
554
+ end
555
+
556
+ module OpenGraph
557
+ extend ContextDev::Internal::Type::Union
558
+
559
+ variant String
560
+
561
+ variant -> { ContextDev::Models::WebScrapeResponse::Metadata::OpenGraph::StringArray }
562
+
563
+ # @!method self.variants
564
+ # @return [Array(String, Array<String>)]
565
+
566
+ # @type [ContextDev::Internal::Type::Converter]
567
+ StringArray = ContextDev::Internal::Type::ArrayOf[String]
568
+ end
569
+
570
+ module Twitter
571
+ extend ContextDev::Internal::Type::Union
572
+
573
+ variant String
574
+
575
+ variant -> { ContextDev::Models::WebScrapeResponse::Metadata::Twitter::StringArray }
576
+
577
+ # @!method self.variants
578
+ # @return [Array(String, Array<String>)]
579
+
580
+ # @type [ContextDev::Internal::Type::Converter]
581
+ StringArray = ContextDev::Internal::Type::ArrayOf[String]
582
+ end
583
+ end
584
+
585
+ # @see ContextDev::Models::WebScrapeResponse#parsed
586
+ class Parsed < ContextDev::Internal::Type::BaseModel
587
+ # @!attribute data
588
+ #
589
+ # @return [Hash{Symbol=>Object}, nil]
590
+ required :data, ContextDev::Internal::Type::HashOf[ContextDev::Internal::Type::Unknown], nil?: true
591
+
592
+ # @!attribute requested
593
+ #
594
+ # @return [Boolean]
595
+ required :requested, ContextDev::Internal::Type::Boolean
596
+
597
+ # @!method initialize(data:, requested:)
598
+ # Fields produced by parseParams.rules, after shared content filters.
599
+ #
600
+ # @param data [Hash{Symbol=>Object}, nil]
601
+ # @param requested [Boolean]
602
+ end
603
+
604
+ # @see ContextDev::Models::WebScrapeResponse#screenshot
605
+ class Screenshot < ContextDev::Internal::Type::BaseModel
606
+ # @!attribute data
607
+ #
608
+ # @return [String, nil]
609
+ required :data, String, nil?: true
610
+
611
+ # @!attribute requested
612
+ #
613
+ # @return [Boolean]
614
+ required :requested, ContextDev::Internal::Type::Boolean
615
+
616
+ # @!method initialize(data:, requested:)
617
+ # An image data URL. Use directly as an image src.
618
+ #
619
+ # @param data [String, nil]
620
+ # @param requested [Boolean]
621
+ end
622
+
623
+ # Present when return-partial captures a page that is still loading or returns
624
+ # images before image processing finishes. Partial responses are not cached.
625
+ #
626
+ # @see ContextDev::Models::WebScrapeResponse#is_partial
627
+ module IsPartial
628
+ extend ContextDev::Internal::Type::Enum
629
+
630
+ TRUE = true
631
+
632
+ # @!method self.values
633
+ # @return [Array<Boolean>]
634
+ end
635
+
636
+ # @see ContextDev::Models::WebScrapeResponse#key_metadata
637
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
638
+ # @!attribute credits_consumed
639
+ # Credits used by this request.
640
+ #
641
+ # @return [Integer]
642
+ required :credits_consumed, Integer
643
+
644
+ # @!attribute credits_remaining
645
+ # Credits remaining for your organization.
646
+ #
647
+ # @return [Integer]
648
+ required :credits_remaining, Integer
649
+
650
+ # @!method initialize(credits_consumed:, credits_remaining:)
651
+ # Credit usage, included whenever a valid API key is provided.
652
+ #
653
+ # @param credits_consumed [Integer] Credits used by this request.
654
+ #
655
+ # @param credits_remaining [Integer] Credits remaining for your organization.
656
+ end
657
+ end
658
+ end
659
+ end
@@ -63,6 +63,18 @@ module ContextDev
63
63
  # @return [Boolean, nil]
64
64
  optional :handle_cookie_popup, ContextDev::Internal::Type::Boolean
65
65
 
66
+ # @!attribute headers
67
+ # Optional outbound HTTP headers, using the same JSON object or deep-object query
68
+ # format as other scrape endpoints (for example headers[Authorization]=Bearer
69
+ # token). Headers are scoped to the target origin during capture. For domain/page
70
+ # requests, discovery receives no custom headers and only pages on the resolved
71
+ # origin are eligible. Non-empty headers bypass screenshot caching and return an
72
+ # in-memory data URL; no screenshot is uploaded. Empty objects behave like omitted
73
+ # headers.
74
+ #
75
+ # @return [Hash{Symbol=>String}, nil]
76
+ optional :headers, ContextDev::Internal::Type::HashOf[String]
77
+
66
78
  # @!attribute max_age_ms
67
79
  # Return a cached screenshot if a prior screenshot for the same parameters exists
68
80
  # and is younger than this many milliseconds. Defaults to 1 day (86400000 ms) when
@@ -133,7 +145,7 @@ module ContextDev
133
145
  # @return [Symbol, ContextDev::Models::WebScreenshotParams::Zdr, nil]
134
146
  optional :zdr, enum: -> { ContextDev::WebScreenshotParams::Zdr }
135
147
 
136
- # @!method initialize(clear_popups: nil, color_scheme: nil, country: nil, direct_url: nil, domain: nil, full_screenshot: nil, handle_cookie_popup: nil, max_age_ms: nil, page: nil, scroll_offset: nil, tags: nil, timeout_opts: nil, viewport: nil, wait_for_ms: nil, zdr: nil, request_options: {})
148
+ # @!method initialize(clear_popups: nil, color_scheme: nil, country: nil, direct_url: nil, domain: nil, full_screenshot: nil, handle_cookie_popup: nil, headers: nil, max_age_ms: nil, page: nil, scroll_offset: nil, tags: nil, timeout_opts: nil, viewport: nil, wait_for_ms: nil, zdr: nil, request_options: {})
137
149
  # Some parameter documentations has been truncated, see
138
150
  # {ContextDev::Models::WebScreenshotParams} for more details.
139
151
  #
@@ -151,6 +163,8 @@ module ContextDev
151
163
  #
152
164
  # @param handle_cookie_popup [Boolean] Optional parameter to control cookie/consent popup handling. If 'true', we dismi
153
165
  #
166
+ # @param headers [Hash{Symbol=>String}] Optional outbound HTTP headers, using the same JSON object or deep-object query
167
+ #
154
168
  # @param max_age_ms [Integer, nil] Return a cached screenshot if a prior screenshot for the same parameters exists
155
169
  #
156
170
  # @param page [Symbol, ContextDev::Models::WebScreenshotParams::Page] Optional parameter to specify which page type to screenshot. If provided, the sy