context.dev 2.16.0 → 2.17.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 (168) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/models/ai_extract_product_params.rb +53 -8
  5. data/lib/context_dev/models/ai_extract_product_response.rb +10 -1
  6. data/lib/context_dev/models/ai_extract_products_params.rb +116 -16
  7. data/lib/context_dev/models/ai_extract_products_response.rb +11 -1
  8. data/lib/context_dev/models/brand_retrieve_params.rb +355 -60
  9. data/lib/context_dev/models/brand_retrieve_response.rb +10 -1
  10. data/lib/context_dev/models/brand_retrieve_simplified_params.rb +57 -11
  11. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +10 -1
  12. data/lib/context_dev/models/industry_retrieve_naics_params.rb +53 -8
  13. data/lib/context_dev/models/industry_retrieve_naics_response.rb +10 -1
  14. data/lib/context_dev/models/industry_retrieve_sic_params.rb +53 -8
  15. data/lib/context_dev/models/industry_retrieve_sic_response.rb +10 -1
  16. data/lib/context_dev/models/monitor_create_params.rb +27 -3
  17. data/lib/context_dev/models/monitor_create_response.rb +30 -5
  18. data/lib/context_dev/models/monitor_list_response.rb +30 -5
  19. data/lib/context_dev/models/monitor_retrieve_response.rb +30 -5
  20. data/lib/context_dev/models/monitor_update_params.rb +27 -3
  21. data/lib/context_dev/models/monitor_update_response.rb +30 -5
  22. data/lib/context_dev/models/person_enrich_params.rb +53 -8
  23. data/lib/context_dev/models/person_enrich_response.rb +10 -1
  24. data/lib/context_dev/models/utility_prefetch_params.rb +48 -8
  25. data/lib/context_dev/models/web_answers_params.rb +124 -0
  26. data/lib/context_dev/models/web_answers_response.rb +68 -0
  27. data/lib/context_dev/models/web_extract_competitors_params.rb +53 -8
  28. data/lib/context_dev/models/web_extract_competitors_response.rb +10 -1
  29. data/lib/context_dev/models/web_extract_fonts_params.rb +58 -11
  30. data/lib/context_dev/models/web_extract_fonts_response.rb +32 -1
  31. data/lib/context_dev/models/web_extract_params.rb +53 -8
  32. data/lib/context_dev/models/web_extract_response.rb +10 -1
  33. data/lib/context_dev/models/web_extract_styleguide_params.rb +58 -11
  34. data/lib/context_dev/models/web_extract_styleguide_response.rb +32 -1
  35. data/lib/context_dev/models/web_screenshot_params.rb +58 -10
  36. data/lib/context_dev/models/web_screenshot_response.rb +32 -1
  37. data/lib/context_dev/models/web_search_params.rb +112 -16
  38. data/lib/context_dev/models/web_search_response.rb +43 -2
  39. data/lib/context_dev/models/web_web_crawl_md_params.rb +53 -8
  40. data/lib/context_dev/models/web_web_crawl_md_response.rb +11 -1
  41. data/lib/context_dev/models/web_web_scrape_bytes_params.rb +344 -0
  42. data/lib/context_dev/models/web_web_scrape_bytes_response.rb +135 -0
  43. data/lib/context_dev/models/web_web_scrape_html_params.rb +57 -10
  44. data/lib/context_dev/models/web_web_scrape_html_response.rb +32 -1
  45. data/lib/context_dev/models/web_web_scrape_images_params.rb +57 -10
  46. data/lib/context_dev/models/web_web_scrape_images_response.rb +42 -1
  47. data/lib/context_dev/models/web_web_scrape_md_params.rb +57 -10
  48. data/lib/context_dev/models/web_web_scrape_md_response.rb +32 -1
  49. data/lib/context_dev/models/web_web_scrape_sitemap_params.rb +53 -8
  50. data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +11 -1
  51. data/lib/context_dev/models.rb +4 -0
  52. data/lib/context_dev/resources/ai.rb +2 -2
  53. data/lib/context_dev/resources/brand.rb +3 -3
  54. data/lib/context_dev/resources/industry.rb +6 -6
  55. data/lib/context_dev/resources/people.rb +2 -2
  56. data/lib/context_dev/resources/utility.rb +2 -2
  57. data/lib/context_dev/resources/web.rb +119 -33
  58. data/lib/context_dev/version.rb +1 -1
  59. data/lib/context_dev.rb +4 -0
  60. data/rbi/context_dev/models/ai_extract_product_params.rbi +125 -13
  61. data/rbi/context_dev/models/ai_extract_product_response.rbi +13 -0
  62. data/rbi/context_dev/models/ai_extract_products_params.rbi +264 -26
  63. data/rbi/context_dev/models/ai_extract_products_response.rbi +15 -0
  64. data/rbi/context_dev/models/brand_retrieve_params.rbi +816 -102
  65. data/rbi/context_dev/models/brand_retrieve_response.rbi +13 -0
  66. data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +136 -19
  67. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +13 -0
  68. data/rbi/context_dev/models/industry_retrieve_naics_params.rbi +127 -13
  69. data/rbi/context_dev/models/industry_retrieve_naics_response.rbi +13 -0
  70. data/rbi/context_dev/models/industry_retrieve_sic_params.rbi +127 -13
  71. data/rbi/context_dev/models/industry_retrieve_sic_response.rbi +13 -0
  72. data/rbi/context_dev/models/monitor_create_params.rbi +40 -2
  73. data/rbi/context_dev/models/monitor_create_response.rbi +44 -4
  74. data/rbi/context_dev/models/monitor_list_response.rbi +44 -4
  75. data/rbi/context_dev/models/monitor_retrieve_response.rbi +44 -4
  76. data/rbi/context_dev/models/monitor_update_params.rbi +40 -2
  77. data/rbi/context_dev/models/monitor_update_response.rbi +44 -4
  78. data/rbi/context_dev/models/person_enrich_params.rbi +123 -13
  79. data/rbi/context_dev/models/person_enrich_response.rbi +16 -3
  80. data/rbi/context_dev/models/utility_prefetch_params.rbi +112 -13
  81. data/rbi/context_dev/models/web_answers_params.rbi +234 -0
  82. data/rbi/context_dev/models/web_answers_response.rbi +122 -0
  83. data/rbi/context_dev/models/web_extract_competitors_params.rbi +127 -13
  84. data/rbi/context_dev/models/web_extract_competitors_response.rbi +16 -3
  85. data/rbi/context_dev/models/web_extract_fonts_params.rbi +132 -19
  86. data/rbi/context_dev/models/web_extract_fonts_response.rbi +71 -0
  87. data/rbi/context_dev/models/web_extract_params.rbi +120 -13
  88. data/rbi/context_dev/models/web_extract_response.rbi +16 -3
  89. data/rbi/context_dev/models/web_extract_styleguide_params.rbi +136 -19
  90. data/rbi/context_dev/models/web_extract_styleguide_response.rbi +71 -0
  91. data/rbi/context_dev/models/web_screenshot_params.rbi +132 -17
  92. data/rbi/context_dev/models/web_screenshot_response.rbi +71 -0
  93. data/rbi/context_dev/models/web_search_params.rbi +253 -26
  94. data/rbi/context_dev/models/web_search_response.rbi +92 -6
  95. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +123 -13
  96. data/rbi/context_dev/models/web_web_crawl_md_response.rbi +19 -3
  97. data/rbi/context_dev/models/web_web_scrape_bytes_params.rbi +699 -0
  98. data/rbi/context_dev/models/web_web_scrape_bytes_response.rbi +238 -0
  99. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +132 -17
  100. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +61 -0
  101. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +134 -17
  102. data/rbi/context_dev/models/web_web_scrape_images_response.rbi +89 -3
  103. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +130 -17
  104. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +61 -0
  105. data/rbi/context_dev/models/web_web_scrape_sitemap_params.rbi +127 -13
  106. data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +18 -3
  107. data/rbi/context_dev/models.rbi +4 -0
  108. data/rbi/context_dev/resources/ai.rbi +5 -5
  109. data/rbi/context_dev/resources/brand.rbi +9 -8
  110. data/rbi/context_dev/resources/industry.rbi +12 -10
  111. data/rbi/context_dev/resources/people.rbi +5 -5
  112. data/rbi/context_dev/resources/utility.rbi +5 -5
  113. data/rbi/context_dev/resources/web.rbi +170 -72
  114. data/sig/context_dev/models/ai_extract_product_params.rbs +44 -5
  115. data/sig/context_dev/models/ai_extract_product_response.rbs +7 -0
  116. data/sig/context_dev/models/ai_extract_products_params.rbs +88 -10
  117. data/sig/context_dev/models/ai_extract_products_response.rbs +7 -0
  118. data/sig/context_dev/models/brand_retrieve_params.rbs +264 -30
  119. data/sig/context_dev/models/brand_retrieve_response.rbs +7 -0
  120. data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +44 -5
  121. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +7 -0
  122. data/sig/context_dev/models/industry_retrieve_naics_params.rbs +44 -5
  123. data/sig/context_dev/models/industry_retrieve_naics_response.rbs +7 -0
  124. data/sig/context_dev/models/industry_retrieve_sic_params.rbs +44 -5
  125. data/sig/context_dev/models/industry_retrieve_sic_response.rbs +7 -0
  126. data/sig/context_dev/models/monitor_create_params.rbs +14 -0
  127. data/sig/context_dev/models/monitor_create_response.rbs +14 -0
  128. data/sig/context_dev/models/monitor_list_response.rbs +14 -0
  129. data/sig/context_dev/models/monitor_retrieve_response.rbs +14 -0
  130. data/sig/context_dev/models/monitor_update_params.rbs +14 -0
  131. data/sig/context_dev/models/monitor_update_response.rbs +14 -0
  132. data/sig/context_dev/models/person_enrich_params.rbs +44 -5
  133. data/sig/context_dev/models/person_enrich_response.rbs +10 -3
  134. data/sig/context_dev/models/utility_prefetch_params.rbs +43 -5
  135. data/sig/context_dev/models/web_answers_params.rbs +106 -0
  136. data/sig/context_dev/models/web_answers_response.rbs +60 -0
  137. data/sig/context_dev/models/web_extract_competitors_params.rbs +44 -5
  138. data/sig/context_dev/models/web_extract_competitors_response.rbs +10 -3
  139. data/sig/context_dev/models/web_extract_fonts_params.rbs +44 -5
  140. data/sig/context_dev/models/web_extract_fonts_response.rbs +20 -0
  141. data/sig/context_dev/models/web_extract_params.rbs +44 -5
  142. data/sig/context_dev/models/web_extract_response.rbs +10 -3
  143. data/sig/context_dev/models/web_extract_styleguide_params.rbs +44 -5
  144. data/sig/context_dev/models/web_extract_styleguide_response.rbs +20 -0
  145. data/sig/context_dev/models/web_screenshot_params.rbs +44 -5
  146. data/sig/context_dev/models/web_screenshot_response.rbs +20 -0
  147. data/sig/context_dev/models/web_search_params.rbs +88 -10
  148. data/sig/context_dev/models/web_search_response.rbs +33 -6
  149. data/sig/context_dev/models/web_web_crawl_md_params.rbs +44 -5
  150. data/sig/context_dev/models/web_web_crawl_md_response.rbs +10 -3
  151. data/sig/context_dev/models/web_web_scrape_bytes_params.rbs +531 -0
  152. data/sig/context_dev/models/web_web_scrape_bytes_response.rbs +108 -0
  153. data/sig/context_dev/models/web_web_scrape_html_params.rbs +44 -5
  154. data/sig/context_dev/models/web_web_scrape_html_response.rbs +16 -0
  155. data/sig/context_dev/models/web_web_scrape_images_params.rbs +44 -5
  156. data/sig/context_dev/models/web_web_scrape_images_response.rbs +30 -3
  157. data/sig/context_dev/models/web_web_scrape_md_params.rbs +44 -5
  158. data/sig/context_dev/models/web_web_scrape_md_response.rbs +16 -0
  159. data/sig/context_dev/models/web_web_scrape_sitemap_params.rbs +44 -5
  160. data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +10 -3
  161. data/sig/context_dev/models.rbs +4 -0
  162. data/sig/context_dev/resources/ai.rbs +1 -1
  163. data/sig/context_dev/resources/brand.rbs +1 -1
  164. data/sig/context_dev/resources/industry.rbs +2 -2
  165. data/sig/context_dev/resources/people.rbs +1 -1
  166. data/sig/context_dev/resources/utility.rbs +1 -1
  167. data/sig/context_dev/resources/web.rbs +30 -11
  168. metadata +14 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f386d4f27c72c64c88946d5e8dbc98bb1cd4f5de22f6400219eb7996954c68df
4
- data.tar.gz: 062cb685ad8d8469e9e4f81e42d809533d98b0b68c009c57b285a77578023fdb
3
+ metadata.gz: 7ef06287736220b8406602722c6d4bff1c2301a6224c88308a687b5fe3a0c43b
4
+ data.tar.gz: dea8f15506d185c74514659325d1c30d7860b81a0d771b821429502b132096b9
5
5
  SHA512:
6
- metadata.gz: ec3879167f8c90f9c79ea728be1f927ff23c089ca6103255c7ea64294adfa117a616e9a83f72439a72ee710ca2fa0b66a8fa44e5eac649ceda206f04bb324cd4
7
- data.tar.gz: 2a2945c6da42e4ec238ecbb23dec1803bf65b2c857c864152e6919c66d35b981aa5b6696848d29b0d541e1810bec79ab19a7462a4ef6c58e70df5c4f9d355f42
6
+ metadata.gz: 7a1f4701bf53c53328c5271646e57e81cbd93e0f4f7d909a6d4a7cbc3d21087ebe8b77f2dcfe83b2b8186cf3cce5990cf944aa54b28f44392a6dc32fec078049
7
+ data.tar.gz: 7a6ff355e62a1cf5f37f70edc73d86f22d430253e82a0668f82c7162a48d804f20ed4d15e78b21d534e6f9523b1040f4a5135f56991b1bf82c8e74121b2734e2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.17.0](https://github.com/context-dot-dev/context-ruby-sdk/compare/v2.16.0...v2.17.0) (2026-09-15)
4
+
5
+
6
+ ### Features
7
+
8
+ * **answers:** add live web research with fast and ultra modes ([#954](https://github.com/context-dot-dev/context-ruby-sdk/issues/954)) ([838e943](https://github.com/context-dot-dev/context-ruby-sdk/commit/838e943b1fe34aeaf6f804ff534c22f62b4900fe))
9
+ * **api-keys:** enforce scoped API key permissions ([#1038](https://github.com/context-dot-dev/context-ruby-sdk/issues/1038)) ([7f87431](https://github.com/context-dot-dev/context-ruby-sdk/commit/7f874312c42b5c12020d71251f8bfc6eaa8ab2aa))
10
+ * **api:** unify timeout configuration and return partial results ([#1030](https://github.com/context-dot-dev/context-ruby-sdk/issues/1030)) ([7c0fa1f](https://github.com/context-dot-dev/context-ruby-sdk/commit/7c0fa1f308fc51885405c065aef2fd4ab8fe5725))
11
+ * **monitors:** add page selector filters ([#1037](https://github.com/context-dot-dev/context-ruby-sdk/issues/1037)) ([1f3a748](https://github.com/context-dot-dev/context-ruby-sdk/commit/1f3a74858133f69ea52c3a189f9ed8c80b80c0c6))
12
+ * **web:** add raw bytes scraping endpoint ([#1081](https://github.com/context-dot-dev/context-ruby-sdk/issues/1081)) ([e4b2347](https://github.com/context-dot-dev/context-ruby-sdk/commit/e4b23477deab52f1822eb2e3e2bbbca6b9cf9c07))
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * **api:** honour maxAgeMs=0 on brand retrieve, styleguide and fonts endpoints ([#998](https://github.com/context-dot-dev/context-ruby-sdk/issues/998)) ([78491ef](https://github.com/context-dot-dev/context-ruby-sdk/commit/78491ef8e43ab49074d011ce8c10e3cda5cb27db))
18
+ * **webhooks:** format Slack webhook notifications ([#1045](https://github.com/context-dot-dev/context-ruby-sdk/issues/1045)) ([4bd0df1](https://github.com/context-dot-dev/context-ruby-sdk/commit/4bd0df1c614713a46e366ca1320942fa777452fc))
19
+
3
20
  ## [2.16.0](https://github.com/context-dot-dev/context-ruby-sdk/compare/v2.15.0...v2.16.0) (2026-09-11)
4
21
 
5
22
 
data/README.md CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
17
17
  <!-- x-release-please-start-version -->
18
18
 
19
19
  ```ruby
20
- gem "context.dev", "~> 2.16.0"
20
+ gem "context.dev", "~> 2.17.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -27,15 +27,15 @@ module ContextDev
27
27
  # @return [Array<String>, nil]
28
28
  optional :tags, ContextDev::Internal::Type::ArrayOf[String]
29
29
 
30
- # @!attribute timeout_ms
31
- # Optional timeout in milliseconds for the request. If the request takes longer
32
- # than this value, it will be aborted with a 408 status code. Maximum allowed
33
- # value is 300000ms (5 minutes).
30
+ # @!attribute timeout_opts
31
+ # Optional request deadline and behavior on timeout. For GET requests, use
32
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
33
+ # timeoutOpts object.
34
34
  #
35
- # @return [Integer, nil]
36
- optional :timeout_ms, Integer, api_name: :timeoutMS
35
+ # @return [ContextDev::Models::AIExtractProductParams::TimeoutOpts, nil]
36
+ optional :timeout_opts, -> { ContextDev::AIExtractProductParams::TimeoutOpts }, api_name: :timeoutOpts
37
37
 
38
- # @!method initialize(url:, max_age_ms: nil, tags: nil, timeout_ms: nil, request_options: {})
38
+ # @!method initialize(url:, max_age_ms: nil, tags: nil, timeout_opts: nil, request_options: {})
39
39
  # Some parameter documentations has been truncated, see
40
40
  # {ContextDev::Models::AIExtractProductParams} for more details.
41
41
  #
@@ -45,9 +45,54 @@ module ContextDev
45
45
  #
46
46
  # @param tags [Array<String>] Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
47
47
  #
48
- # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
48
+ # @param timeout_opts [ContextDev::Models::AIExtractProductParams::TimeoutOpts] Optional request deadline and behavior on timeout. For GET requests, use timeout
49
49
  #
50
50
  # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}]
51
+
52
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
53
+ # @!attribute milliseconds
54
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
55
+ #
56
+ # @return [Integer]
57
+ required :milliseconds, Integer
58
+
59
+ # @!attribute behavior
60
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
61
+ # credits. "return-partial" returns usable results collected so far; if none are
62
+ # available, the request still fails without charging credits. Partial results are
63
+ # not cached as complete results.
64
+ #
65
+ # @return [Symbol, ContextDev::Models::AIExtractProductParams::TimeoutOpts::Behavior, nil]
66
+ optional :behavior, enum: -> { ContextDev::AIExtractProductParams::TimeoutOpts::Behavior }
67
+
68
+ # @!method initialize(milliseconds:, behavior: nil)
69
+ # Some parameter documentations has been truncated, see
70
+ # {ContextDev::Models::AIExtractProductParams::TimeoutOpts} for more details.
71
+ #
72
+ # Optional request deadline and behavior on timeout. For GET requests, use
73
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
74
+ # timeoutOpts object.
75
+ #
76
+ # @param milliseconds [Integer] Request deadline in milliseconds. Maximum: 300000 (5 minutes).
77
+ #
78
+ # @param behavior [Symbol, ContextDev::Models::AIExtractProductParams::TimeoutOpts::Behavior] What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
79
+
80
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
81
+ # credits. "return-partial" returns usable results collected so far; if none are
82
+ # available, the request still fails without charging credits. Partial results are
83
+ # not cached as complete results.
84
+ #
85
+ # @see ContextDev::Models::AIExtractProductParams::TimeoutOpts#behavior
86
+ module Behavior
87
+ extend ContextDev::Internal::Type::Enum
88
+
89
+ FAIL = :fail
90
+ RETURN_PARTIAL = :"return-partial"
91
+
92
+ # @!method self.values
93
+ # @return [Array<Symbol>]
94
+ end
95
+ end
51
96
  end
52
97
  end
53
98
  end
@@ -31,6 +31,13 @@ module ContextDev
31
31
  # @return [ContextDev::Models::AIExtractProductResponse::KeyMetadata, nil]
32
32
  optional :key_metadata, -> { ContextDev::Models::AIExtractProductResponse::KeyMetadata }
33
33
 
34
+ # @!attribute partial
35
+ # True when the timeout ended processing and this response contains only usable
36
+ # results completed so far. Unfinished results are omitted.
37
+ #
38
+ # @return [Boolean, nil]
39
+ optional :partial, ContextDev::Internal::Type::Boolean
40
+
34
41
  # @!attribute platform
35
42
  # The detected ecommerce platform, or null if not a product page
36
43
  #
@@ -43,7 +50,7 @@ module ContextDev
43
50
  # @return [ContextDev::Models::AIExtractProductResponse::Product, nil]
44
51
  optional :product, -> { ContextDev::Models::AIExtractProductResponse::Product }, nil?: true
45
52
 
46
- # @!method initialize(cache_metadata:, request_id:, is_product_page: nil, key_metadata: nil, platform: nil, product: nil)
53
+ # @!method initialize(cache_metadata:, request_id:, is_product_page: nil, key_metadata: nil, partial: nil, platform: nil, product: nil)
47
54
  # Some parameter documentations has been truncated, see
48
55
  # {ContextDev::Models::AIExtractProductResponse} for more details.
49
56
  #
@@ -55,6 +62,8 @@ module ContextDev
55
62
  #
56
63
  # @param key_metadata [ContextDev::Models::AIExtractProductResponse::KeyMetadata] Credit usage, included whenever a valid API key is provided.
57
64
  #
65
+ # @param partial [Boolean] True when the timeout ended processing and this response contains only usable re
66
+ #
58
67
  # @param platform [Symbol, ContextDev::Models::AIExtractProductResponse::Platform, nil] The detected ecommerce platform, or null if not a product page
59
68
  #
60
69
  # @param product [ContextDev::Models::AIExtractProductResponse::Product, nil] The extracted product data, or null if not a product page
@@ -50,15 +50,17 @@ module ContextDev
50
50
  # @return [Array<String>, nil]
51
51
  optional :tags, ContextDev::Internal::Type::ArrayOf[String]
52
52
 
53
- # @!attribute timeout_ms
54
- # Optional timeout in milliseconds for the request. If the request takes longer
55
- # than this value, it will be aborted with a 408 status code. Maximum allowed
56
- # value is 300000ms (5 minutes).
53
+ # @!attribute timeout_opts
54
+ # Optional request deadline and behavior on timeout. For GET requests, use
55
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
56
+ # timeoutOpts object.
57
57
  #
58
- # @return [Integer, nil]
59
- optional :timeout_ms, Integer, api_name: :timeoutMS
58
+ # @return [ContextDev::Models::AIExtractProductsParams::Body::ByDomain::TimeoutOpts, nil]
59
+ optional :timeout_opts,
60
+ -> { ContextDev::AIExtractProductsParams::Body::ByDomain::TimeoutOpts },
61
+ api_name: :timeoutOpts
60
62
 
61
- # @!method initialize(domain:, max_age_ms: nil, max_products: nil, tags: nil, timeout_ms: nil)
63
+ # @!method initialize(domain:, max_age_ms: nil, max_products: nil, tags: nil, timeout_opts: nil)
62
64
  # Some parameter documentations has been truncated, see
63
65
  # {ContextDev::Models::AIExtractProductsParams::Body::ByDomain} for more details.
64
66
  #
@@ -70,7 +72,55 @@ module ContextDev
70
72
  #
71
73
  # @param tags [Array<String>] Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
72
74
  #
73
- # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
75
+ # @param timeout_opts [ContextDev::Models::AIExtractProductsParams::Body::ByDomain::TimeoutOpts] Optional request deadline and behavior on timeout. For GET requests, use timeout
76
+
77
+ # @see ContextDev::Models::AIExtractProductsParams::Body::ByDomain#timeout_opts
78
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
79
+ # @!attribute milliseconds
80
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
81
+ #
82
+ # @return [Integer]
83
+ required :milliseconds, Integer
84
+
85
+ # @!attribute behavior
86
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
87
+ # credits. "return-partial" returns usable results collected so far; if none are
88
+ # available, the request still fails without charging credits. Partial results are
89
+ # not cached as complete results.
90
+ #
91
+ # @return [Symbol, ContextDev::Models::AIExtractProductsParams::Body::ByDomain::TimeoutOpts::Behavior, nil]
92
+ optional :behavior,
93
+ enum: -> { ContextDev::AIExtractProductsParams::Body::ByDomain::TimeoutOpts::Behavior }
94
+
95
+ # @!method initialize(milliseconds:, behavior: nil)
96
+ # Some parameter documentations has been truncated, see
97
+ # {ContextDev::Models::AIExtractProductsParams::Body::ByDomain::TimeoutOpts} for
98
+ # more details.
99
+ #
100
+ # Optional request deadline and behavior on timeout. For GET requests, use
101
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
102
+ # timeoutOpts object.
103
+ #
104
+ # @param milliseconds [Integer] Request deadline in milliseconds. Maximum: 300000 (5 minutes).
105
+ #
106
+ # @param behavior [Symbol, ContextDev::Models::AIExtractProductsParams::Body::ByDomain::TimeoutOpts::Behavior] What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
107
+
108
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
109
+ # credits. "return-partial" returns usable results collected so far; if none are
110
+ # available, the request still fails without charging credits. Partial results are
111
+ # not cached as complete results.
112
+ #
113
+ # @see ContextDev::Models::AIExtractProductsParams::Body::ByDomain::TimeoutOpts#behavior
114
+ module Behavior
115
+ extend ContextDev::Internal::Type::Enum
116
+
117
+ FAIL = :fail
118
+ RETURN_PARTIAL = :"return-partial"
119
+
120
+ # @!method self.values
121
+ # @return [Array<Symbol>]
122
+ end
123
+ end
74
124
  end
75
125
 
76
126
  class ByDirectURL < ContextDev::Internal::Type::BaseModel
@@ -101,15 +151,17 @@ module ContextDev
101
151
  # @return [Array<String>, nil]
102
152
  optional :tags, ContextDev::Internal::Type::ArrayOf[String]
103
153
 
104
- # @!attribute timeout_ms
105
- # Optional timeout in milliseconds for the request. If the request takes longer
106
- # than this value, it will be aborted with a 408 status code. Maximum allowed
107
- # value is 300000ms (5 minutes).
154
+ # @!attribute timeout_opts
155
+ # Optional request deadline and behavior on timeout. For GET requests, use
156
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
157
+ # timeoutOpts object.
108
158
  #
109
- # @return [Integer, nil]
110
- optional :timeout_ms, Integer, api_name: :timeoutMS
159
+ # @return [ContextDev::Models::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts, nil]
160
+ optional :timeout_opts,
161
+ -> { ContextDev::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts },
162
+ api_name: :timeoutOpts
111
163
 
112
- # @!method initialize(direct_url:, max_age_ms: nil, max_products: nil, tags: nil, timeout_ms: nil)
164
+ # @!method initialize(direct_url:, max_age_ms: nil, max_products: nil, tags: nil, timeout_opts: nil)
113
165
  # Some parameter documentations has been truncated, see
114
166
  # {ContextDev::Models::AIExtractProductsParams::Body::ByDirectURL} for more
115
167
  # details.
@@ -122,7 +174,55 @@ module ContextDev
122
174
  #
123
175
  # @param tags [Array<String>] Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
124
176
  #
125
- # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
177
+ # @param timeout_opts [ContextDev::Models::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts] Optional request deadline and behavior on timeout. For GET requests, use timeout
178
+
179
+ # @see ContextDev::Models::AIExtractProductsParams::Body::ByDirectURL#timeout_opts
180
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
181
+ # @!attribute milliseconds
182
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
183
+ #
184
+ # @return [Integer]
185
+ required :milliseconds, Integer
186
+
187
+ # @!attribute behavior
188
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
189
+ # credits. "return-partial" returns usable results collected so far; if none are
190
+ # available, the request still fails without charging credits. Partial results are
191
+ # not cached as complete results.
192
+ #
193
+ # @return [Symbol, ContextDev::Models::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts::Behavior, nil]
194
+ optional :behavior,
195
+ enum: -> { ContextDev::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts::Behavior }
196
+
197
+ # @!method initialize(milliseconds:, behavior: nil)
198
+ # Some parameter documentations has been truncated, see
199
+ # {ContextDev::Models::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts}
200
+ # for more details.
201
+ #
202
+ # Optional request deadline and behavior on timeout. For GET requests, use
203
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
204
+ # timeoutOpts object.
205
+ #
206
+ # @param milliseconds [Integer] Request deadline in milliseconds. Maximum: 300000 (5 minutes).
207
+ #
208
+ # @param behavior [Symbol, ContextDev::Models::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts::Behavior] What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
209
+
210
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
211
+ # credits. "return-partial" returns usable results collected so far; if none are
212
+ # available, the request still fails without charging credits. Partial results are
213
+ # not cached as complete results.
214
+ #
215
+ # @see ContextDev::Models::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts#behavior
216
+ module Behavior
217
+ extend ContextDev::Internal::Type::Enum
218
+
219
+ FAIL = :fail
220
+ RETURN_PARTIAL = :"return-partial"
221
+
222
+ # @!method self.values
223
+ # @return [Array<Symbol>]
224
+ end
225
+ end
126
226
  end
127
227
 
128
228
  # @!method self.variants
@@ -25,6 +25,14 @@ module ContextDev
25
25
  # @return [ContextDev::Models::AIExtractProductsResponse::KeyMetadata, nil]
26
26
  optional :key_metadata, -> { ContextDev::Models::AIExtractProductsResponse::KeyMetadata }
27
27
 
28
+ # @!attribute partial
29
+ # True when timeoutOpts.behavior=return-partial returned the usable results
30
+ # collected before the deadline. Partial collections are not cached as complete
31
+ # results.
32
+ #
33
+ # @return [Boolean, nil]
34
+ optional :partial, ContextDev::Internal::Type::Boolean
35
+
28
36
  # @!attribute products
29
37
  # Array of products extracted from the website
30
38
  #
@@ -32,7 +40,7 @@ module ContextDev
32
40
  optional :products,
33
41
  -> { ContextDev::Internal::Type::ArrayOf[ContextDev::Models::AIExtractProductsResponse::Product] }
34
42
 
35
- # @!method initialize(cache_metadata:, request_id:, key_metadata: nil, products: nil)
43
+ # @!method initialize(cache_metadata:, request_id:, key_metadata: nil, partial: nil, products: nil)
36
44
  # Some parameter documentations has been truncated, see
37
45
  # {ContextDev::Models::AIExtractProductsResponse} for more details.
38
46
  #
@@ -42,6 +50,8 @@ module ContextDev
42
50
  #
43
51
  # @param key_metadata [ContextDev::Models::AIExtractProductsResponse::KeyMetadata] Credit usage, included whenever a valid API key is provided.
44
52
  #
53
+ # @param partial [Boolean] True when timeoutOpts.behavior=return-partial returned the usable results collec
54
+ #
45
55
  # @param products [Array<ContextDev::Models::AIExtractProductsResponse::Product>] Array of products extracted from the website
46
56
 
47
57
  # @see ContextDev::Models::AIExtractProductsResponse#cache_metadata