bidkit 0.1.0__py3-none-any.whl

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 (62) hide show
  1. bidkit/__init__.py +49 -0
  2. bidkit/auth.py +477 -0
  3. bidkit/client.py +212 -0
  4. bidkit/config.py +216 -0
  5. bidkit/errors.py +68 -0
  6. bidkit/generated/__init__.py +1 -0
  7. bidkit/generated/models/__init__.py +1 -0
  8. bidkit/generated/models/buy_browse.py +3162 -0
  9. bidkit/generated/models/buy_deal.py +604 -0
  10. bidkit/generated/models/buy_feed.py +1377 -0
  11. bidkit/generated/models/buy_marketing.py +891 -0
  12. bidkit/generated/models/buy_marketplace_insights.py +432 -0
  13. bidkit/generated/models/buy_offer.py +310 -0
  14. bidkit/generated/models/buy_order.py +1363 -0
  15. bidkit/generated/models/cancellation.py +6 -0
  16. bidkit/generated/models/case.py +99 -0
  17. bidkit/generated/models/commerce_catalog.py +318 -0
  18. bidkit/generated/models/commerce_charity.py +412 -0
  19. bidkit/generated/models/commerce_feedback.py +756 -0
  20. bidkit/generated/models/commerce_identity.py +511 -0
  21. bidkit/generated/models/commerce_media.py +333 -0
  22. bidkit/generated/models/commerce_message.py +390 -0
  23. bidkit/generated/models/commerce_notification.py +399 -0
  24. bidkit/generated/models/commerce_taxonomy.py +511 -0
  25. bidkit/generated/models/commerce_translation.py +121 -0
  26. bidkit/generated/models/commerce_vero.py +560 -0
  27. bidkit/generated/models/developer_analytics.py +116 -0
  28. bidkit/generated/models/developer_client_registration.py +140 -0
  29. bidkit/generated/models/developer_key_management.py +111 -0
  30. bidkit/generated/models/inquiry.py +95 -0
  31. bidkit/generated/models/return_.py +69 -0
  32. bidkit/generated/models/sell_account_v1.py +1929 -0
  33. bidkit/generated/models/sell_account_v2.py +1020 -0
  34. bidkit/generated/models/sell_analytics.py +629 -0
  35. bidkit/generated/models/sell_compliance.py +235 -0
  36. bidkit/generated/models/sell_edelivery_international_shipping.py +1993 -0
  37. bidkit/generated/models/sell_feed.py +853 -0
  38. bidkit/generated/models/sell_finances.py +1348 -0
  39. bidkit/generated/models/sell_fulfillment.py +2645 -0
  40. bidkit/generated/models/sell_inventory.py +2949 -0
  41. bidkit/generated/models/sell_leads.py +234 -0
  42. bidkit/generated/models/sell_listing.py +169 -0
  43. bidkit/generated/models/sell_logistics.py +1027 -0
  44. bidkit/generated/models/sell_marketing.py +3656 -0
  45. bidkit/generated/models/sell_metadata.py +2552 -0
  46. bidkit/generated/models/sell_negotiation.py +414 -0
  47. bidkit/generated/models/sell_recommendation.py +149 -0
  48. bidkit/generated/models/sell_stores.py +214 -0
  49. bidkit/generated/resources.py +19909 -0
  50. bidkit/models.py +43 -0
  51. bidkit/notifications.py +196 -0
  52. bidkit/pagination.py +137 -0
  53. bidkit/py.typed +0 -0
  54. bidkit/resource.py +166 -0
  55. bidkit/retry.py +81 -0
  56. bidkit/signing.py +162 -0
  57. bidkit/transport.py +499 -0
  58. bidkit-0.1.0.dist-info/METADATA +425 -0
  59. bidkit-0.1.0.dist-info/RECORD +62 -0
  60. bidkit-0.1.0.dist-info/WHEEL +4 -0
  61. bidkit-0.1.0.dist-info/licenses/LICENSE +21 -0
  62. bidkit-0.1.0.dist-info/licenses/NOTICE +15 -0
@@ -0,0 +1,604 @@
1
+ # ruff: noqa
2
+ # generated by datamodel-codegen:
3
+ # filename: buy_deal_v1_oas3.json
4
+
5
+ from __future__ import annotations
6
+
7
+ from bidkit.models import OpenStrEnum
8
+
9
+ from bidkit.models import EbayModel
10
+ from pydantic import Field
11
+
12
+
13
+ class CurrencyCodeEnum(OpenStrEnum):
14
+ aed = 'AED'
15
+ afn = 'AFN'
16
+ all = 'ALL'
17
+ amd = 'AMD'
18
+ ang = 'ANG'
19
+ aoa = 'AOA'
20
+ ars = 'ARS'
21
+ aud = 'AUD'
22
+ awg = 'AWG'
23
+ azn = 'AZN'
24
+ bam = 'BAM'
25
+ bbd = 'BBD'
26
+ bdt = 'BDT'
27
+ bgn = 'BGN'
28
+ bhd = 'BHD'
29
+ bif = 'BIF'
30
+ bmd = 'BMD'
31
+ bnd = 'BND'
32
+ bob = 'BOB'
33
+ brl = 'BRL'
34
+ bsd = 'BSD'
35
+ btn = 'BTN'
36
+ bwp = 'BWP'
37
+ byr = 'BYR'
38
+ bzd = 'BZD'
39
+ cad = 'CAD'
40
+ cdf = 'CDF'
41
+ chf = 'CHF'
42
+ clp = 'CLP'
43
+ cny = 'CNY'
44
+ cop = 'COP'
45
+ crc = 'CRC'
46
+ cup = 'CUP'
47
+ cve = 'CVE'
48
+ czk = 'CZK'
49
+ djf = 'DJF'
50
+ dkk = 'DKK'
51
+ dop = 'DOP'
52
+ dzd = 'DZD'
53
+ egp = 'EGP'
54
+ ern = 'ERN'
55
+ etb = 'ETB'
56
+ eur = 'EUR'
57
+ fjd = 'FJD'
58
+ fkp = 'FKP'
59
+ gbp = 'GBP'
60
+ gel = 'GEL'
61
+ ghs = 'GHS'
62
+ gip = 'GIP'
63
+ gmd = 'GMD'
64
+ gnf = 'GNF'
65
+ gtq = 'GTQ'
66
+ gyd = 'GYD'
67
+ hkd = 'HKD'
68
+ hnl = 'HNL'
69
+ hrk = 'HRK'
70
+ htg = 'HTG'
71
+ huf = 'HUF'
72
+ idr = 'IDR'
73
+ ils = 'ILS'
74
+ inr = 'INR'
75
+ iqd = 'IQD'
76
+ irr = 'IRR'
77
+ isk = 'ISK'
78
+ jmd = 'JMD'
79
+ jod = 'JOD'
80
+ jpy = 'JPY'
81
+ kes = 'KES'
82
+ kgs = 'KGS'
83
+ khr = 'KHR'
84
+ kmf = 'KMF'
85
+ kpw = 'KPW'
86
+ krw = 'KRW'
87
+ kwd = 'KWD'
88
+ kyd = 'KYD'
89
+ kzt = 'KZT'
90
+ lak = 'LAK'
91
+ lbp = 'LBP'
92
+ lkr = 'LKR'
93
+ lrd = 'LRD'
94
+ lsl = 'LSL'
95
+ ltl = 'LTL'
96
+ lyd = 'LYD'
97
+ mad = 'MAD'
98
+ mdl = 'MDL'
99
+ mga = 'MGA'
100
+ mkd = 'MKD'
101
+ mmk = 'MMK'
102
+ mnt = 'MNT'
103
+ mop = 'MOP'
104
+ mro_1 = 'MRO'
105
+ mur = 'MUR'
106
+ mvr = 'MVR'
107
+ mwk = 'MWK'
108
+ mxn = 'MXN'
109
+ myr = 'MYR'
110
+ mzn = 'MZN'
111
+ nad = 'NAD'
112
+ ngn = 'NGN'
113
+ nio = 'NIO'
114
+ nok = 'NOK'
115
+ npr = 'NPR'
116
+ nzd = 'NZD'
117
+ omr = 'OMR'
118
+ pab = 'PAB'
119
+ pen = 'PEN'
120
+ pgk = 'PGK'
121
+ php = 'PHP'
122
+ pkr = 'PKR'
123
+ pln = 'PLN'
124
+ pyg = 'PYG'
125
+ qar = 'QAR'
126
+ ron = 'RON'
127
+ rsd = 'RSD'
128
+ rub = 'RUB'
129
+ rwf = 'RWF'
130
+ sar = 'SAR'
131
+ sbd = 'SBD'
132
+ scr = 'SCR'
133
+ sdg = 'SDG'
134
+ sek = 'SEK'
135
+ sgd = 'SGD'
136
+ shp = 'SHP'
137
+ sll = 'SLL'
138
+ sos = 'SOS'
139
+ srd = 'SRD'
140
+ std = 'STD'
141
+ syp = 'SYP'
142
+ szl = 'SZL'
143
+ thb = 'THB'
144
+ tjs = 'TJS'
145
+ tmt = 'TMT'
146
+ tnd = 'TND'
147
+ top = 'TOP'
148
+ try_ = 'TRY'
149
+ ttd = 'TTD'
150
+ twd = 'TWD'
151
+ tzs = 'TZS'
152
+ uah = 'UAH'
153
+ ugx = 'UGX'
154
+ usd = 'USD'
155
+ uyu = 'UYU'
156
+ uzs = 'UZS'
157
+ vef = 'VEF'
158
+ vnd = 'VND'
159
+ vuv = 'VUV'
160
+ wst = 'WST'
161
+ xaf = 'XAF'
162
+ xcd = 'XCD'
163
+ xof = 'XOF'
164
+ xpf = 'XPF'
165
+ yer = 'YER'
166
+ zar = 'ZAR'
167
+ zmw = 'ZMW'
168
+ zwl = 'ZWL'
169
+
170
+
171
+ class ErrorParameter(EbayModel):
172
+ name: str | None = Field(None, description='The object of the error.')
173
+ value: str | None = Field(None, description='The value of the object.')
174
+
175
+
176
+ class Image(EbayModel):
177
+ height: str | None = Field(None, description='The height of the image.')
178
+ image_url: str | None = Field(
179
+ None, alias='imageUrl', description='The relative path to the image location.'
180
+ )
181
+ text: str | None = Field(None, description='The text associated with the image.')
182
+ width: str | None = Field(None, description='The width of the image.')
183
+
184
+
185
+ class ItemGroupTypeEnum(OpenStrEnum):
186
+ seller_defined_variations = 'SELLER_DEFINED_VARIATIONS'
187
+
188
+
189
+ class PriceTreatmentEnum(OpenStrEnum):
190
+ minimum_advertised_price = 'MINIMUM_ADVERTISED_PRICE'
191
+ list_price = 'LIST_PRICE'
192
+ markdown = 'MARKDOWN'
193
+
194
+
195
+ class ProgramEnum(OpenStrEnum):
196
+ ebay_plus = 'EBAY_PLUS'
197
+
198
+
199
+ class Terms(EbayModel):
200
+ full_text: str | None = Field(
201
+ None, alias='fullText', description='A full-text description of the terms.'
202
+ )
203
+ summary: str | None = Field(
204
+ None, description='A summarized description of the terms.'
205
+ )
206
+
207
+
208
+ class Amount(EbayModel):
209
+ currency: CurrencyCodeEnum | None = Field(
210
+ None,
211
+ description="The three-letter ISO 4217 code representing the currency of the amount in the value field. Default: The currency of the authenticated user's country.",
212
+ )
213
+ value: str | None = Field(
214
+ None,
215
+ description='The monetary value, in the currency specified by the currency field.',
216
+ )
217
+
218
+
219
+ class Coupon(EbayModel):
220
+ redemption_code: str | None = Field(
221
+ None, alias='redemptionCode', description='The coupon code.'
222
+ )
223
+ terms: Terms | None = Field(
224
+ None, description='The terms of use associated with the coupon.'
225
+ )
226
+
227
+
228
+ class Error(EbayModel):
229
+ category: str | None = Field(None, description='Identifies the type of error.')
230
+ domain: str | None = Field(
231
+ None,
232
+ description='Name for the primary system where the error occurred. This is relevant for application errors.',
233
+ )
234
+ error_id: int | None = Field(
235
+ None, alias='errorId', description='A unique number to identify the error.'
236
+ )
237
+ input_ref_ids: list[str] | None = Field(
238
+ None,
239
+ alias='inputRefIds',
240
+ description='An array of request elements most closely associated to the error.',
241
+ )
242
+ long_message: str | None = Field(
243
+ None,
244
+ alias='longMessage',
245
+ description='A more detailed explanation of the error.',
246
+ )
247
+ message: str | None = Field(
248
+ None,
249
+ description="Information on how to correct the problem, in the end user's terms and language where applicable.",
250
+ )
251
+ output_ref_ids: list[str] | None = Field(
252
+ None,
253
+ alias='outputRefIds',
254
+ description='An array of request elements most closely associated to the error.',
255
+ )
256
+ parameters: list[ErrorParameter] | None = Field(
257
+ None,
258
+ description='An array of name/value pairs that describe details the error condition. These are useful when multiple errors are returned.',
259
+ )
260
+ subdomain: str | None = Field(
261
+ None,
262
+ description='Further helps indicate which subsystem the error is coming from. System subcategories include: Initialization, Serialization, Security, Monitoring, Rate Limiting, etc.',
263
+ )
264
+
265
+
266
+ class Event(EbayModel):
267
+ applicable_coupons: list[Coupon] | None = Field(
268
+ None,
269
+ alias='applicableCoupons',
270
+ description='A list of coupons associated with the event.',
271
+ )
272
+ description: str | None = Field(None, description='The event description.')
273
+ end_date: str | None = Field(
274
+ None, alias='endDate', description='The end date for the event.'
275
+ )
276
+ event_affiliate_web_url: str | None = Field(
277
+ None,
278
+ alias='eventAffiliateWebUrl',
279
+ description='The URL of the View Event page for the event, which includes the affiliate tracking ID.',
280
+ )
281
+ event_id: str | None = Field(
282
+ None, alias='eventId', description='The unique identifier for the event.'
283
+ )
284
+ event_web_url: str | None = Field(
285
+ None, alias='eventWebUrl', description='The web URL for the event.'
286
+ )
287
+ images: list[Image] | None = Field(None, description='The images for the event.')
288
+ start_date: str | None = Field(
289
+ None, alias='startDate', description='The start date for the event.'
290
+ )
291
+ terms: Terms | None = Field(
292
+ None, description='The terms associated with the event.'
293
+ )
294
+ title: str | None = Field(None, description='The title of the event.')
295
+
296
+
297
+ class EventSearchResponse(EbayModel):
298
+ events: list[Event] | None = Field(
299
+ None, description='A list of results that match the search criteria.'
300
+ )
301
+ href: str | None = Field(
302
+ None, description='The relative path to the current set of results.'
303
+ )
304
+ limit: int | None = Field(
305
+ None,
306
+ description='The maximum number of items, from the current result set, returned on a single page. Default: 20',
307
+ )
308
+ next: str | None = Field(
309
+ None, description='The relative path to the next set of results.'
310
+ )
311
+ offset: int | None = Field(
312
+ None,
313
+ description='The number of items that will be skipped in the result set. This is used with the limit field to control the pagination of the output. For example, if the offset is set to 0 and the limit is set to 10 , the method will retrieve items 1 through 10 from the list of items returned.',
314
+ )
315
+ prev: str | None = Field(
316
+ None, description='The relative path to the previous set of results.'
317
+ )
318
+ total: int | None = Field(
319
+ None,
320
+ description='The total number of matches for the specified search criteria.',
321
+ )
322
+
323
+
324
+ class MarketingPrice(EbayModel):
325
+ discount_amount: Amount | None = Field(
326
+ None,
327
+ alias='discountAmount',
328
+ description='The monetary value of the seller discount.',
329
+ )
330
+ discount_percentage: str | None = Field(
331
+ None,
332
+ alias='discountPercentage',
333
+ description='The percentage of the seller discount based on the value returned in the originalPrice field.',
334
+ )
335
+ original_price: Amount | None = Field(
336
+ None,
337
+ alias='originalPrice',
338
+ description='The monetary value of the item prior to the discount.',
339
+ )
340
+ price_treatment: PriceTreatmentEnum | None = Field(
341
+ None,
342
+ alias='priceTreatment',
343
+ description='The pricing treatment (discount) that was applied to the price of the item. Note: The pricing treatment affects how and where the discounted price can be displayed.',
344
+ )
345
+
346
+
347
+ class ShippingOption(EbayModel):
348
+ shipping_cost: Amount | None = Field(
349
+ None,
350
+ alias='shippingCost',
351
+ description='The final shipping cost for all items after all discounts are applied. Note: The price does include the value-added tax (VAT) for applicable jurisdictions when requested from supported marketplaces. In this case, users must pass the X-EBAY-C-MARKETPLACE-ID request header specifying the supported marketplace (such as EBAY_GB ) to see the VAT-inclusive pricing.',
352
+ )
353
+ shipping_cost_type: str | None = Field(
354
+ None,
355
+ alias='shippingCostType',
356
+ description='The class of the shipping cost. Valid Values: FIXED or CALCULATED Code so that your app gracefully handles any future changes to this list.',
357
+ )
358
+
359
+
360
+ class DealItem(EbayModel):
361
+ additional_images: list[Image] | None = Field(
362
+ None,
363
+ alias='additionalImages',
364
+ description='The additional images for the deal item.',
365
+ )
366
+ category_ancestor_ids: list[str] | None = Field(
367
+ None,
368
+ alias='categoryAncestorIds',
369
+ description='The IDs of the ancestors for the primary category.',
370
+ )
371
+ category_id: str | None = Field(
372
+ None,
373
+ alias='categoryId',
374
+ description='The ID of the leaf category for the deal item. A leaf category is the lowest level in a category and has no children.',
375
+ )
376
+ commissionable: bool | None = Field(
377
+ None,
378
+ description='A boolean value specifying whether the listing has commission.',
379
+ )
380
+ deal_affiliate_web_url: str | None = Field(
381
+ None,
382
+ alias='dealAffiliateWebUrl',
383
+ description='The deal associated with the item with affiliate attribution.',
384
+ )
385
+ deal_end_date: str | None = Field(
386
+ None, alias='dealEndDate', description='The date after which the deal ends.'
387
+ )
388
+ deal_start_date: str | None = Field(
389
+ None, alias='dealStartDate', description='The date on which the deal starts.'
390
+ )
391
+ deal_web_url: str | None = Field(
392
+ None,
393
+ alias='dealWebUrl',
394
+ description='The web URL for the deal associated with the item.',
395
+ )
396
+ energy_efficiency_class: str | None = Field(
397
+ None,
398
+ alias='energyEfficiencyClass',
399
+ description='A string value specifying the Energy Efficiency class.',
400
+ )
401
+ image: Image | None = Field(
402
+ None, description='The primary image for the deal item.'
403
+ )
404
+ item_affiliate_web_url: str | None = Field(
405
+ None,
406
+ alias='itemAffiliateWebUrl',
407
+ description='The item web URL with affiliate attribution.',
408
+ )
409
+ item_group_id: str | None = Field(
410
+ None,
411
+ alias='itemGroupId',
412
+ description='The unique identifier for the deal item group. This is the parent item ID for the seller-defined variations. Note: This field is returned for multiple-SKU items.',
413
+ )
414
+ item_group_type: ItemGroupTypeEnum | None = Field(
415
+ None,
416
+ alias='itemGroupType',
417
+ description='An enumeration value that indicates the type of item group. An item group contains items that have various aspect differences, such as color, size, or storage capacity.',
418
+ )
419
+ item_id: str | None = Field(
420
+ None,
421
+ alias='itemId',
422
+ description='The unique identifier for the deal item. Note: This field is only returned for single-SKU items.',
423
+ )
424
+ item_web_url: str | None = Field(
425
+ None, alias='itemWebUrl', description='The web URL for the deal item.'
426
+ )
427
+ legacy_item_id: str | None = Field(
428
+ None,
429
+ alias='legacyItemId',
430
+ description='The legacy item ID associated with the deal item.',
431
+ )
432
+ marketing_price: MarketingPrice | None = Field(
433
+ None,
434
+ alias='marketingPrice',
435
+ description='The original price for the deal item, and the discount amount and percentage.',
436
+ )
437
+ price: Amount | None = Field(
438
+ None,
439
+ description='The price for the deal item. Note: The price does include the value-added tax (VAT) for applicable jurisdictions when requested from supported marketplaces. In this case, users must pass the X-EBAY-C-MARKETPLACE-ID request header specifying the supported marketplace (such as EBAY_GB ) to see the VAT-inclusive pricing. For more information on VAT, refer to VAT Obligations in the EU .',
440
+ )
441
+ qualified_programs: list[ProgramEnum] | None = Field(
442
+ None,
443
+ alias='qualifiedPrograms',
444
+ description='A list of programs applicable to the item.',
445
+ )
446
+ shipping_options: list[ShippingOption] | None = Field(
447
+ None,
448
+ alias='shippingOptions',
449
+ description='The cost required to ship the deal item. Note: For items with calculated shipping, this array is only returned if the X-EBAY-C-ENDUSERCTX header is supplied.',
450
+ )
451
+ title: str | None = Field(None, description='The title of the deal item.')
452
+ unit_price: Amount | None = Field(
453
+ None,
454
+ alias='unitPrice',
455
+ description='The price per unit for the deal item. Some European countries require listings for certain types of products to include the price per unit so that buyers can accurately compare prices. For example: "unitPricingMeasure": "100g", "unitPrice": { "value": "7.99", "currency": "GBP"',
456
+ )
457
+ unit_pricing_measure: str | None = Field(
458
+ None,
459
+ alias='unitPricingMeasure',
460
+ description='The designation used to specify the quantity of the deal item, such as size, weight, volume, and count. This helps buyers compare prices. For example, the following tells the buyer that the item is 7.99 per 100 grams. "unitPricingMeasure": "100g", "unitPrice": { "value": "7.99", "currency": "GBP"',
461
+ )
462
+
463
+
464
+ class DealItemSearchResponse(EbayModel):
465
+ deal_items: list[DealItem] | None = Field(
466
+ None,
467
+ alias='dealItems',
468
+ description='A list of deal items that match the search criteria.',
469
+ )
470
+ href: str | None = Field(
471
+ None, description='The relative path to the current set of results.'
472
+ )
473
+ limit: int | None = Field(
474
+ None,
475
+ description='The maximum number of items, from the current result set, returned on a single page. Default: 20',
476
+ )
477
+ next: str | None = Field(
478
+ None, description='The relative path to the next set of results.'
479
+ )
480
+ offset: int | None = Field(
481
+ None,
482
+ description='The number of items that will be skipped in the result set. This is used with the limit field to control the pagination of the output. For example, if the offset is set to 0 and the limit is set to 10 , the method will retrieve items 1 through 10 from the list of items returned.',
483
+ )
484
+ prev: str | None = Field(
485
+ None, description='The relative path to the previous set of results.'
486
+ )
487
+ total: int | None = Field(
488
+ None, description='The total number of matches for the search criteria.'
489
+ )
490
+
491
+
492
+ class EventItem(EbayModel):
493
+ additional_images: list[Image] | None = Field(
494
+ None,
495
+ alias='additionalImages',
496
+ description='The additional images for the event item.',
497
+ )
498
+ category_ancestor_ids: list[str] | None = Field(
499
+ None,
500
+ alias='categoryAncestorIds',
501
+ description='The IDs of the ancestors for the primary category.',
502
+ )
503
+ category_id: str | None = Field(
504
+ None,
505
+ alias='categoryId',
506
+ description='The ID of the leaf category for the event item. A leaf category is the lowest level in a category and has no children.',
507
+ )
508
+ energy_efficiency_class: str | None = Field(
509
+ None,
510
+ alias='energyEfficiencyClass',
511
+ description='A string value specifying the Energy Efficiency class.',
512
+ )
513
+ event_id: str | None = Field(
514
+ None,
515
+ alias='eventId',
516
+ description='The unique event identifier associated with the item.',
517
+ )
518
+ image: Image | None = Field(None, description='The image for the event item.')
519
+ item_affiliate_web_url: str | None = Field(
520
+ None,
521
+ alias='itemAffiliateWebUrl',
522
+ description='The item web URL with affiliate attribution.',
523
+ )
524
+ item_group_id: str | None = Field(
525
+ None,
526
+ alias='itemGroupId',
527
+ description='The unique identifier for the event item group. This is the parent item ID for the seller-defined variations. Note: This field is returned for multiple-SKU items.',
528
+ )
529
+ item_group_type: ItemGroupTypeEnum | None = Field(
530
+ None,
531
+ alias='itemGroupType',
532
+ description='An enumeration value that indicates the type of item group. An item group contains items that have various aspect differences, such as color, size, or storage capacity.',
533
+ )
534
+ item_id: str | None = Field(
535
+ None,
536
+ alias='itemId',
537
+ description='The unique identifier for the event item. Note: This field is only returned for single-SKU items.',
538
+ )
539
+ item_web_url: str | None = Field(
540
+ None, alias='itemWebUrl', description='The web URL for the event item.'
541
+ )
542
+ legacy_item_id: str | None = Field(
543
+ None,
544
+ alias='legacyItemId',
545
+ description='The legacy item ID associated with the event item.',
546
+ )
547
+ marketing_price: MarketingPrice | None = Field(
548
+ None,
549
+ alias='marketingPrice',
550
+ description='The original price for the event item, and the discount amount and percentage.',
551
+ )
552
+ price: Amount | None = Field(
553
+ None, description='The applicable price for the event item.'
554
+ )
555
+ qualified_programs: list[ProgramEnum] | None = Field(
556
+ None,
557
+ alias='qualifiedPrograms',
558
+ description='A list of programs applicable to the event item.',
559
+ )
560
+ shipping_options: list[ShippingOption] | None = Field(
561
+ None,
562
+ alias='shippingOptions',
563
+ description='The cost required to ship the event item. Note: For items with calculated shipping, this array is only returned if the X-EBAY-C-ENDUSERCTX header is supplied.',
564
+ )
565
+ title: str | None = Field(None, description='The title of the event item.')
566
+ unit_price: Amount | None = Field(
567
+ None,
568
+ alias='unitPrice',
569
+ description='The price per unit for the event item. Some European countries require listings for certain types of products to include the price per unit so that buyers can accurately compare prices. For example: "unitPricingMeasure": "100g", "unitPrice": { "value": "7.99", "currency": "GBP"',
570
+ )
571
+ unit_pricing_measure: str | None = Field(
572
+ None,
573
+ alias='unitPricingMeasure',
574
+ description='The designation used to specify the quantity of the event item, such as size, weight, volume, and count. This helps buyers compare prices. For example, the following tells the buyer that the item is 7.99 per 100 grams. "unitPricingMeasure": "100g", "unitPrice": { "value": "7.99", "currency": "GBP"',
575
+ )
576
+
577
+
578
+ class EventItemSearchResponse(EbayModel):
579
+ event_items: list[EventItem] | None = Field(
580
+ None,
581
+ alias='eventItems',
582
+ description='A list of event items that match the search criteria.',
583
+ )
584
+ href: str | None = Field(
585
+ None, description='The relative path to the current set of results.'
586
+ )
587
+ limit: int | None = Field(
588
+ None,
589
+ description='The maximum number of items, from the current result set, returned on a single page. Default: 20',
590
+ )
591
+ next: str | None = Field(
592
+ None, description='The relative path to the next set of results.'
593
+ )
594
+ offset: int | None = Field(
595
+ None,
596
+ description='The number of items that will be skipped in the result set. This is used with the limit field to control the pagination of the output. For example, if the offset is set to 0 and the limit is set to 10 , the method will retrieve items 1 through 10 from the list of items returned.',
597
+ )
598
+ prev: str | None = Field(
599
+ None, description='The relative path to the previous set of results.'
600
+ )
601
+ total: int | None = Field(
602
+ None,
603
+ description='The total number of matches for the specified search criteria.',
604
+ )