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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/README.md +1 -1
- data/lib/context_dev/client.rb +0 -4
- data/lib/context_dev/models/monitor_retrieve_run_params.rb +26 -0
- data/lib/context_dev/models/monitor_retrieve_run_response.rb +232 -0
- data/lib/context_dev/models/monitor_rotate_webhook_secret_params.rb +20 -0
- data/lib/context_dev/models/monitor_rotate_webhook_secret_response.rb +765 -0
- data/lib/context_dev/models/{web_web_scrape_sitemap_params.rb → web_map_urls_params.rb} +14 -14
- data/lib/context_dev/models/web_map_urls_response.rb +123 -0
- data/lib/context_dev/models/web_scrape_params.rb +906 -0
- data/lib/context_dev/models/web_scrape_response.rb +659 -0
- data/lib/context_dev/models/web_screenshot_params.rb +15 -1
- data/lib/context_dev/models/web_screenshot_response.rb +3 -3
- data/lib/context_dev/models.rb +8 -22
- data/lib/context_dev/resources/brand.rb +0 -36
- data/lib/context_dev/resources/monitors.rb +47 -0
- data/lib/context_dev/resources/web.rb +106 -486
- data/lib/context_dev/version.rb +1 -1
- data/lib/context_dev.rb +8 -23
- data/rbi/context_dev/client.rbi +0 -3
- data/rbi/context_dev/models/monitor_retrieve_run_params.rbi +46 -0
- data/rbi/context_dev/models/monitor_retrieve_run_response.rbi +452 -0
- data/rbi/context_dev/models/monitor_rotate_webhook_secret_params.rbi +38 -0
- data/rbi/context_dev/models/monitor_rotate_webhook_secret_response.rbi +1367 -0
- data/rbi/context_dev/models/{web_web_scrape_sitemap_params.rbi → web_map_urls_params.rbi} +23 -45
- data/rbi/context_dev/models/web_map_urls_response.rbi +226 -0
- data/rbi/context_dev/models/web_scrape_params.rbi +2000 -0
- data/rbi/context_dev/models/{web_web_scrape_html_response.rbi → web_scrape_response.rbi} +539 -510
- data/rbi/context_dev/models/web_screenshot_params.rbi +23 -0
- data/rbi/context_dev/models/web_screenshot_response.rbi +4 -4
- data/rbi/context_dev/models.rbi +9 -24
- data/rbi/context_dev/resources/brand.rbi +0 -35
- data/rbi/context_dev/resources/monitors.rbi +24 -0
- data/rbi/context_dev/resources/web.rbi +135 -654
- data/sig/context_dev/client.rbs +0 -2
- data/sig/context_dev/models/monitor_retrieve_run_params.rbs +28 -0
- data/sig/context_dev/models/monitor_retrieve_run_response.rbs +182 -0
- data/sig/context_dev/models/monitor_rotate_webhook_secret_params.rbs +23 -0
- data/sig/context_dev/models/monitor_rotate_webhook_secret_response.rbs +545 -0
- data/sig/context_dev/models/{web_web_scrape_sitemap_params.rbs → web_map_urls_params.rbs} +22 -22
- data/sig/context_dev/models/web_map_urls_response.rbs +125 -0
- data/sig/context_dev/models/web_scrape_params.rbs +834 -0
- data/sig/context_dev/models/web_scrape_response.rbs +552 -0
- data/sig/context_dev/models/web_screenshot_params.rbs +7 -0
- data/sig/context_dev/models.rbs +8 -22
- data/sig/context_dev/resources/brand.rbs +0 -9
- data/sig/context_dev/resources/monitors.rbs +11 -0
- data/sig/context_dev/resources/web.rbs +30 -128
- metadata +26 -71
- data/lib/context_dev/models/ai_extract_product_params.rb +0 -125
- data/lib/context_dev/models/ai_extract_product_response.rb +0 -402
- data/lib/context_dev/models/ai_extract_products_params.rb +0 -233
- data/lib/context_dev/models/ai_extract_products_response.rb +0 -370
- data/lib/context_dev/models/brand_retrieve_simplified_params.rb +0 -120
- data/lib/context_dev/models/brand_retrieve_simplified_response.rb +0 -441
- data/lib/context_dev/models/web_extract_fonts_params.rb +0 -114
- data/lib/context_dev/models/web_extract_fonts_response.rb +0 -291
- data/lib/context_dev/models/web_extract_params.rb +0 -419
- data/lib/context_dev/models/web_extract_response.rb +0 -287
- data/lib/context_dev/models/web_web_scrape_bytes_params.rb +0 -346
- data/lib/context_dev/models/web_web_scrape_bytes_response.rb +0 -135
- data/lib/context_dev/models/web_web_scrape_html_params.rb +0 -812
- data/lib/context_dev/models/web_web_scrape_html_response.rb +0 -628
- data/lib/context_dev/models/web_web_scrape_images_params.rb +0 -373
- data/lib/context_dev/models/web_web_scrape_images_response.rb +0 -409
- data/lib/context_dev/models/web_web_scrape_md_params.rb +0 -670
- data/lib/context_dev/models/web_web_scrape_md_response.rb +0 -567
- data/lib/context_dev/models/web_web_scrape_screenshot_params.rb +0 -471
- data/lib/context_dev/models/web_web_scrape_screenshot_response.rb +0 -169
- data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +0 -144
- data/lib/context_dev/resources/ai.rb +0 -71
- data/rbi/context_dev/models/ai_extract_product_params.rbi +0 -253
- data/rbi/context_dev/models/ai_extract_product_response.rbi +0 -791
- data/rbi/context_dev/models/ai_extract_products_params.rbi +0 -490
- data/rbi/context_dev/models/ai_extract_products_response.rbi +0 -718
- data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +0 -256
- data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +0 -1040
- data/rbi/context_dev/models/web_extract_fonts_params.rbi +0 -223
- data/rbi/context_dev/models/web_extract_fonts_response.rbi +0 -563
- data/rbi/context_dev/models/web_extract_params.rbi +0 -781
- data/rbi/context_dev/models/web_extract_response.rbi +0 -512
- data/rbi/context_dev/models/web_web_scrape_bytes_params.rbi +0 -702
- data/rbi/context_dev/models/web_web_scrape_bytes_response.rbi +0 -238
- data/rbi/context_dev/models/web_web_scrape_html_params.rbi +0 -1690
- data/rbi/context_dev/models/web_web_scrape_images_params.rbi +0 -728
- data/rbi/context_dev/models/web_web_scrape_images_response.rbi +0 -910
- data/rbi/context_dev/models/web_web_scrape_md_params.rbi +0 -1052
- data/rbi/context_dev/models/web_web_scrape_md_response.rbi +0 -1088
- data/rbi/context_dev/models/web_web_scrape_screenshot_params.rbi +0 -1580
- data/rbi/context_dev/models/web_web_scrape_screenshot_response.rbi +0 -332
- data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +0 -258
- data/rbi/context_dev/resources/ai.rbi +0 -63
- data/sig/context_dev/models/ai_extract_product_params.rbs +0 -106
- data/sig/context_dev/models/ai_extract_product_response.rbs +0 -314
- data/sig/context_dev/models/ai_extract_products_params.rbs +0 -202
- data/sig/context_dev/models/ai_extract_products_response.rbs +0 -293
- data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +0 -104
- data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +0 -413
- data/sig/context_dev/models/web_extract_fonts_params.rbs +0 -93
- data/sig/context_dev/models/web_extract_fonts_response.rbs +0 -230
- data/sig/context_dev/models/web_extract_params.rbs +0 -324
- data/sig/context_dev/models/web_extract_response.rbs +0 -239
- data/sig/context_dev/models/web_web_scrape_bytes_params.rbs +0 -531
- data/sig/context_dev/models/web_web_scrape_bytes_response.rbs +0 -108
- data/sig/context_dev/models/web_web_scrape_html_params.rbs +0 -878
- data/sig/context_dev/models/web_web_scrape_html_response.rbs +0 -525
- data/sig/context_dev/models/web_web_scrape_images_params.rbs +0 -281
- data/sig/context_dev/models/web_web_scrape_images_response.rbs +0 -371
- data/sig/context_dev/models/web_web_scrape_md_params.rbs +0 -758
- data/sig/context_dev/models/web_web_scrape_md_response.rbs +0 -465
- data/sig/context_dev/models/web_web_scrape_screenshot_params.rbs +0 -619
- data/sig/context_dev/models/web_web_scrape_screenshot_response.rbs +0 -127
- data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +0 -117
- 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
|