context.dev 2.18.0 → 2.20.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 +220 -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 +1035 -0
- data/lib/context_dev/models/web_scrape_response.rb +974 -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 +118 -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 +2221 -0
- data/rbi/context_dev/models/web_scrape_response.rbi +1874 -0
- 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 +152 -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 +925 -0
- data/sig/context_dev/models/web_scrape_response.rbs +782 -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 +33 -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_html_response.rbi +0 -1287
- 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
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module ContextDev
|
|
4
|
-
module Models
|
|
5
|
-
# @see ContextDev::Resources::Web#web_scrape_sitemap
|
|
6
|
-
class WebWebScrapeSitemapResponse < ContextDev::Internal::Type::BaseModel
|
|
7
|
-
# @!attribute domain
|
|
8
|
-
# The normalized domain that was crawled
|
|
9
|
-
#
|
|
10
|
-
# @return [String]
|
|
11
|
-
required :domain, String
|
|
12
|
-
|
|
13
|
-
# @!attribute meta
|
|
14
|
-
# Metadata about the sitemap crawl operation
|
|
15
|
-
#
|
|
16
|
-
# @return [ContextDev::Models::WebWebScrapeSitemapResponse::Meta]
|
|
17
|
-
required :meta, -> { ContextDev::Models::WebWebScrapeSitemapResponse::Meta }
|
|
18
|
-
|
|
19
|
-
# @!attribute request_id
|
|
20
|
-
# Unique id of this API call, also sent in the X-Request-Id response header. Quote
|
|
21
|
-
# it when contacting support about a failed request.
|
|
22
|
-
#
|
|
23
|
-
# @return [String]
|
|
24
|
-
required :request_id, String
|
|
25
|
-
|
|
26
|
-
# @!attribute success
|
|
27
|
-
# Indicates success
|
|
28
|
-
#
|
|
29
|
-
# @return [Boolean, ContextDev::Models::WebWebScrapeSitemapResponse::Success]
|
|
30
|
-
required :success, enum: -> { ContextDev::Models::WebWebScrapeSitemapResponse::Success }
|
|
31
|
-
|
|
32
|
-
# @!attribute urls
|
|
33
|
-
# Discovered page URLs from the sitemap, up to `maxLinks`. When `search` is set
|
|
34
|
-
# these are only the matching pages, most relevant first.
|
|
35
|
-
#
|
|
36
|
-
# @return [Array<String>]
|
|
37
|
-
required :urls, ContextDev::Internal::Type::ArrayOf[String]
|
|
38
|
-
|
|
39
|
-
# @!attribute key_metadata
|
|
40
|
-
# Credit usage, included whenever a valid API key is provided.
|
|
41
|
-
#
|
|
42
|
-
# @return [ContextDev::Models::WebWebScrapeSitemapResponse::KeyMetadata, nil]
|
|
43
|
-
optional :key_metadata, -> { ContextDev::Models::WebWebScrapeSitemapResponse::KeyMetadata }
|
|
44
|
-
|
|
45
|
-
# @!attribute partial
|
|
46
|
-
# True when timeoutOpts.behavior=return-partial returned the usable results
|
|
47
|
-
# collected before the deadline. Partial collections are not cached as complete
|
|
48
|
-
# results.
|
|
49
|
-
#
|
|
50
|
-
# @return [Boolean, nil]
|
|
51
|
-
optional :partial, ContextDev::Internal::Type::Boolean
|
|
52
|
-
|
|
53
|
-
# @!method initialize(domain:, meta:, request_id:, success:, urls:, key_metadata: nil, partial: nil)
|
|
54
|
-
# Some parameter documentations has been truncated, see
|
|
55
|
-
# {ContextDev::Models::WebWebScrapeSitemapResponse} for more details.
|
|
56
|
-
#
|
|
57
|
-
# @param domain [String] The normalized domain that was crawled
|
|
58
|
-
#
|
|
59
|
-
# @param meta [ContextDev::Models::WebWebScrapeSitemapResponse::Meta] Metadata about the sitemap crawl operation
|
|
60
|
-
#
|
|
61
|
-
# @param request_id [String] Unique id of this API call, also sent in the X-Request-Id response header. Quote
|
|
62
|
-
#
|
|
63
|
-
# @param success [Boolean, ContextDev::Models::WebWebScrapeSitemapResponse::Success] Indicates success
|
|
64
|
-
#
|
|
65
|
-
# @param urls [Array<String>] Discovered page URLs from the sitemap, up to `maxLinks`. When `search` is set th
|
|
66
|
-
#
|
|
67
|
-
# @param key_metadata [ContextDev::Models::WebWebScrapeSitemapResponse::KeyMetadata] Credit usage, included whenever a valid API key is provided.
|
|
68
|
-
#
|
|
69
|
-
# @param partial [Boolean] True when timeoutOpts.behavior=return-partial returned the usable results collec
|
|
70
|
-
|
|
71
|
-
# @see ContextDev::Models::WebWebScrapeSitemapResponse#meta
|
|
72
|
-
class Meta < ContextDev::Internal::Type::BaseModel
|
|
73
|
-
# @!attribute errors
|
|
74
|
-
# Number of errors encountered during crawling
|
|
75
|
-
#
|
|
76
|
-
# @return [Integer]
|
|
77
|
-
required :errors, Integer
|
|
78
|
-
|
|
79
|
-
# @!attribute sitemaps_discovered
|
|
80
|
-
# Total number of sitemap files discovered
|
|
81
|
-
#
|
|
82
|
-
# @return [Integer]
|
|
83
|
-
required :sitemaps_discovered, Integer, api_name: :sitemapsDiscovered
|
|
84
|
-
|
|
85
|
-
# @!attribute sitemaps_fetched
|
|
86
|
-
# Number of sitemap files successfully fetched and parsed
|
|
87
|
-
#
|
|
88
|
-
# @return [Integer]
|
|
89
|
-
required :sitemaps_fetched, Integer, api_name: :sitemapsFetched
|
|
90
|
-
|
|
91
|
-
# @!attribute sitemaps_skipped
|
|
92
|
-
# Number of sitemap files skipped (due to errors, timeouts, or limits)
|
|
93
|
-
#
|
|
94
|
-
# @return [Integer]
|
|
95
|
-
required :sitemaps_skipped, Integer, api_name: :sitemapsSkipped
|
|
96
|
-
|
|
97
|
-
# @!method initialize(errors:, sitemaps_discovered:, sitemaps_fetched:, sitemaps_skipped:)
|
|
98
|
-
# Metadata about the sitemap crawl operation
|
|
99
|
-
#
|
|
100
|
-
# @param errors [Integer] Number of errors encountered during crawling
|
|
101
|
-
#
|
|
102
|
-
# @param sitemaps_discovered [Integer] Total number of sitemap files discovered
|
|
103
|
-
#
|
|
104
|
-
# @param sitemaps_fetched [Integer] Number of sitemap files successfully fetched and parsed
|
|
105
|
-
#
|
|
106
|
-
# @param sitemaps_skipped [Integer] Number of sitemap files skipped (due to errors, timeouts, or limits)
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
# Indicates success
|
|
110
|
-
#
|
|
111
|
-
# @see ContextDev::Models::WebWebScrapeSitemapResponse#success
|
|
112
|
-
module Success
|
|
113
|
-
extend ContextDev::Internal::Type::Enum
|
|
114
|
-
|
|
115
|
-
TRUE = true
|
|
116
|
-
|
|
117
|
-
# @!method self.values
|
|
118
|
-
# @return [Array<Boolean>]
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
# @see ContextDev::Models::WebWebScrapeSitemapResponse#key_metadata
|
|
122
|
-
class KeyMetadata < ContextDev::Internal::Type::BaseModel
|
|
123
|
-
# @!attribute credits_consumed
|
|
124
|
-
# Credits used by this request.
|
|
125
|
-
#
|
|
126
|
-
# @return [Integer]
|
|
127
|
-
required :credits_consumed, Integer
|
|
128
|
-
|
|
129
|
-
# @!attribute credits_remaining
|
|
130
|
-
# Credits remaining for your organization.
|
|
131
|
-
#
|
|
132
|
-
# @return [Integer]
|
|
133
|
-
required :credits_remaining, Integer
|
|
134
|
-
|
|
135
|
-
# @!method initialize(credits_consumed:, credits_remaining:)
|
|
136
|
-
# Credit usage, included whenever a valid API key is provided.
|
|
137
|
-
#
|
|
138
|
-
# @param credits_consumed [Integer] Credits used by this request.
|
|
139
|
-
#
|
|
140
|
-
# @param credits_remaining [Integer] Credits remaining for your organization.
|
|
141
|
-
end
|
|
142
|
-
end
|
|
143
|
-
end
|
|
144
|
-
end
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module ContextDev
|
|
4
|
-
module Resources
|
|
5
|
-
class AI
|
|
6
|
-
# Some parameter documentations has been truncated, see
|
|
7
|
-
# {ContextDev::Models::AIExtractProductParams} for more details.
|
|
8
|
-
#
|
|
9
|
-
# Given a single URL, determines if it is a product page and extracts the product
|
|
10
|
-
# information.
|
|
11
|
-
#
|
|
12
|
-
# @overload extract_product(url:, max_age_ms: nil, tags: nil, timeout_opts: nil, zdr: nil, request_options: {})
|
|
13
|
-
#
|
|
14
|
-
# @param url [String] The product page URL to extract product data from.
|
|
15
|
-
#
|
|
16
|
-
# @param max_age_ms [Integer] Return a cached result if a prior scrape for the same parameters exists and is y
|
|
17
|
-
#
|
|
18
|
-
# @param tags [Array<String>] Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
|
|
19
|
-
#
|
|
20
|
-
# @param timeout_opts [ContextDev::Models::AIExtractProductParams::TimeoutOpts] Optional request deadline and behavior on timeout. For GET requests, use timeout
|
|
21
|
-
#
|
|
22
|
-
# @param zdr [Symbol, ContextDev::Models::AIExtractProductParams::Zdr] Set to enabled to bypass shared caches and omit request and response content fro
|
|
23
|
-
#
|
|
24
|
-
# @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
25
|
-
#
|
|
26
|
-
# @return [ContextDev::Models::AIExtractProductResponse]
|
|
27
|
-
#
|
|
28
|
-
# @see ContextDev::Models::AIExtractProductParams
|
|
29
|
-
def extract_product(params)
|
|
30
|
-
parsed, options = ContextDev::AIExtractProductParams.dump_request(params)
|
|
31
|
-
@client.request(
|
|
32
|
-
method: :post,
|
|
33
|
-
path: "brand/ai/product",
|
|
34
|
-
body: parsed,
|
|
35
|
-
model: ContextDev::Models::AIExtractProductResponse,
|
|
36
|
-
options: options
|
|
37
|
-
)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# Extract product information from a brand's website. We will analyze the website
|
|
41
|
-
# and return a list of products with details such as name, description, image,
|
|
42
|
-
# pricing, features, and more.
|
|
43
|
-
#
|
|
44
|
-
# @overload extract_products(body:, request_options: {})
|
|
45
|
-
#
|
|
46
|
-
# @param body [ContextDev::Models::AIExtractProductsParams::Body::ByDomain, ContextDev::Models::AIExtractProductsParams::Body::ByDirectURL]
|
|
47
|
-
# @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
48
|
-
#
|
|
49
|
-
# @return [ContextDev::Models::AIExtractProductsResponse]
|
|
50
|
-
#
|
|
51
|
-
# @see ContextDev::Models::AIExtractProductsParams
|
|
52
|
-
def extract_products(params)
|
|
53
|
-
parsed, options = ContextDev::AIExtractProductsParams.dump_request(params)
|
|
54
|
-
@client.request(
|
|
55
|
-
method: :post,
|
|
56
|
-
path: "brand/ai/products",
|
|
57
|
-
body: parsed[:body],
|
|
58
|
-
model: ContextDev::Models::AIExtractProductsResponse,
|
|
59
|
-
options: options
|
|
60
|
-
)
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
# @api private
|
|
64
|
-
#
|
|
65
|
-
# @param client [ContextDev::Client]
|
|
66
|
-
def initialize(client:)
|
|
67
|
-
@client = client
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
end
|
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
# typed: strong
|
|
2
|
-
|
|
3
|
-
module ContextDev
|
|
4
|
-
module Models
|
|
5
|
-
class AIExtractProductParams < ContextDev::Internal::Type::BaseModel
|
|
6
|
-
extend ContextDev::Internal::Type::RequestParameters::Converter
|
|
7
|
-
include ContextDev::Internal::Type::RequestParameters
|
|
8
|
-
|
|
9
|
-
OrHash =
|
|
10
|
-
T.type_alias do
|
|
11
|
-
T.any(
|
|
12
|
-
ContextDev::AIExtractProductParams,
|
|
13
|
-
ContextDev::Internal::AnyHash
|
|
14
|
-
)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
# The product page URL to extract product data from.
|
|
18
|
-
sig { returns(String) }
|
|
19
|
-
attr_accessor :url
|
|
20
|
-
|
|
21
|
-
# Return a cached result if a prior scrape for the same parameters exists and is
|
|
22
|
-
# younger than this many milliseconds. Defaults to 7 days (604800000 ms) when
|
|
23
|
-
# omitted. Max is 30 days (2592000000 ms). Set to 0 to always scrape fresh.
|
|
24
|
-
sig { returns(T.nilable(Integer)) }
|
|
25
|
-
attr_reader :max_age_ms
|
|
26
|
-
|
|
27
|
-
sig { params(max_age_ms: Integer).void }
|
|
28
|
-
attr_writer :max_age_ms
|
|
29
|
-
|
|
30
|
-
# Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
|
|
31
|
-
sig { returns(T.nilable(T::Array[String])) }
|
|
32
|
-
attr_reader :tags
|
|
33
|
-
|
|
34
|
-
sig { params(tags: T::Array[String]).void }
|
|
35
|
-
attr_writer :tags
|
|
36
|
-
|
|
37
|
-
# Optional request deadline and behavior on timeout. For GET requests, use
|
|
38
|
-
# timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
|
|
39
|
-
# timeoutOpts object.
|
|
40
|
-
sig do
|
|
41
|
-
returns(T.nilable(ContextDev::AIExtractProductParams::TimeoutOpts))
|
|
42
|
-
end
|
|
43
|
-
attr_reader :timeout_opts
|
|
44
|
-
|
|
45
|
-
sig do
|
|
46
|
-
params(
|
|
47
|
-
timeout_opts: ContextDev::AIExtractProductParams::TimeoutOpts::OrHash
|
|
48
|
-
).void
|
|
49
|
-
end
|
|
50
|
-
attr_writer :timeout_opts
|
|
51
|
-
|
|
52
|
-
# Set to enabled to bypass shared caches and omit request and response content
|
|
53
|
-
# from retained usage logs. Asset uploads are skipped, so hosted image URLs are
|
|
54
|
-
# omitted. Requires zero data retention to be enabled for your organization
|
|
55
|
-
# (contact support@context.dev), otherwise the request fails with ZDR_NOT_ENABLED.
|
|
56
|
-
# Successful ZDR responses include X-Context-ZDR: true.
|
|
57
|
-
sig do
|
|
58
|
-
returns(T.nilable(ContextDev::AIExtractProductParams::Zdr::OrSymbol))
|
|
59
|
-
end
|
|
60
|
-
attr_reader :zdr
|
|
61
|
-
|
|
62
|
-
sig do
|
|
63
|
-
params(zdr: ContextDev::AIExtractProductParams::Zdr::OrSymbol).void
|
|
64
|
-
end
|
|
65
|
-
attr_writer :zdr
|
|
66
|
-
|
|
67
|
-
sig do
|
|
68
|
-
params(
|
|
69
|
-
url: String,
|
|
70
|
-
max_age_ms: Integer,
|
|
71
|
-
tags: T::Array[String],
|
|
72
|
-
timeout_opts: ContextDev::AIExtractProductParams::TimeoutOpts::OrHash,
|
|
73
|
-
zdr: ContextDev::AIExtractProductParams::Zdr::OrSymbol,
|
|
74
|
-
request_options: ContextDev::RequestOptions::OrHash
|
|
75
|
-
).returns(T.attached_class)
|
|
76
|
-
end
|
|
77
|
-
def self.new(
|
|
78
|
-
# The product page URL to extract product data from.
|
|
79
|
-
url:,
|
|
80
|
-
# Return a cached result if a prior scrape for the same parameters exists and is
|
|
81
|
-
# younger than this many milliseconds. Defaults to 7 days (604800000 ms) when
|
|
82
|
-
# omitted. Max is 30 days (2592000000 ms). Set to 0 to always scrape fresh.
|
|
83
|
-
max_age_ms: nil,
|
|
84
|
-
# Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
|
|
85
|
-
tags: nil,
|
|
86
|
-
# Optional request deadline and behavior on timeout. For GET requests, use
|
|
87
|
-
# timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
|
|
88
|
-
# timeoutOpts object.
|
|
89
|
-
timeout_opts: nil,
|
|
90
|
-
# Set to enabled to bypass shared caches and omit request and response content
|
|
91
|
-
# from retained usage logs. Asset uploads are skipped, so hosted image URLs are
|
|
92
|
-
# omitted. Requires zero data retention to be enabled for your organization
|
|
93
|
-
# (contact support@context.dev), otherwise the request fails with ZDR_NOT_ENABLED.
|
|
94
|
-
# Successful ZDR responses include X-Context-ZDR: true.
|
|
95
|
-
zdr: nil,
|
|
96
|
-
request_options: {}
|
|
97
|
-
)
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
sig do
|
|
101
|
-
override.returns(
|
|
102
|
-
{
|
|
103
|
-
url: String,
|
|
104
|
-
max_age_ms: Integer,
|
|
105
|
-
tags: T::Array[String],
|
|
106
|
-
timeout_opts: ContextDev::AIExtractProductParams::TimeoutOpts,
|
|
107
|
-
zdr: ContextDev::AIExtractProductParams::Zdr::OrSymbol,
|
|
108
|
-
request_options: ContextDev::RequestOptions
|
|
109
|
-
}
|
|
110
|
-
)
|
|
111
|
-
end
|
|
112
|
-
def to_hash
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
class TimeoutOpts < ContextDev::Internal::Type::BaseModel
|
|
116
|
-
OrHash =
|
|
117
|
-
T.type_alias do
|
|
118
|
-
T.any(
|
|
119
|
-
ContextDev::AIExtractProductParams::TimeoutOpts,
|
|
120
|
-
ContextDev::Internal::AnyHash
|
|
121
|
-
)
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
# Request deadline in milliseconds. Maximum: 300000 (5 minutes).
|
|
125
|
-
sig { returns(Integer) }
|
|
126
|
-
attr_accessor :milliseconds
|
|
127
|
-
|
|
128
|
-
# What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
|
|
129
|
-
# credits. "return-partial" returns usable results collected so far; if none are
|
|
130
|
-
# available, the request still fails without charging credits. Partial results are
|
|
131
|
-
# not cached as complete results.
|
|
132
|
-
sig do
|
|
133
|
-
returns(
|
|
134
|
-
T.nilable(
|
|
135
|
-
ContextDev::AIExtractProductParams::TimeoutOpts::Behavior::OrSymbol
|
|
136
|
-
)
|
|
137
|
-
)
|
|
138
|
-
end
|
|
139
|
-
attr_reader :behavior
|
|
140
|
-
|
|
141
|
-
sig do
|
|
142
|
-
params(
|
|
143
|
-
behavior:
|
|
144
|
-
ContextDev::AIExtractProductParams::TimeoutOpts::Behavior::OrSymbol
|
|
145
|
-
).void
|
|
146
|
-
end
|
|
147
|
-
attr_writer :behavior
|
|
148
|
-
|
|
149
|
-
# Optional request deadline and behavior on timeout. For GET requests, use
|
|
150
|
-
# timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
|
|
151
|
-
# timeoutOpts object.
|
|
152
|
-
sig do
|
|
153
|
-
params(
|
|
154
|
-
milliseconds: Integer,
|
|
155
|
-
behavior:
|
|
156
|
-
ContextDev::AIExtractProductParams::TimeoutOpts::Behavior::OrSymbol
|
|
157
|
-
).returns(T.attached_class)
|
|
158
|
-
end
|
|
159
|
-
def self.new(
|
|
160
|
-
# Request deadline in milliseconds. Maximum: 300000 (5 minutes).
|
|
161
|
-
milliseconds:,
|
|
162
|
-
# What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
|
|
163
|
-
# credits. "return-partial" returns usable results collected so far; if none are
|
|
164
|
-
# available, the request still fails without charging credits. Partial results are
|
|
165
|
-
# not cached as complete results.
|
|
166
|
-
behavior: nil
|
|
167
|
-
)
|
|
168
|
-
end
|
|
169
|
-
|
|
170
|
-
sig do
|
|
171
|
-
override.returns(
|
|
172
|
-
{
|
|
173
|
-
milliseconds: Integer,
|
|
174
|
-
behavior:
|
|
175
|
-
ContextDev::AIExtractProductParams::TimeoutOpts::Behavior::OrSymbol
|
|
176
|
-
}
|
|
177
|
-
)
|
|
178
|
-
end
|
|
179
|
-
def to_hash
|
|
180
|
-
end
|
|
181
|
-
|
|
182
|
-
# What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
|
|
183
|
-
# credits. "return-partial" returns usable results collected so far; if none are
|
|
184
|
-
# available, the request still fails without charging credits. Partial results are
|
|
185
|
-
# not cached as complete results.
|
|
186
|
-
module Behavior
|
|
187
|
-
extend ContextDev::Internal::Type::Enum
|
|
188
|
-
|
|
189
|
-
TaggedSymbol =
|
|
190
|
-
T.type_alias do
|
|
191
|
-
T.all(
|
|
192
|
-
Symbol,
|
|
193
|
-
ContextDev::AIExtractProductParams::TimeoutOpts::Behavior
|
|
194
|
-
)
|
|
195
|
-
end
|
|
196
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
197
|
-
|
|
198
|
-
FAIL =
|
|
199
|
-
T.let(
|
|
200
|
-
:fail,
|
|
201
|
-
ContextDev::AIExtractProductParams::TimeoutOpts::Behavior::TaggedSymbol
|
|
202
|
-
)
|
|
203
|
-
RETURN_PARTIAL =
|
|
204
|
-
T.let(
|
|
205
|
-
:"return-partial",
|
|
206
|
-
ContextDev::AIExtractProductParams::TimeoutOpts::Behavior::TaggedSymbol
|
|
207
|
-
)
|
|
208
|
-
|
|
209
|
-
sig do
|
|
210
|
-
override.returns(
|
|
211
|
-
T::Array[
|
|
212
|
-
ContextDev::AIExtractProductParams::TimeoutOpts::Behavior::TaggedSymbol
|
|
213
|
-
]
|
|
214
|
-
)
|
|
215
|
-
end
|
|
216
|
-
def self.values
|
|
217
|
-
end
|
|
218
|
-
end
|
|
219
|
-
end
|
|
220
|
-
|
|
221
|
-
# Set to enabled to bypass shared caches and omit request and response content
|
|
222
|
-
# from retained usage logs. Asset uploads are skipped, so hosted image URLs are
|
|
223
|
-
# omitted. Requires zero data retention to be enabled for your organization
|
|
224
|
-
# (contact support@context.dev), otherwise the request fails with ZDR_NOT_ENABLED.
|
|
225
|
-
# Successful ZDR responses include X-Context-ZDR: true.
|
|
226
|
-
module Zdr
|
|
227
|
-
extend ContextDev::Internal::Type::Enum
|
|
228
|
-
|
|
229
|
-
TaggedSymbol =
|
|
230
|
-
T.type_alias do
|
|
231
|
-
T.all(Symbol, ContextDev::AIExtractProductParams::Zdr)
|
|
232
|
-
end
|
|
233
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
234
|
-
|
|
235
|
-
ENABLED =
|
|
236
|
-
T.let(:enabled, ContextDev::AIExtractProductParams::Zdr::TaggedSymbol)
|
|
237
|
-
DISABLED =
|
|
238
|
-
T.let(
|
|
239
|
-
:disabled,
|
|
240
|
-
ContextDev::AIExtractProductParams::Zdr::TaggedSymbol
|
|
241
|
-
)
|
|
242
|
-
|
|
243
|
-
sig do
|
|
244
|
-
override.returns(
|
|
245
|
-
T::Array[ContextDev::AIExtractProductParams::Zdr::TaggedSymbol]
|
|
246
|
-
)
|
|
247
|
-
end
|
|
248
|
-
def self.values
|
|
249
|
-
end
|
|
250
|
-
end
|
|
251
|
-
end
|
|
252
|
-
end
|
|
253
|
-
end
|