context.dev 2.6.0 → 2.8.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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/models/batch_cancel_response.rb +70 -183
  5. data/lib/context_dev/models/batch_list_response.rb +86 -95
  6. data/lib/context_dev/models/batch_retrieve_response.rb +86 -103
  7. data/lib/context_dev/models/brand_search_params.rb +36 -0
  8. data/lib/context_dev/models/brand_search_response.rb +84 -0
  9. data/lib/context_dev/models/crawl_controls.rb +126 -0
  10. data/lib/context_dev/models/failure.rb +27 -0
  11. data/lib/context_dev/models/intake.rb +62 -0
  12. data/lib/context_dev/models/{error_count.rb → page_error_count.rb} +1 -1
  13. data/lib/context_dev/models/web_screenshot_params.rb +5 -7
  14. data/lib/context_dev/models/web_web_crawl_md_params.rb +5 -7
  15. data/lib/context_dev/models/web_web_scrape_html_params.rb +5 -7
  16. data/lib/context_dev/models/web_web_scrape_md_params.rb +5 -7
  17. data/lib/context_dev/models.rb +8 -2
  18. data/lib/context_dev/resources/batch.rb +3 -6
  19. data/lib/context_dev/resources/brand.rb +34 -0
  20. data/lib/context_dev/resources/web.rb +4 -4
  21. data/lib/context_dev/version.rb +1 -1
  22. data/lib/context_dev.rb +6 -2
  23. data/rbi/context_dev/models/batch_cancel_response.rbi +98 -316
  24. data/rbi/context_dev/models/batch_list_response.rbi +127 -152
  25. data/rbi/context_dev/models/batch_retrieve_response.rbi +126 -161
  26. data/rbi/context_dev/models/brand_search_params.rbi +60 -0
  27. data/rbi/context_dev/models/brand_search_response.rbi +146 -0
  28. data/rbi/context_dev/models/crawl_controls.rbi +252 -0
  29. data/rbi/context_dev/models/{error.rbi → failure.rbi} +10 -7
  30. data/rbi/context_dev/models/intake.rbi +88 -0
  31. data/rbi/context_dev/models/{error_count.rbi → page_error_count.rbi} +2 -2
  32. data/rbi/context_dev/models/web_screenshot_params.rbi +6 -9
  33. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +6 -9
  34. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +6 -9
  35. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +6 -9
  36. data/rbi/context_dev/models.rbi +8 -2
  37. data/rbi/context_dev/resources/batch.rbi +3 -6
  38. data/rbi/context_dev/resources/brand.rbi +26 -0
  39. data/rbi/context_dev/resources/web.rbi +8 -12
  40. data/sig/context_dev/models/batch_cancel_response.rbs +32 -124
  41. data/sig/context_dev/models/batch_list_response.rbs +42 -63
  42. data/sig/context_dev/models/batch_retrieve_response.rbs +42 -70
  43. data/sig/context_dev/models/brand_search_params.rbs +30 -0
  44. data/sig/context_dev/models/brand_search_response.rbs +62 -0
  45. data/sig/context_dev/models/crawl_controls.rbs +114 -0
  46. data/sig/context_dev/models/{error.rbs → failure.rbs} +2 -2
  47. data/sig/context_dev/models/intake.rbs +40 -0
  48. data/sig/context_dev/models/{error_count.rbs → page_error_count.rbs} +2 -2
  49. data/sig/context_dev/models.rbs +8 -2
  50. data/sig/context_dev/resources/brand.rbs +6 -0
  51. metadata +20 -8
  52. data/lib/context_dev/models/error.rb +0 -26
@@ -15,7 +15,15 @@ module ContextDev
15
15
  sig { returns(String) }
16
16
  attr_accessor :id
17
17
 
18
- # Reserved and used credits.
18
+ # The crawl controls as submitted, so the limits requested can be compared against
19
+ # what the crawl reached.
20
+ sig { returns(T.nilable(ContextDev::CrawlControls)) }
21
+ attr_reader :crawl
22
+
23
+ sig { params(crawl: T.nilable(ContextDev::CrawlControls::OrHash)).void }
24
+ attr_writer :crawl
25
+
26
+ # What this batch has done to your credit balance.
19
27
  sig { returns(ContextDev::Models::BatchRetrieveResponse::Credits) }
20
28
  attr_reader :credits
21
29
 
@@ -26,26 +34,26 @@ module ContextDev
26
34
  end
27
35
  attr_writer :credits
28
36
 
29
- # Why the batch failed.
30
- sig { returns(T.nilable(ContextDev::Error)) }
31
- attr_reader :error
37
+ # A failure of the batch as a whole, distinct from the per-page failures in
38
+ # `page_errors`.
39
+ sig { returns(T.nilable(ContextDev::Failure)) }
40
+ attr_reader :failure
32
41
 
33
- sig { params(error: T.nilable(ContextDev::Error::OrHash)).void }
34
- attr_writer :error
42
+ sig { params(failure: T.nilable(ContextDev::Failure::OrHash)).void }
43
+ attr_writer :failure
35
44
 
36
- # Page failures grouped by error code.
37
- sig { returns(T::Array[ContextDev::ErrorCount]) }
38
- attr_accessor :errors
45
+ # What each page is returned as. Matches `input.data.format` on the submit
46
+ # request.
47
+ sig do
48
+ returns(ContextDev::Models::BatchRetrieveResponse::Format::TaggedSymbol)
49
+ end
50
+ attr_accessor :format_
39
51
 
40
- # Submission counts.
41
- sig { returns(ContextDev::Models::BatchRetrieveResponse::Input) }
52
+ # What submission took in, and what it charged for.
53
+ sig { returns(ContextDev::Intake) }
42
54
  attr_reader :input
43
55
 
44
- sig do
45
- params(
46
- input: ContextDev::Models::BatchRetrieveResponse::Input::OrHash
47
- ).void
48
- end
56
+ sig { params(input: ContextDev::Intake::OrHash).void }
49
57
  attr_writer :input
50
58
 
51
59
  # Rejected URLs, up to 100. These are not charged.
@@ -54,13 +62,18 @@ module ContextDev
54
62
  end
55
63
  attr_accessor :invalid_urls
56
64
 
57
- # How pages are selected.
65
+ # How pages were selected. Matches `input.mode` on the submit request.
58
66
  sig do
59
67
  returns(ContextDev::Models::BatchRetrieveResponse::Mode::TaggedSymbol)
60
68
  end
61
69
  attr_accessor :mode
62
70
 
63
- # Current processing counts. Use `status` to check completion.
71
+ # Individual page failures grouped by error code, sorted by count. Unrelated to
72
+ # `failure`, which is the batch itself failing.
73
+ sig { returns(T::Array[ContextDev::PageErrorCount]) }
74
+ attr_accessor :page_errors
75
+
76
+ # Pages attempted so far. Use `status` to check completion.
64
77
  sig { returns(ContextDev::Models::BatchRetrieveResponse::Progress) }
65
78
  attr_reader :progress
66
79
 
@@ -71,8 +84,8 @@ module ContextDev
71
84
  end
72
85
  attr_writer :progress
73
86
 
74
- # Download links available when the batch finishes. GET /batch/{batch_id}/results
75
- # serves the same records as paginated JSON.
87
+ # Download links, available once the batch reaches a final status and null before
88
+ # then. GET /batch/{batch_id}/results serves the same records as paginated JSON.
76
89
  sig do
77
90
  returns(T.nilable(ContextDev::Models::BatchRetrieveResponse::Results))
78
91
  end
@@ -108,12 +121,6 @@ module ContextDev
108
121
  end
109
122
  attr_writer :timing
110
123
 
111
- # Output format.
112
- sig do
113
- returns(ContextDev::Models::BatchRetrieveResponse::Type::TaggedSymbol)
114
- end
115
- attr_accessor :type
116
-
117
124
  # API key usage for this request.
118
125
  sig do
119
126
  returns(
@@ -130,25 +137,20 @@ module ContextDev
130
137
  end
131
138
  attr_writer :key_metadata
132
139
 
133
- # Webhook signing secret. Also returned by GET /batch/{batch_id}.
134
- sig { returns(T.nilable(String)) }
135
- attr_reader :webhook_secret
136
-
137
- sig { params(webhook_secret: String).void }
138
- attr_writer :webhook_secret
139
-
140
140
  sig do
141
141
  params(
142
142
  id: String,
143
+ crawl: T.nilable(ContextDev::CrawlControls::OrHash),
143
144
  credits: ContextDev::Models::BatchRetrieveResponse::Credits::OrHash,
144
- error: T.nilable(ContextDev::Error::OrHash),
145
- errors: T::Array[ContextDev::ErrorCount::OrHash],
146
- input: ContextDev::Models::BatchRetrieveResponse::Input::OrHash,
145
+ failure: T.nilable(ContextDev::Failure::OrHash),
146
+ format_: ContextDev::Models::BatchRetrieveResponse::Format::OrSymbol,
147
+ input: ContextDev::Intake::OrHash,
147
148
  invalid_urls:
148
149
  T::Array[
149
150
  ContextDev::Models::BatchRetrieveResponse::InvalidURL::OrHash
150
151
  ],
151
152
  mode: ContextDev::Models::BatchRetrieveResponse::Mode::OrSymbol,
153
+ page_errors: T::Array[ContextDev::PageErrorCount::OrHash],
152
154
  progress: ContextDev::Models::BatchRetrieveResponse::Progress::OrHash,
153
155
  results:
154
156
  T.nilable(
@@ -157,43 +159,45 @@ module ContextDev
157
159
  status: ContextDev::Models::BatchRetrieveResponse::Status::OrSymbol,
158
160
  tags: T::Array[String],
159
161
  timing: ContextDev::Models::BatchRetrieveResponse::Timing::OrHash,
160
- type: ContextDev::Models::BatchRetrieveResponse::Type::OrSymbol,
161
162
  key_metadata:
162
- ContextDev::Models::BatchRetrieveResponse::KeyMetadata::OrHash,
163
- webhook_secret: String
163
+ ContextDev::Models::BatchRetrieveResponse::KeyMetadata::OrHash
164
164
  ).returns(T.attached_class)
165
165
  end
166
166
  def self.new(
167
167
  # Batch ID used to retrieve or cancel the job.
168
168
  id:,
169
- # Reserved and used credits.
169
+ # The crawl controls as submitted, so the limits requested can be compared against
170
+ # what the crawl reached.
171
+ crawl:,
172
+ # What this batch has done to your credit balance.
170
173
  credits:,
171
- # Why the batch failed.
172
- error:,
173
- # Page failures grouped by error code.
174
- errors:,
175
- # Submission counts.
174
+ # A failure of the batch as a whole, distinct from the per-page failures in
175
+ # `page_errors`.
176
+ failure:,
177
+ # What each page is returned as. Matches `input.data.format` on the submit
178
+ # request.
179
+ format_:,
180
+ # What submission took in, and what it charged for.
176
181
  input:,
177
182
  # Rejected URLs, up to 100. These are not charged.
178
183
  invalid_urls:,
179
- # How pages are selected.
184
+ # How pages were selected. Matches `input.mode` on the submit request.
180
185
  mode:,
181
- # Current processing counts. Use `status` to check completion.
186
+ # Individual page failures grouped by error code, sorted by count. Unrelated to
187
+ # `failure`, which is the batch itself failing.
188
+ page_errors:,
189
+ # Pages attempted so far. Use `status` to check completion.
182
190
  progress:,
183
- # Download links available when the batch finishes. GET /batch/{batch_id}/results
184
- # serves the same records as paginated JSON.
191
+ # Download links, available once the batch reaches a final status and null before
192
+ # then. GET /batch/{batch_id}/results serves the same records as paginated JSON.
185
193
  results:,
186
194
  # Current state. `completed`, `cancelled`, and `failed` are final.
187
195
  status:,
188
196
  # Tags stored on the batch at submission.
189
197
  tags:,
190
198
  timing:,
191
- # Output format.
192
- type:,
193
199
  # API key usage for this request.
194
- key_metadata: nil,
195
- # Webhook signing secret. Also returned by GET /batch/{batch_id}.
196
- webhook_secret: nil
200
+ key_metadata: nil
197
201
  )
198
202
  end
199
203
 
@@ -201,13 +205,16 @@ module ContextDev
201
205
  override.returns(
202
206
  {
203
207
  id: String,
208
+ crawl: T.nilable(ContextDev::CrawlControls),
204
209
  credits: ContextDev::Models::BatchRetrieveResponse::Credits,
205
- error: T.nilable(ContextDev::Error),
206
- errors: T::Array[ContextDev::ErrorCount],
207
- input: ContextDev::Models::BatchRetrieveResponse::Input,
210
+ failure: T.nilable(ContextDev::Failure),
211
+ format_:
212
+ ContextDev::Models::BatchRetrieveResponse::Format::TaggedSymbol,
213
+ input: ContextDev::Intake,
208
214
  invalid_urls:
209
215
  T::Array[ContextDev::Models::BatchRetrieveResponse::InvalidURL],
210
216
  mode: ContextDev::Models::BatchRetrieveResponse::Mode::TaggedSymbol,
217
+ page_errors: T::Array[ContextDev::PageErrorCount],
211
218
  progress: ContextDev::Models::BatchRetrieveResponse::Progress,
212
219
  results:
213
220
  T.nilable(ContextDev::Models::BatchRetrieveResponse::Results),
@@ -215,10 +222,7 @@ module ContextDev
215
222
  ContextDev::Models::BatchRetrieveResponse::Status::TaggedSymbol,
216
223
  tags: T::Array[String],
217
224
  timing: ContextDev::Models::BatchRetrieveResponse::Timing,
218
- type: ContextDev::Models::BatchRetrieveResponse::Type::TaggedSymbol,
219
- key_metadata:
220
- ContextDev::Models::BatchRetrieveResponse::KeyMetadata,
221
- webhook_secret: String
225
+ key_metadata: ContextDev::Models::BatchRetrieveResponse::KeyMetadata
222
226
  }
223
227
  )
224
228
  end
@@ -234,88 +238,79 @@ module ContextDev
234
238
  )
235
239
  end
236
240
 
237
- # Credits used by successful pages.
241
+ # `reserved` minus `refunded` — what the batch has cost so far. Equal to
242
+ # `reserved` until the batch settles.
238
243
  sig { returns(Integer) }
239
- attr_accessor :charged
244
+ attr_accessor :net
240
245
 
241
- # Credits reserved when the batch was accepted.
246
+ # Credits returned for pages that did not succeed. Stays 0 until the batch reaches
247
+ # a final status, then settles in one movement.
242
248
  sig { returns(Integer) }
243
- attr_accessor :estimated
249
+ attr_accessor :refunded
244
250
 
245
- # Reserved and used credits.
251
+ # Credits debited from your balance the moment the batch was accepted. This is a
252
+ # charge, not a forecast — the whole amount leaves the balance up front.
253
+ sig { returns(Integer) }
254
+ attr_accessor :reserved
255
+
256
+ # What this batch has done to your credit balance.
246
257
  sig do
247
- params(charged: Integer, estimated: Integer).returns(T.attached_class)
258
+ params(net: Integer, refunded: Integer, reserved: Integer).returns(
259
+ T.attached_class
260
+ )
248
261
  end
249
262
  def self.new(
250
- # Credits used by successful pages.
251
- charged:,
252
- # Credits reserved when the batch was accepted.
253
- estimated:
263
+ # `reserved` minus `refunded` — what the batch has cost so far. Equal to
264
+ # `reserved` until the batch settles.
265
+ net:,
266
+ # Credits returned for pages that did not succeed. Stays 0 until the batch reaches
267
+ # a final status, then settles in one movement.
268
+ refunded:,
269
+ # Credits debited from your balance the moment the batch was accepted. This is a
270
+ # charge, not a forecast — the whole amount leaves the balance up front.
271
+ reserved:
254
272
  )
255
273
  end
256
274
 
257
- sig { override.returns({ charged: Integer, estimated: Integer }) }
275
+ sig do
276
+ override.returns(
277
+ { net: Integer, refunded: Integer, reserved: Integer }
278
+ )
279
+ end
258
280
  def to_hash
259
281
  end
260
282
  end
261
283
 
262
- class Input < ContextDev::Internal::Type::BaseModel
263
- OrHash =
284
+ # What each page is returned as. Matches `input.data.format` on the submit
285
+ # request.
286
+ module Format
287
+ extend ContextDev::Internal::Type::Enum
288
+
289
+ TaggedSymbol =
264
290
  T.type_alias do
265
- T.any(
266
- ContextDev::Models::BatchRetrieveResponse::Input,
267
- ContextDev::Internal::AnyHash
268
- )
291
+ T.all(Symbol, ContextDev::Models::BatchRetrieveResponse::Format)
269
292
  end
293
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
270
294
 
271
- # Pages accepted, or the crawl page limit. Credits are reserved for this count.
272
- sig { returns(Integer) }
273
- attr_accessor :accepted
274
-
275
- # Duplicate URL and `itemId` pairs skipped. Always 0 for crawls.
276
- sig { returns(Integer) }
277
- attr_accessor :duplicates
278
-
279
- # Pages rejected during validation.
280
- sig { returns(Integer) }
281
- attr_accessor :invalid
282
-
283
- # Pages submitted before validation. For a crawl, the page limit.
284
- sig { returns(Integer) }
285
- attr_accessor :submitted
286
-
287
- # Submission counts.
288
- sig do
289
- params(
290
- accepted: Integer,
291
- duplicates: Integer,
292
- invalid: Integer,
293
- submitted: Integer
294
- ).returns(T.attached_class)
295
- end
296
- def self.new(
297
- # Pages accepted, or the crawl page limit. Credits are reserved for this count.
298
- accepted:,
299
- # Duplicate URL and `itemId` pairs skipped. Always 0 for crawls.
300
- duplicates:,
301
- # Pages rejected during validation.
302
- invalid:,
303
- # Pages submitted before validation. For a crawl, the page limit.
304
- submitted:
305
- )
306
- end
295
+ MARKDOWN =
296
+ T.let(
297
+ :markdown,
298
+ ContextDev::Models::BatchRetrieveResponse::Format::TaggedSymbol
299
+ )
300
+ HTML =
301
+ T.let(
302
+ :html,
303
+ ContextDev::Models::BatchRetrieveResponse::Format::TaggedSymbol
304
+ )
307
305
 
308
306
  sig do
309
307
  override.returns(
310
- {
311
- accepted: Integer,
312
- duplicates: Integer,
313
- invalid: Integer,
314
- submitted: Integer
315
- }
308
+ T::Array[
309
+ ContextDev::Models::BatchRetrieveResponse::Format::TaggedSymbol
310
+ ]
316
311
  )
317
312
  end
318
- def to_hash
313
+ def self.values
319
314
  end
320
315
  end
321
316
 
@@ -350,7 +345,7 @@ module ContextDev
350
345
  end
351
346
  end
352
347
 
353
- # How pages are selected.
348
+ # How pages were selected. Matches `input.mode` on the submit request.
354
349
  module Mode
355
350
  extend ContextDev::Internal::Type::Enum
356
351
 
@@ -395,8 +390,9 @@ module ContextDev
395
390
  sig { returns(Integer) }
396
391
  attr_accessor :failed
397
392
 
398
- # Accepted pages not yet attempted. Always 0 once the batch completes; a crawl can
399
- # finish under its page limit when the site has no more reachable pages.
393
+ # Reserved pages not yet attempted. A cancelled batch keeps reporting the URLs it
394
+ # never reached; a crawl whose `input.reserved_is_ceiling` is true reports 0 once
395
+ # final, because its unspent budget was never real pages.
400
396
  sig { returns(Integer) }
401
397
  attr_accessor :pending
402
398
 
@@ -404,7 +400,7 @@ module ContextDev
404
400
  sig { returns(Integer) }
405
401
  attr_accessor :succeeded
406
402
 
407
- # Current processing counts. Use `status` to check completion.
403
+ # Pages attempted so far. Use `status` to check completion.
408
404
  sig do
409
405
  params(failed: Integer, pending: Integer, succeeded: Integer).returns(
410
406
  T.attached_class
@@ -413,8 +409,9 @@ module ContextDev
413
409
  def self.new(
414
410
  # Pages that could not be scraped.
415
411
  failed:,
416
- # Accepted pages not yet attempted. Always 0 once the batch completes; a crawl can
417
- # finish under its page limit when the site has no more reachable pages.
412
+ # Reserved pages not yet attempted. A cancelled batch keeps reporting the URLs it
413
+ # never reached; a crawl whose `input.reserved_is_ceiling` is true reports 0 once
414
+ # final, because its unspent budget was never real pages.
418
415
  pending:,
419
416
  # Pages scraped successfully.
420
417
  succeeded:
@@ -451,8 +448,8 @@ module ContextDev
451
448
  end
452
449
  attr_accessor :files
453
450
 
454
- # Download links available when the batch finishes. GET /batch/{batch_id}/results
455
- # serves the same records as paginated JSON.
451
+ # Download links, available once the batch reaches a final status and null before
452
+ # then. GET /batch/{batch_id}/results serves the same records as paginated JSON.
456
453
  sig do
457
454
  params(
458
455
  expires_at: String,
@@ -631,38 +628,6 @@ module ContextDev
631
628
  end
632
629
  end
633
630
 
634
- # Output format.
635
- module Type
636
- extend ContextDev::Internal::Type::Enum
637
-
638
- TaggedSymbol =
639
- T.type_alias do
640
- T.all(Symbol, ContextDev::Models::BatchRetrieveResponse::Type)
641
- end
642
- OrSymbol = T.type_alias { T.any(Symbol, String) }
643
-
644
- MARKDOWN =
645
- T.let(
646
- :markdown,
647
- ContextDev::Models::BatchRetrieveResponse::Type::TaggedSymbol
648
- )
649
- HTML =
650
- T.let(
651
- :html,
652
- ContextDev::Models::BatchRetrieveResponse::Type::TaggedSymbol
653
- )
654
-
655
- sig do
656
- override.returns(
657
- T::Array[
658
- ContextDev::Models::BatchRetrieveResponse::Type::TaggedSymbol
659
- ]
660
- )
661
- end
662
- def self.values
663
- end
664
- end
665
-
666
631
  class KeyMetadata < ContextDev::Internal::Type::BaseModel
667
632
  OrHash =
668
633
  T.type_alias do
@@ -0,0 +1,60 @@
1
+ # typed: strong
2
+
3
+ module ContextDev
4
+ module Models
5
+ class BrandSearchParams < 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(ContextDev::BrandSearchParams, ContextDev::Internal::AnyHash)
12
+ end
13
+
14
+ # Search term, matched against brand names and domains by prefix (e.g. 'nike',
15
+ # 'nike.com', 'nik').
16
+ sig { returns(String) }
17
+ attr_accessor :query
18
+
19
+ # Optional comma-separated caller-defined tags for tracking this request. Tags are
20
+ # recorded on the request's usage log and can be used to filter usage on the
21
+ # dashboard usage page. Up to 20 tags, each 1-50 characters.
22
+ sig { returns(T.nilable(T::Array[String])) }
23
+ attr_reader :tags
24
+
25
+ sig { params(tags: T::Array[String]).void }
26
+ attr_writer :tags
27
+
28
+ sig do
29
+ params(
30
+ query: String,
31
+ tags: T::Array[String],
32
+ request_options: ContextDev::RequestOptions::OrHash
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(
36
+ # Search term, matched against brand names and domains by prefix (e.g. 'nike',
37
+ # 'nike.com', 'nik').
38
+ query:,
39
+ # Optional comma-separated caller-defined tags for tracking this request. Tags are
40
+ # recorded on the request's usage log and can be used to filter usage on the
41
+ # dashboard usage page. Up to 20 tags, each 1-50 characters.
42
+ tags: nil,
43
+ request_options: {}
44
+ )
45
+ end
46
+
47
+ sig do
48
+ override.returns(
49
+ {
50
+ query: String,
51
+ tags: T::Array[String],
52
+ request_options: ContextDev::RequestOptions
53
+ }
54
+ )
55
+ end
56
+ def to_hash
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,146 @@
1
+ # typed: strong
2
+
3
+ module ContextDev
4
+ module Models
5
+ class BrandSearchResponse < ContextDev::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ ContextDev::Models::BrandSearchResponse,
10
+ ContextDev::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Up to 10 matching brands, most popular first. Empty when nothing matches.
15
+ sig { returns(T::Array[ContextDev::Models::BrandSearchResponse::Result]) }
16
+ attr_accessor :results
17
+
18
+ # Metadata about the API key used for the request. Included in every response
19
+ # whenever a valid API key is provided, even when the response status is not 200.
20
+ sig do
21
+ returns(T.nilable(ContextDev::Models::BrandSearchResponse::KeyMetadata))
22
+ end
23
+ attr_reader :key_metadata
24
+
25
+ sig do
26
+ params(
27
+ key_metadata:
28
+ ContextDev::Models::BrandSearchResponse::KeyMetadata::OrHash
29
+ ).void
30
+ end
31
+ attr_writer :key_metadata
32
+
33
+ sig do
34
+ params(
35
+ results:
36
+ T::Array[ContextDev::Models::BrandSearchResponse::Result::OrHash],
37
+ key_metadata:
38
+ ContextDev::Models::BrandSearchResponse::KeyMetadata::OrHash
39
+ ).returns(T.attached_class)
40
+ end
41
+ def self.new(
42
+ # Up to 10 matching brands, most popular first. Empty when nothing matches.
43
+ results:,
44
+ # Metadata about the API key used for the request. Included in every response
45
+ # whenever a valid API key is provided, even when the response status is not 200.
46
+ key_metadata: nil
47
+ )
48
+ end
49
+
50
+ sig do
51
+ override.returns(
52
+ {
53
+ results: T::Array[ContextDev::Models::BrandSearchResponse::Result],
54
+ key_metadata: ContextDev::Models::BrandSearchResponse::KeyMetadata
55
+ }
56
+ )
57
+ end
58
+ def to_hash
59
+ end
60
+
61
+ class Result < ContextDev::Internal::Type::BaseModel
62
+ OrHash =
63
+ T.type_alias do
64
+ T.any(
65
+ ContextDev::Models::BrandSearchResponse::Result,
66
+ ContextDev::Internal::AnyHash
67
+ )
68
+ end
69
+
70
+ # The brand's domain.
71
+ sig { returns(String) }
72
+ attr_accessor :domain
73
+
74
+ # Logo link URL that serves the brand's logo, generated per request for the
75
+ # calling organization.
76
+ sig { returns(String) }
77
+ attr_accessor :logo
78
+
79
+ # The brand's name. Empty string when unknown.
80
+ sig { returns(String) }
81
+ attr_accessor :name
82
+
83
+ sig do
84
+ params(domain: String, logo: String, name: String).returns(
85
+ T.attached_class
86
+ )
87
+ end
88
+ def self.new(
89
+ # The brand's domain.
90
+ domain:,
91
+ # Logo link URL that serves the brand's logo, generated per request for the
92
+ # calling organization.
93
+ logo:,
94
+ # The brand's name. Empty string when unknown.
95
+ name:
96
+ )
97
+ end
98
+
99
+ sig { override.returns({ domain: String, logo: String, name: String }) }
100
+ def to_hash
101
+ end
102
+ end
103
+
104
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
105
+ OrHash =
106
+ T.type_alias do
107
+ T.any(
108
+ ContextDev::Models::BrandSearchResponse::KeyMetadata,
109
+ ContextDev::Internal::AnyHash
110
+ )
111
+ end
112
+
113
+ # The number of credits consumed by this request.
114
+ sig { returns(Integer) }
115
+ attr_accessor :credits_consumed
116
+
117
+ # The number of credits remaining for your organization after this request.
118
+ sig { returns(Integer) }
119
+ attr_accessor :credits_remaining
120
+
121
+ # Metadata about the API key used for the request. Included in every response
122
+ # whenever a valid API key is provided, even when the response status is not 200.
123
+ sig do
124
+ params(credits_consumed: Integer, credits_remaining: Integer).returns(
125
+ T.attached_class
126
+ )
127
+ end
128
+ def self.new(
129
+ # The number of credits consumed by this request.
130
+ credits_consumed:,
131
+ # The number of credits remaining for your organization after this request.
132
+ credits_remaining:
133
+ )
134
+ end
135
+
136
+ sig do
137
+ override.returns(
138
+ { credits_consumed: Integer, credits_remaining: Integer }
139
+ )
140
+ end
141
+ def to_hash
142
+ end
143
+ end
144
+ end
145
+ end
146
+ end