context.dev 2.15.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 (229) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +2 -2
  4. data/lib/context_dev/client.rb +6 -0
  5. data/lib/context_dev/internal/type/base_model.rb +2 -2
  6. data/lib/context_dev/models/ai_extract_product_params.rb +53 -8
  7. data/lib/context_dev/models/ai_extract_product_response.rb +19 -1
  8. data/lib/context_dev/models/ai_extract_products_params.rb +116 -16
  9. data/lib/context_dev/models/ai_extract_products_response.rb +20 -1
  10. data/lib/context_dev/models/batch_cancel_response.rb +10 -1
  11. data/lib/context_dev/models/batch_delete_response.rb +13 -1
  12. data/lib/context_dev/models/batch_get_results_response.rb +13 -1
  13. data/lib/context_dev/models/batch_list_response.rb +13 -1
  14. data/lib/context_dev/models/batch_retrieve_response.rb +10 -1
  15. data/lib/context_dev/models/batch_submit_response.rb +10 -1
  16. data/lib/context_dev/models/brand_retrieve_params.rb +355 -60
  17. data/lib/context_dev/models/brand_retrieve_response.rb +19 -1
  18. data/lib/context_dev/models/brand_retrieve_simplified_params.rb +57 -11
  19. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +19 -1
  20. data/lib/context_dev/models/brand_search_response.rb +10 -1
  21. data/lib/context_dev/models/industry_retrieve_naics_params.rb +53 -8
  22. data/lib/context_dev/models/industry_retrieve_naics_response.rb +22 -1
  23. data/lib/context_dev/models/industry_retrieve_sic_params.rb +53 -8
  24. data/lib/context_dev/models/industry_retrieve_sic_response.rb +19 -1
  25. data/lib/context_dev/models/log_list_params.rb +108 -0
  26. data/lib/context_dev/models/log_list_response.rb +174 -0
  27. data/lib/context_dev/models/log_retrieve_params.rb +22 -0
  28. data/lib/context_dev/models/log_retrieve_response.rb +226 -0
  29. data/lib/context_dev/models/monitor_create_params.rb +27 -3
  30. data/lib/context_dev/models/monitor_create_response.rb +30 -5
  31. data/lib/context_dev/models/monitor_list_response.rb +30 -5
  32. data/lib/context_dev/models/monitor_retrieve_response.rb +30 -5
  33. data/lib/context_dev/models/monitor_update_params.rb +27 -3
  34. data/lib/context_dev/models/monitor_update_response.rb +30 -5
  35. data/lib/context_dev/models/news_search_response.rb +10 -1
  36. data/lib/context_dev/models/parse_handle_response.rb +13 -1
  37. data/lib/context_dev/models/person_enrich_params.rb +53 -8
  38. data/lib/context_dev/models/person_enrich_response.rb +22 -1
  39. data/lib/context_dev/models/utility_prefetch_params.rb +48 -8
  40. data/lib/context_dev/models/utility_prefetch_response.rb +13 -1
  41. data/lib/context_dev/models/web_answers_params.rb +124 -0
  42. data/lib/context_dev/models/web_answers_response.rb +68 -0
  43. data/lib/context_dev/models/web_extract_competitors_params.rb +53 -8
  44. data/lib/context_dev/models/web_extract_competitors_response.rb +22 -1
  45. data/lib/context_dev/models/web_extract_fonts_params.rb +58 -11
  46. data/lib/context_dev/models/web_extract_fonts_response.rb +41 -1
  47. data/lib/context_dev/models/web_extract_params.rb +53 -8
  48. data/lib/context_dev/models/web_extract_response.rb +19 -1
  49. data/lib/context_dev/models/web_extract_styleguide_params.rb +58 -11
  50. data/lib/context_dev/models/web_extract_styleguide_response.rb +41 -1
  51. data/lib/context_dev/models/web_screenshot_params.rb +58 -9
  52. data/lib/context_dev/models/web_screenshot_response.rb +41 -1
  53. data/lib/context_dev/models/web_search_params.rb +112 -16
  54. data/lib/context_dev/models/web_search_response.rb +52 -2
  55. data/lib/context_dev/models/web_web_crawl_md_params.rb +53 -8
  56. data/lib/context_dev/models/web_web_crawl_md_response.rb +20 -1
  57. data/lib/context_dev/models/web_web_scrape_bytes_params.rb +344 -0
  58. data/lib/context_dev/models/web_web_scrape_bytes_response.rb +135 -0
  59. data/lib/context_dev/models/web_web_scrape_html_params.rb +58 -9
  60. data/lib/context_dev/models/web_web_scrape_html_response.rb +41 -1
  61. data/lib/context_dev/models/web_web_scrape_images_params.rb +58 -9
  62. data/lib/context_dev/models/web_web_scrape_images_response.rb +51 -1
  63. data/lib/context_dev/models/web_web_scrape_md_params.rb +58 -9
  64. data/lib/context_dev/models/web_web_scrape_md_response.rb +41 -1
  65. data/lib/context_dev/models/web_web_scrape_sitemap_params.rb +53 -8
  66. data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +20 -1
  67. data/lib/context_dev/models/webhooks/delivery_list_attempts_response.rb +13 -1
  68. data/lib/context_dev/models/webhooks/delivery_list_response.rb +13 -1
  69. data/lib/context_dev/models/webhooks/delivery_retrieve_response.rb +13 -1
  70. data/lib/context_dev/models/webhooks/delivery_retry_response.rb +13 -1
  71. data/lib/context_dev/models.rb +8 -0
  72. data/lib/context_dev/resources/ai.rb +2 -2
  73. data/lib/context_dev/resources/brand.rb +3 -3
  74. data/lib/context_dev/resources/industry.rb +6 -6
  75. data/lib/context_dev/resources/logs.rb +83 -0
  76. data/lib/context_dev/resources/people.rb +2 -2
  77. data/lib/context_dev/resources/utility.rb +2 -2
  78. data/lib/context_dev/resources/web.rb +119 -33
  79. data/lib/context_dev/version.rb +1 -1
  80. data/lib/context_dev.rb +9 -0
  81. data/rbi/context_dev/client.rbi +5 -0
  82. data/rbi/context_dev/models/ai_extract_product_params.rbi +125 -13
  83. data/rbi/context_dev/models/ai_extract_product_response.rbi +23 -0
  84. data/rbi/context_dev/models/ai_extract_products_params.rbi +264 -26
  85. data/rbi/context_dev/models/ai_extract_products_response.rbi +25 -0
  86. data/rbi/context_dev/models/batch_cancel_response.rbi +10 -0
  87. data/rbi/context_dev/models/batch_delete_response.rbi +10 -0
  88. data/rbi/context_dev/models/batch_get_results_response.rbi +10 -0
  89. data/rbi/context_dev/models/batch_list_response.rbi +10 -0
  90. data/rbi/context_dev/models/batch_retrieve_response.rbi +10 -0
  91. data/rbi/context_dev/models/batch_submit_response.rbi +10 -0
  92. data/rbi/context_dev/models/brand_retrieve_params.rbi +816 -102
  93. data/rbi/context_dev/models/brand_retrieve_response.rbi +23 -0
  94. data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +136 -19
  95. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +23 -0
  96. data/rbi/context_dev/models/brand_search_response.rbi +10 -0
  97. data/rbi/context_dev/models/industry_retrieve_naics_params.rbi +127 -13
  98. data/rbi/context_dev/models/industry_retrieve_naics_response.rbi +23 -0
  99. data/rbi/context_dev/models/industry_retrieve_sic_params.rbi +127 -13
  100. data/rbi/context_dev/models/industry_retrieve_sic_response.rbi +23 -0
  101. data/rbi/context_dev/models/log_list_params.rbi +162 -0
  102. data/rbi/context_dev/models/log_list_response.rbi +246 -0
  103. data/rbi/context_dev/models/log_retrieve_params.rbi +40 -0
  104. data/rbi/context_dev/models/log_retrieve_response.rbi +370 -0
  105. data/rbi/context_dev/models/monitor_create_params.rbi +40 -2
  106. data/rbi/context_dev/models/monitor_create_response.rbi +44 -4
  107. data/rbi/context_dev/models/monitor_list_response.rbi +44 -4
  108. data/rbi/context_dev/models/monitor_retrieve_response.rbi +44 -4
  109. data/rbi/context_dev/models/monitor_update_params.rbi +40 -2
  110. data/rbi/context_dev/models/monitor_update_response.rbi +44 -4
  111. data/rbi/context_dev/models/news_search_response.rbi +10 -0
  112. data/rbi/context_dev/models/parse_handle_response.rbi +10 -0
  113. data/rbi/context_dev/models/person_enrich_params.rbi +123 -13
  114. data/rbi/context_dev/models/person_enrich_response.rbi +26 -3
  115. data/rbi/context_dev/models/utility_prefetch_params.rbi +112 -13
  116. data/rbi/context_dev/models/utility_prefetch_response.rbi +10 -0
  117. data/rbi/context_dev/models/web_answers_params.rbi +234 -0
  118. data/rbi/context_dev/models/web_answers_response.rbi +122 -0
  119. data/rbi/context_dev/models/web_extract_competitors_params.rbi +127 -13
  120. data/rbi/context_dev/models/web_extract_competitors_response.rbi +26 -3
  121. data/rbi/context_dev/models/web_extract_fonts_params.rbi +132 -19
  122. data/rbi/context_dev/models/web_extract_fonts_response.rbi +81 -0
  123. data/rbi/context_dev/models/web_extract_params.rbi +120 -13
  124. data/rbi/context_dev/models/web_extract_response.rbi +26 -3
  125. data/rbi/context_dev/models/web_extract_styleguide_params.rbi +136 -19
  126. data/rbi/context_dev/models/web_extract_styleguide_response.rbi +81 -0
  127. data/rbi/context_dev/models/web_screenshot_params.rbi +132 -15
  128. data/rbi/context_dev/models/web_screenshot_response.rbi +81 -0
  129. data/rbi/context_dev/models/web_search_params.rbi +253 -26
  130. data/rbi/context_dev/models/web_search_response.rbi +102 -6
  131. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +123 -13
  132. data/rbi/context_dev/models/web_web_crawl_md_response.rbi +29 -3
  133. data/rbi/context_dev/models/web_web_scrape_bytes_params.rbi +699 -0
  134. data/rbi/context_dev/models/web_web_scrape_bytes_response.rbi +238 -0
  135. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +134 -15
  136. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +71 -0
  137. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +136 -15
  138. data/rbi/context_dev/models/web_web_scrape_images_response.rbi +99 -3
  139. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +132 -15
  140. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +71 -0
  141. data/rbi/context_dev/models/web_web_scrape_sitemap_params.rbi +127 -13
  142. data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +28 -3
  143. data/rbi/context_dev/models/webhooks/delivery_list_attempts_response.rbi +10 -0
  144. data/rbi/context_dev/models/webhooks/delivery_list_response.rbi +10 -0
  145. data/rbi/context_dev/models/webhooks/delivery_retrieve_response.rbi +10 -0
  146. data/rbi/context_dev/models/webhooks/delivery_retry_response.rbi +10 -0
  147. data/rbi/context_dev/models.rbi +8 -0
  148. data/rbi/context_dev/resources/ai.rbi +5 -5
  149. data/rbi/context_dev/resources/brand.rbi +9 -8
  150. data/rbi/context_dev/resources/industry.rbi +12 -10
  151. data/rbi/context_dev/resources/logs.rbi +76 -0
  152. data/rbi/context_dev/resources/people.rbi +5 -5
  153. data/rbi/context_dev/resources/utility.rbi +5 -5
  154. data/rbi/context_dev/resources/web.rbi +173 -68
  155. data/sig/context_dev/client.rbs +2 -0
  156. data/sig/context_dev/models/ai_extract_product_params.rbs +44 -5
  157. data/sig/context_dev/models/ai_extract_product_response.rbs +12 -0
  158. data/sig/context_dev/models/ai_extract_products_params.rbs +88 -10
  159. data/sig/context_dev/models/ai_extract_products_response.rbs +12 -0
  160. data/sig/context_dev/models/batch_cancel_response.rbs +5 -0
  161. data/sig/context_dev/models/batch_delete_response.rbs +5 -0
  162. data/sig/context_dev/models/batch_get_results_response.rbs +5 -0
  163. data/sig/context_dev/models/batch_list_response.rbs +5 -0
  164. data/sig/context_dev/models/batch_retrieve_response.rbs +5 -0
  165. data/sig/context_dev/models/batch_submit_response.rbs +5 -0
  166. data/sig/context_dev/models/brand_retrieve_params.rbs +264 -30
  167. data/sig/context_dev/models/brand_retrieve_response.rbs +12 -0
  168. data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +44 -5
  169. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +12 -0
  170. data/sig/context_dev/models/brand_search_response.rbs +5 -0
  171. data/sig/context_dev/models/industry_retrieve_naics_params.rbs +44 -5
  172. data/sig/context_dev/models/industry_retrieve_naics_response.rbs +12 -0
  173. data/sig/context_dev/models/industry_retrieve_sic_params.rbs +44 -5
  174. data/sig/context_dev/models/industry_retrieve_sic_response.rbs +12 -0
  175. data/sig/context_dev/models/log_list_params.rbs +98 -0
  176. data/sig/context_dev/models/log_list_response.rbs +135 -0
  177. data/sig/context_dev/models/log_retrieve_params.rbs +23 -0
  178. data/sig/context_dev/models/log_retrieve_response.rbs +179 -0
  179. data/sig/context_dev/models/monitor_create_params.rbs +14 -0
  180. data/sig/context_dev/models/monitor_create_response.rbs +14 -0
  181. data/sig/context_dev/models/monitor_list_response.rbs +14 -0
  182. data/sig/context_dev/models/monitor_retrieve_response.rbs +14 -0
  183. data/sig/context_dev/models/monitor_update_params.rbs +14 -0
  184. data/sig/context_dev/models/monitor_update_response.rbs +14 -0
  185. data/sig/context_dev/models/news_search_response.rbs +5 -0
  186. data/sig/context_dev/models/parse_handle_response.rbs +5 -0
  187. data/sig/context_dev/models/person_enrich_params.rbs +44 -5
  188. data/sig/context_dev/models/person_enrich_response.rbs +15 -3
  189. data/sig/context_dev/models/utility_prefetch_params.rbs +43 -5
  190. data/sig/context_dev/models/utility_prefetch_response.rbs +5 -0
  191. data/sig/context_dev/models/web_answers_params.rbs +106 -0
  192. data/sig/context_dev/models/web_answers_response.rbs +60 -0
  193. data/sig/context_dev/models/web_extract_competitors_params.rbs +44 -5
  194. data/sig/context_dev/models/web_extract_competitors_response.rbs +15 -3
  195. data/sig/context_dev/models/web_extract_fonts_params.rbs +44 -5
  196. data/sig/context_dev/models/web_extract_fonts_response.rbs +25 -0
  197. data/sig/context_dev/models/web_extract_params.rbs +44 -5
  198. data/sig/context_dev/models/web_extract_response.rbs +15 -3
  199. data/sig/context_dev/models/web_extract_styleguide_params.rbs +44 -5
  200. data/sig/context_dev/models/web_extract_styleguide_response.rbs +25 -0
  201. data/sig/context_dev/models/web_screenshot_params.rbs +44 -5
  202. data/sig/context_dev/models/web_screenshot_response.rbs +25 -0
  203. data/sig/context_dev/models/web_search_params.rbs +88 -10
  204. data/sig/context_dev/models/web_search_response.rbs +38 -6
  205. data/sig/context_dev/models/web_web_crawl_md_params.rbs +44 -5
  206. data/sig/context_dev/models/web_web_crawl_md_response.rbs +15 -3
  207. data/sig/context_dev/models/web_web_scrape_bytes_params.rbs +531 -0
  208. data/sig/context_dev/models/web_web_scrape_bytes_response.rbs +108 -0
  209. data/sig/context_dev/models/web_web_scrape_html_params.rbs +44 -5
  210. data/sig/context_dev/models/web_web_scrape_html_response.rbs +21 -0
  211. data/sig/context_dev/models/web_web_scrape_images_params.rbs +44 -5
  212. data/sig/context_dev/models/web_web_scrape_images_response.rbs +35 -3
  213. data/sig/context_dev/models/web_web_scrape_md_params.rbs +44 -5
  214. data/sig/context_dev/models/web_web_scrape_md_response.rbs +21 -0
  215. data/sig/context_dev/models/web_web_scrape_sitemap_params.rbs +44 -5
  216. data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +15 -3
  217. data/sig/context_dev/models/webhooks/delivery_list_attempts_response.rbs +5 -0
  218. data/sig/context_dev/models/webhooks/delivery_list_response.rbs +5 -0
  219. data/sig/context_dev/models/webhooks/delivery_retrieve_response.rbs +7 -0
  220. data/sig/context_dev/models/webhooks/delivery_retry_response.rbs +5 -0
  221. data/sig/context_dev/models.rbs +8 -0
  222. data/sig/context_dev/resources/ai.rbs +1 -1
  223. data/sig/context_dev/resources/brand.rbs +1 -1
  224. data/sig/context_dev/resources/industry.rbs +2 -2
  225. data/sig/context_dev/resources/logs.rbs +27 -0
  226. data/sig/context_dev/resources/people.rbs +1 -1
  227. data/sig/context_dev/resources/utility.rbs +1 -1
  228. data/sig/context_dev/resources/web.rbs +30 -11
  229. metadata +29 -2
@@ -34,21 +34,29 @@ module ContextDev
34
34
  sig { params(tags: T::Array[String]).void }
35
35
  attr_writer :tags
36
36
 
37
- # Optional timeout in milliseconds for the request. If the request takes longer
38
- # than this value, it will be aborted with a 408 status code. Maximum allowed
39
- # value is 300000ms (5 minutes).
40
- sig { returns(T.nilable(Integer)) }
41
- attr_reader :timeout_ms
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::WebExtractCompetitorsParams::TimeoutOpts))
42
+ end
43
+ attr_reader :timeout_opts
42
44
 
43
- sig { params(timeout_ms: Integer).void }
44
- attr_writer :timeout_ms
45
+ sig do
46
+ params(
47
+ timeout_opts:
48
+ ContextDev::WebExtractCompetitorsParams::TimeoutOpts::OrHash
49
+ ).void
50
+ end
51
+ attr_writer :timeout_opts
45
52
 
46
53
  sig do
47
54
  params(
48
55
  domain: String,
49
56
  num_competitors: Integer,
50
57
  tags: T::Array[String],
51
- timeout_ms: Integer,
58
+ timeout_opts:
59
+ ContextDev::WebExtractCompetitorsParams::TimeoutOpts::OrHash,
52
60
  request_options: ContextDev::RequestOptions::OrHash
53
61
  ).returns(T.attached_class)
54
62
  end
@@ -61,10 +69,10 @@ module ContextDev
61
69
  # Comma-separated tags for tracking request usage. Up to 20 tags, each 1-50
62
70
  # characters.
63
71
  tags: nil,
64
- # Optional timeout in milliseconds for the request. If the request takes longer
65
- # than this value, it will be aborted with a 408 status code. Maximum allowed
66
- # value is 300000ms (5 minutes).
67
- timeout_ms: nil,
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
+ timeout_opts: nil,
68
76
  request_options: {}
69
77
  )
70
78
  end
@@ -75,13 +83,119 @@ module ContextDev
75
83
  domain: String,
76
84
  num_competitors: Integer,
77
85
  tags: T::Array[String],
78
- timeout_ms: Integer,
86
+ timeout_opts: ContextDev::WebExtractCompetitorsParams::TimeoutOpts,
79
87
  request_options: ContextDev::RequestOptions
80
88
  }
81
89
  )
82
90
  end
83
91
  def to_hash
84
92
  end
93
+
94
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
95
+ OrHash =
96
+ T.type_alias do
97
+ T.any(
98
+ ContextDev::WebExtractCompetitorsParams::TimeoutOpts,
99
+ ContextDev::Internal::AnyHash
100
+ )
101
+ end
102
+
103
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
104
+ sig { returns(Integer) }
105
+ attr_accessor :milliseconds
106
+
107
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
108
+ # credits. "return-partial" returns usable results collected so far; if none are
109
+ # available, the request still fails without charging credits. Partial results are
110
+ # not cached as complete results.
111
+ sig do
112
+ returns(
113
+ T.nilable(
114
+ ContextDev::WebExtractCompetitorsParams::TimeoutOpts::Behavior::OrSymbol
115
+ )
116
+ )
117
+ end
118
+ attr_reader :behavior
119
+
120
+ sig do
121
+ params(
122
+ behavior:
123
+ ContextDev::WebExtractCompetitorsParams::TimeoutOpts::Behavior::OrSymbol
124
+ ).void
125
+ end
126
+ attr_writer :behavior
127
+
128
+ # Optional request deadline and behavior on timeout. For GET requests, use
129
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
130
+ # timeoutOpts object.
131
+ sig do
132
+ params(
133
+ milliseconds: Integer,
134
+ behavior:
135
+ ContextDev::WebExtractCompetitorsParams::TimeoutOpts::Behavior::OrSymbol
136
+ ).returns(T.attached_class)
137
+ end
138
+ def self.new(
139
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
140
+ milliseconds:,
141
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
142
+ # credits. "return-partial" returns usable results collected so far; if none are
143
+ # available, the request still fails without charging credits. Partial results are
144
+ # not cached as complete results.
145
+ behavior: nil
146
+ )
147
+ end
148
+
149
+ sig do
150
+ override.returns(
151
+ {
152
+ milliseconds: Integer,
153
+ behavior:
154
+ ContextDev::WebExtractCompetitorsParams::TimeoutOpts::Behavior::OrSymbol
155
+ }
156
+ )
157
+ end
158
+ def to_hash
159
+ end
160
+
161
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
162
+ # credits. "return-partial" returns usable results collected so far; if none are
163
+ # available, the request still fails without charging credits. Partial results are
164
+ # not cached as complete results.
165
+ module Behavior
166
+ extend ContextDev::Internal::Type::Enum
167
+
168
+ TaggedSymbol =
169
+ T.type_alias do
170
+ T.all(
171
+ Symbol,
172
+ ContextDev::WebExtractCompetitorsParams::TimeoutOpts::Behavior
173
+ )
174
+ end
175
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
176
+
177
+ FAIL =
178
+ T.let(
179
+ :fail,
180
+ ContextDev::WebExtractCompetitorsParams::TimeoutOpts::Behavior::TaggedSymbol
181
+ )
182
+ RETURN_PARTIAL =
183
+ T.let(
184
+ :"return-partial",
185
+ ContextDev::WebExtractCompetitorsParams::TimeoutOpts::Behavior::TaggedSymbol
186
+ )
187
+
188
+ sig do
189
+ override.returns(
190
+ T::Array[
191
+ ContextDev::WebExtractCompetitorsParams::TimeoutOpts::Behavior::TaggedSymbol
192
+ ]
193
+ )
194
+ end
195
+ def self.values
196
+ end
197
+ end
198
+ end
85
199
  end
86
200
  end
87
201
  end
@@ -25,6 +25,11 @@ module ContextDev
25
25
  sig { returns(String) }
26
26
  attr_accessor :domain
27
27
 
28
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
29
+ # it when contacting support about a failed request.
30
+ sig { returns(String) }
31
+ attr_accessor :request_id
32
+
28
33
  # Status of the response.
29
34
  sig do
30
35
  returns(
@@ -63,6 +68,14 @@ module ContextDev
63
68
  end
64
69
  attr_writer :key_metadata
65
70
 
71
+ # True when the timeout ended processing and this response contains only usable
72
+ # results completed so far. Unfinished results are omitted.
73
+ sig { returns(T.nilable(T::Boolean)) }
74
+ attr_reader :partial
75
+
76
+ sig { params(partial: T::Boolean).void }
77
+ attr_writer :partial
78
+
66
79
  sig do
67
80
  params(
68
81
  competitors:
@@ -70,12 +83,14 @@ module ContextDev
70
83
  ContextDev::Models::WebExtractCompetitorsResponse::Competitor::OrHash
71
84
  ],
72
85
  domain: String,
86
+ request_id: String,
73
87
  status:
74
88
  ContextDev::Models::WebExtractCompetitorsResponse::Status::OrSymbol,
75
89
  target:
76
90
  ContextDev::Models::WebExtractCompetitorsResponse::Target::OrHash,
77
91
  key_metadata:
78
- ContextDev::Models::WebExtractCompetitorsResponse::KeyMetadata::OrHash
92
+ ContextDev::Models::WebExtractCompetitorsResponse::KeyMetadata::OrHash,
93
+ partial: T::Boolean
79
94
  ).returns(T.attached_class)
80
95
  end
81
96
  def self.new(
@@ -83,12 +98,18 @@ module ContextDev
83
98
  competitors:,
84
99
  # Normalized input domain.
85
100
  domain:,
101
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
102
+ # it when contacting support about a failed request.
103
+ request_id:,
86
104
  # Status of the response.
87
105
  status:,
88
106
  # Target company profile inferred from the landing page.
89
107
  target:,
90
108
  # Credit usage, included whenever a valid API key is provided.
91
- key_metadata: nil
109
+ key_metadata: nil,
110
+ # True when the timeout ended processing and this response contains only usable
111
+ # results completed so far. Unfinished results are omitted.
112
+ partial: nil
92
113
  )
93
114
  end
94
115
 
@@ -100,11 +121,13 @@ module ContextDev
100
121
  ContextDev::Models::WebExtractCompetitorsResponse::Competitor
101
122
  ],
102
123
  domain: String,
124
+ request_id: String,
103
125
  status:
104
126
  ContextDev::Models::WebExtractCompetitorsResponse::Status::TaggedSymbol,
105
127
  target: ContextDev::Models::WebExtractCompetitorsResponse::Target,
106
128
  key_metadata:
107
- ContextDev::Models::WebExtractCompetitorsResponse::KeyMetadata
129
+ ContextDev::Models::WebExtractCompetitorsResponse::KeyMetadata,
130
+ partial: T::Boolean
108
131
  }
109
132
  )
110
133
  end
@@ -33,9 +33,9 @@ module ContextDev
33
33
  attr_writer :domain
34
34
 
35
35
  # Maximum age in milliseconds for cached brand data before the API performs a hard
36
- # refresh. Defaults to 3 months (7776000000 ms). Values below 1 day (86400000 ms)
37
- # are clamped to 1 day; values above 1 year (31536000000 ms) are clamped to 1
38
- # year.
36
+ # refresh. Defaults to 3 months (7776000000 ms). Set to 0 to always perform a hard
37
+ # refresh. Negative values are clamped to 0; values above 1 year (31536000000 ms)
38
+ # are clamped to 1 year.
39
39
  sig { returns(T.nilable(Integer)) }
40
40
  attr_accessor :max_age_ms
41
41
 
@@ -47,14 +47,18 @@ module ContextDev
47
47
  sig { params(tags: T::Array[String]).void }
48
48
  attr_writer :tags
49
49
 
50
- # Optional timeout in milliseconds for the request. If the request takes longer
51
- # than this value, it will be aborted with a 408 status code. Maximum allowed
52
- # value is 300000ms (5 minutes).
53
- sig { returns(T.nilable(Integer)) }
54
- attr_reader :timeout_ms
50
+ # Optional request deadline and behavior on timeout. For GET requests, use
51
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
52
+ # timeoutOpts object.
53
+ sig { returns(T.nilable(ContextDev::WebExtractFontsParams::TimeoutOpts)) }
54
+ attr_reader :timeout_opts
55
55
 
56
- sig { params(timeout_ms: Integer).void }
57
- attr_writer :timeout_ms
56
+ sig do
57
+ params(
58
+ timeout_opts: ContextDev::WebExtractFontsParams::TimeoutOpts::OrHash
59
+ ).void
60
+ end
61
+ attr_writer :timeout_opts
58
62
 
59
63
  sig do
60
64
  params(
@@ -62,7 +66,7 @@ module ContextDev
62
66
  domain: String,
63
67
  max_age_ms: T.nilable(Integer),
64
68
  tags: T::Array[String],
65
- timeout_ms: Integer,
69
+ timeout_opts: ContextDev::WebExtractFontsParams::TimeoutOpts::OrHash,
66
70
  request_options: ContextDev::RequestOptions::OrHash
67
71
  ).returns(T.attached_class)
68
72
  end
@@ -76,17 +80,17 @@ module ContextDev
76
80
  # 'domain' or 'directUrl', but not both.
77
81
  domain: nil,
78
82
  # Maximum age in milliseconds for cached brand data before the API performs a hard
79
- # refresh. Defaults to 3 months (7776000000 ms). Values below 1 day (86400000 ms)
80
- # are clamped to 1 day; values above 1 year (31536000000 ms) are clamped to 1
81
- # year.
83
+ # refresh. Defaults to 3 months (7776000000 ms). Set to 0 to always perform a hard
84
+ # refresh. Negative values are clamped to 0; values above 1 year (31536000000 ms)
85
+ # are clamped to 1 year.
82
86
  max_age_ms: nil,
83
87
  # Comma-separated tags for tracking request usage. Up to 20 tags, each 1-50
84
88
  # characters.
85
89
  tags: nil,
86
- # Optional timeout in milliseconds for the request. If the request takes longer
87
- # than this value, it will be aborted with a 408 status code. Maximum allowed
88
- # value is 300000ms (5 minutes).
89
- timeout_ms: nil,
90
+ # Optional request deadline and behavior on timeout. For GET requests, use
91
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
92
+ # timeoutOpts object.
93
+ timeout_opts: nil,
90
94
  request_options: {}
91
95
  )
92
96
  end
@@ -98,13 +102,122 @@ module ContextDev
98
102
  domain: String,
99
103
  max_age_ms: T.nilable(Integer),
100
104
  tags: T::Array[String],
101
- timeout_ms: Integer,
105
+ timeout_opts: ContextDev::WebExtractFontsParams::TimeoutOpts,
102
106
  request_options: ContextDev::RequestOptions
103
107
  }
104
108
  )
105
109
  end
106
110
  def to_hash
107
111
  end
112
+
113
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
114
+ OrHash =
115
+ T.type_alias do
116
+ T.any(
117
+ ContextDev::WebExtractFontsParams::TimeoutOpts,
118
+ ContextDev::Internal::AnyHash
119
+ )
120
+ end
121
+
122
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
123
+ sig { returns(Integer) }
124
+ attr_accessor :milliseconds
125
+
126
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
127
+ # credits. "return-partial" returns usable results collected so far; if none are
128
+ # available, the request still fails without charging credits. Partial results are
129
+ # not cached as complete results. "return-partial" requires milliseconds of at
130
+ # least 15000.
131
+ sig do
132
+ returns(
133
+ T.nilable(
134
+ ContextDev::WebExtractFontsParams::TimeoutOpts::Behavior::OrSymbol
135
+ )
136
+ )
137
+ end
138
+ attr_reader :behavior
139
+
140
+ sig do
141
+ params(
142
+ behavior:
143
+ ContextDev::WebExtractFontsParams::TimeoutOpts::Behavior::OrSymbol
144
+ ).void
145
+ end
146
+ attr_writer :behavior
147
+
148
+ # Optional request deadline and behavior on timeout. For GET requests, use
149
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
150
+ # timeoutOpts object.
151
+ sig do
152
+ params(
153
+ milliseconds: Integer,
154
+ behavior:
155
+ ContextDev::WebExtractFontsParams::TimeoutOpts::Behavior::OrSymbol
156
+ ).returns(T.attached_class)
157
+ end
158
+ def self.new(
159
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
160
+ milliseconds:,
161
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
162
+ # credits. "return-partial" returns usable results collected so far; if none are
163
+ # available, the request still fails without charging credits. Partial results are
164
+ # not cached as complete results. "return-partial" requires milliseconds of at
165
+ # least 15000.
166
+ behavior: nil
167
+ )
168
+ end
169
+
170
+ sig do
171
+ override.returns(
172
+ {
173
+ milliseconds: Integer,
174
+ behavior:
175
+ ContextDev::WebExtractFontsParams::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. "return-partial" requires milliseconds of at
186
+ # least 15000.
187
+ module Behavior
188
+ extend ContextDev::Internal::Type::Enum
189
+
190
+ TaggedSymbol =
191
+ T.type_alias do
192
+ T.all(
193
+ Symbol,
194
+ ContextDev::WebExtractFontsParams::TimeoutOpts::Behavior
195
+ )
196
+ end
197
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
198
+
199
+ FAIL =
200
+ T.let(
201
+ :fail,
202
+ ContextDev::WebExtractFontsParams::TimeoutOpts::Behavior::TaggedSymbol
203
+ )
204
+ RETURN_PARTIAL =
205
+ T.let(
206
+ :"return-partial",
207
+ ContextDev::WebExtractFontsParams::TimeoutOpts::Behavior::TaggedSymbol
208
+ )
209
+
210
+ sig do
211
+ override.returns(
212
+ T::Array[
213
+ ContextDev::WebExtractFontsParams::TimeoutOpts::Behavior::TaggedSymbol
214
+ ]
215
+ )
216
+ end
217
+ def self.values
218
+ end
219
+ end
220
+ end
108
221
  end
109
222
  end
110
223
  end
@@ -41,10 +41,37 @@ module ContextDev
41
41
  end
42
42
  attr_accessor :fonts
43
43
 
44
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
45
+ # it when contacting support about a failed request.
46
+ sig { returns(String) }
47
+ attr_accessor :request_id
48
+
44
49
  # Status of the response, e.g., 'ok'
45
50
  sig { returns(String) }
46
51
  attr_accessor :status
47
52
 
53
+ # How complete the returned content is. `loaded` means the page finished the waits
54
+ # the request asked for. `still-loading` only occurs with
55
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
56
+ # reached first, so the content reflects the DOM at that moment and late-rendering
57
+ # parts may be missing. Partial results are billed at the base request cost.
58
+ sig do
59
+ returns(
60
+ T.nilable(
61
+ ContextDev::Models::WebExtractFontsResponse::FinalDomState::TaggedSymbol
62
+ )
63
+ )
64
+ end
65
+ attr_reader :final_dom_state
66
+
67
+ sig do
68
+ params(
69
+ final_dom_state:
70
+ ContextDev::Models::WebExtractFontsResponse::FinalDomState::OrSymbol
71
+ ).void
72
+ end
73
+ attr_writer :final_dom_state
74
+
48
75
  # Font assets keyed by family name as it appears in the fonts array (non-generic
49
76
  # names only). Clients match entries in fonts to pick a file URL from files.
50
77
  # Omitted when no families resolve to Google or custom @font-face URLs.
@@ -95,7 +122,10 @@ module ContextDev
95
122
  domain: String,
96
123
  fonts:
97
124
  T::Array[ContextDev::Models::WebExtractFontsResponse::Font::OrHash],
125
+ request_id: String,
98
126
  status: String,
127
+ final_dom_state:
128
+ ContextDev::Models::WebExtractFontsResponse::FinalDomState::OrSymbol,
99
129
  font_links:
100
130
  T::Hash[
101
131
  Symbol,
@@ -116,8 +146,17 @@ module ContextDev
116
146
  domain:,
117
147
  # Array of font usage information
118
148
  fonts:,
149
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
150
+ # it when contacting support about a failed request.
151
+ request_id:,
119
152
  # Status of the response, e.g., 'ok'
120
153
  status:,
154
+ # How complete the returned content is. `loaded` means the page finished the waits
155
+ # the request asked for. `still-loading` only occurs with
156
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
157
+ # reached first, so the content reflects the DOM at that moment and late-rendering
158
+ # parts may be missing. Partial results are billed at the base request cost.
159
+ final_dom_state: nil,
121
160
  # Font assets keyed by family name as it appears in the fonts array (non-generic
122
161
  # names only). Clients match entries in fonts to pick a file URL from files.
123
162
  # Omitted when no families resolve to Google or custom @font-face URLs.
@@ -135,7 +174,10 @@ module ContextDev
135
174
  code: Integer,
136
175
  domain: String,
137
176
  fonts: T::Array[ContextDev::Models::WebExtractFontsResponse::Font],
177
+ request_id: String,
138
178
  status: String,
179
+ final_dom_state:
180
+ ContextDev::Models::WebExtractFontsResponse::FinalDomState::TaggedSymbol,
139
181
  font_links:
140
182
  T::Hash[
141
183
  Symbol,
@@ -327,6 +369,45 @@ module ContextDev
327
369
  end
328
370
  end
329
371
 
372
+ # How complete the returned content is. `loaded` means the page finished the waits
373
+ # the request asked for. `still-loading` only occurs with
374
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
375
+ # reached first, so the content reflects the DOM at that moment and late-rendering
376
+ # parts may be missing. Partial results are billed at the base request cost.
377
+ module FinalDomState
378
+ extend ContextDev::Internal::Type::Enum
379
+
380
+ TaggedSymbol =
381
+ T.type_alias do
382
+ T.all(
383
+ Symbol,
384
+ ContextDev::Models::WebExtractFontsResponse::FinalDomState
385
+ )
386
+ end
387
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
388
+
389
+ LOADED =
390
+ T.let(
391
+ :loaded,
392
+ ContextDev::Models::WebExtractFontsResponse::FinalDomState::TaggedSymbol
393
+ )
394
+ STILL_LOADING =
395
+ T.let(
396
+ :"still-loading",
397
+ ContextDev::Models::WebExtractFontsResponse::FinalDomState::TaggedSymbol
398
+ )
399
+
400
+ sig do
401
+ override.returns(
402
+ T::Array[
403
+ ContextDev::Models::WebExtractFontsResponse::FinalDomState::TaggedSymbol
404
+ ]
405
+ )
406
+ end
407
+ def self.values
408
+ end
409
+ end
410
+
330
411
  class FontLink < ContextDev::Internal::Type::BaseModel
331
412
  OrHash =
332
413
  T.type_alias do