amazon-creatorsapi-python-sdk 1.0.0__py3-none-any.whl → 1.2.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 (109) hide show
  1. {amazon_creatorsapi_python_sdk-1.0.0.dist-info → amazon_creatorsapi_python_sdk-1.2.0.dist-info}/METADATA +11 -5
  2. amazon_creatorsapi_python_sdk-1.2.0.dist-info/RECORD +109 -0
  3. {amazon_creatorsapi_python_sdk-1.0.0.dist-info → amazon_creatorsapi_python_sdk-1.2.0.dist-info}/WHEEL +1 -1
  4. creatorsapi_python_sdk/__init__.py +128 -127
  5. creatorsapi_python_sdk/api/__init__.py +5 -5
  6. creatorsapi_python_sdk/api/default_api.py +2427 -2412
  7. creatorsapi_python_sdk/api_client.py +915 -912
  8. creatorsapi_python_sdk/api_response.py +21 -21
  9. creatorsapi_python_sdk/auth/__init__.py +21 -21
  10. creatorsapi_python_sdk/auth/oauth2_config.py +139 -123
  11. creatorsapi_python_sdk/auth/oauth2_token_manager.py +133 -120
  12. creatorsapi_python_sdk/configuration.py +455 -455
  13. creatorsapi_python_sdk/exceptions.py +204 -204
  14. creatorsapi_python_sdk/models/__init__.py +111 -110
  15. creatorsapi_python_sdk/models/access_denied_exception_response_content.py +97 -97
  16. creatorsapi_python_sdk/models/access_denied_reason.py +45 -45
  17. creatorsapi_python_sdk/models/availability.py +44 -44
  18. creatorsapi_python_sdk/models/browse_node.py +116 -116
  19. creatorsapi_python_sdk/models/browse_node_ancestor.py +103 -103
  20. creatorsapi_python_sdk/models/browse_node_child.py +96 -96
  21. creatorsapi_python_sdk/models/browse_node_info.py +106 -106
  22. creatorsapi_python_sdk/models/browse_nodes_result.py +100 -100
  23. creatorsapi_python_sdk/models/by_line_info.py +111 -111
  24. creatorsapi_python_sdk/models/classifications.py +101 -101
  25. creatorsapi_python_sdk/models/condition.py +44 -44
  26. creatorsapi_python_sdk/models/content_info.py +113 -113
  27. creatorsapi_python_sdk/models/content_rating.py +96 -96
  28. creatorsapi_python_sdk/models/contributor.py +98 -98
  29. creatorsapi_python_sdk/models/customer_reviews.py +98 -98
  30. creatorsapi_python_sdk/models/deal_details.py +102 -102
  31. creatorsapi_python_sdk/models/delivery_flag.py +46 -46
  32. creatorsapi_python_sdk/models/dimension_based_attribute.py +111 -111
  33. creatorsapi_python_sdk/models/error_data.py +94 -94
  34. creatorsapi_python_sdk/models/external_ids.py +106 -106
  35. creatorsapi_python_sdk/models/feed.py +98 -98
  36. creatorsapi_python_sdk/models/get_browse_nodes_request_content.py +107 -107
  37. creatorsapi_python_sdk/models/get_browse_nodes_resource.py +44 -44
  38. creatorsapi_python_sdk/models/get_browse_nodes_response_content.py +106 -106
  39. creatorsapi_python_sdk/models/get_feed_request_content.py +93 -93
  40. creatorsapi_python_sdk/models/get_feed_response_content.py +92 -92
  41. creatorsapi_python_sdk/models/get_items_request_content.py +124 -124
  42. creatorsapi_python_sdk/models/get_items_resource.py +76 -76
  43. creatorsapi_python_sdk/models/get_items_response_content.py +106 -106
  44. creatorsapi_python_sdk/models/get_report_request_content.py +93 -93
  45. creatorsapi_python_sdk/models/get_report_response_content.py +92 -92
  46. creatorsapi_python_sdk/models/get_variations_request_content.py +135 -135
  47. creatorsapi_python_sdk/models/get_variations_resource.py +79 -79
  48. creatorsapi_python_sdk/models/get_variations_response_content.py +106 -106
  49. creatorsapi_python_sdk/models/image_size.py +96 -96
  50. creatorsapi_python_sdk/models/image_type.py +111 -111
  51. creatorsapi_python_sdk/models/images.py +105 -105
  52. creatorsapi_python_sdk/models/internal_server_exception_response_content.py +94 -94
  53. creatorsapi_python_sdk/models/item.py +138 -138
  54. creatorsapi_python_sdk/models/item_info.py +156 -156
  55. creatorsapi_python_sdk/models/items_result.py +100 -100
  56. creatorsapi_python_sdk/models/language_type.py +94 -94
  57. creatorsapi_python_sdk/models/languages.py +104 -104
  58. creatorsapi_python_sdk/models/list_feeds_response_content.py +100 -100
  59. creatorsapi_python_sdk/models/list_reports_response_content.py +100 -100
  60. creatorsapi_python_sdk/models/manufacture_info.py +106 -106
  61. creatorsapi_python_sdk/models/money.py +96 -96
  62. creatorsapi_python_sdk/models/multi_valued_attribute.py +96 -96
  63. creatorsapi_python_sdk/models/offer_availability_v2.py +98 -98
  64. creatorsapi_python_sdk/models/offer_condition_v2.py +96 -96
  65. creatorsapi_python_sdk/models/offer_listing_v2.py +133 -133
  66. creatorsapi_python_sdk/models/offer_loyalty_points_v2.py +92 -92
  67. creatorsapi_python_sdk/models/offer_merchant_info_v2.py +94 -94
  68. creatorsapi_python_sdk/models/offer_price_v2.py +113 -113
  69. creatorsapi_python_sdk/models/offer_saving_basis.py +101 -101
  70. creatorsapi_python_sdk/models/offer_savings.py +98 -98
  71. creatorsapi_python_sdk/models/offer_type.py +45 -45
  72. creatorsapi_python_sdk/models/offers_v2.py +100 -100
  73. creatorsapi_python_sdk/models/product_info.py +124 -124
  74. creatorsapi_python_sdk/models/rating.py +92 -92
  75. creatorsapi_python_sdk/models/refinement.py +104 -104
  76. creatorsapi_python_sdk/models/refinement_bin.py +94 -94
  77. creatorsapi_python_sdk/models/report_metadata.py +98 -98
  78. creatorsapi_python_sdk/models/resource_not_found_exception_response_content.py +98 -98
  79. creatorsapi_python_sdk/models/saving_basis_type.py +46 -46
  80. creatorsapi_python_sdk/models/search_items_request_content.py +242 -242
  81. creatorsapi_python_sdk/models/search_items_resource.py +77 -77
  82. creatorsapi_python_sdk/models/search_items_response_content.py +106 -106
  83. creatorsapi_python_sdk/models/search_refinements.py +110 -110
  84. creatorsapi_python_sdk/models/search_result.py +110 -110
  85. creatorsapi_python_sdk/models/single_boolean_valued_attribute.py +96 -96
  86. creatorsapi_python_sdk/models/single_integer_valued_attribute.py +96 -96
  87. creatorsapi_python_sdk/models/single_string_valued_attribute.py +96 -96
  88. creatorsapi_python_sdk/models/sort_by.py +48 -48
  89. creatorsapi_python_sdk/models/technical_info.py +102 -102
  90. creatorsapi_python_sdk/models/throttle_exception_response_content.py +98 -98
  91. creatorsapi_python_sdk/models/trade_in_info.py +98 -98
  92. creatorsapi_python_sdk/models/trade_in_price.py +96 -96
  93. creatorsapi_python_sdk/models/unauthorized_exception_reason.py +51 -51
  94. creatorsapi_python_sdk/models/unauthorized_exception_response_content.py +97 -97
  95. creatorsapi_python_sdk/models/unit_based_attribute.py +98 -98
  96. creatorsapi_python_sdk/models/validation_exception_field.py +94 -94
  97. creatorsapi_python_sdk/models/validation_exception_reason.py +48 -48
  98. creatorsapi_python_sdk/models/validation_exception_response_content.py +107 -107
  99. creatorsapi_python_sdk/models/variation_attribute.py +94 -94
  100. creatorsapi_python_sdk/models/variation_dimension.py +98 -98
  101. creatorsapi_python_sdk/models/variation_summary.py +110 -104
  102. creatorsapi_python_sdk/models/variation_summary_price.py +101 -0
  103. creatorsapi_python_sdk/models/variations_result.py +106 -106
  104. creatorsapi_python_sdk/models/website_sales_rank.py +98 -98
  105. creatorsapi_python_sdk/rest.py +262 -262
  106. amazon_creatorsapi_python_sdk-1.0.0.dist-info/RECORD +0 -108
  107. {amazon_creatorsapi_python_sdk-1.0.0.dist-info → amazon_creatorsapi_python_sdk-1.2.0.dist-info}/licenses/LICENSE.txt +0 -0
  108. {amazon_creatorsapi_python_sdk-1.0.0.dist-info → amazon_creatorsapi_python_sdk-1.2.0.dist-info}/licenses/NOTICE.txt +0 -0
  109. {amazon_creatorsapi_python_sdk-1.0.0.dist-info → amazon_creatorsapi_python_sdk-1.2.0.dist-info}/top_level.txt +0 -0
@@ -1,242 +1,242 @@
1
- # coding: utf-8
2
-
3
- """
4
- Copyright 2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
5
-
6
- Licensed under the Apache License, Version 2.0 (the "License").
7
- You may not use this file except in compliance with the License.
8
- A copy of the License is located at
9
-
10
- http://www.apache.org/licenses/LICENSE-2.0
11
-
12
- or in the "license" file accompanying this file. This file is distributed
13
- on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
14
- express or implied. See the License for the specific language governing
15
- permissions and limitations under the License.
16
-
17
- """ # noqa: E501
18
-
19
-
20
-
21
- from __future__ import annotations
22
- import pprint
23
- import re # noqa: F401
24
- import json
25
-
26
- from pydantic import BaseModel, ConfigDict, Field, field_validator
27
- from typing import Any, ClassVar, Dict, List, Optional, Union
28
- from typing_extensions import Annotated
29
- from creatorsapi_python_sdk.models.availability import Availability
30
- from creatorsapi_python_sdk.models.condition import Condition
31
- from creatorsapi_python_sdk.models.delivery_flag import DeliveryFlag
32
- from creatorsapi_python_sdk.models.search_items_resource import SearchItemsResource
33
- from creatorsapi_python_sdk.models.sort_by import SortBy
34
- from typing import Optional, Set
35
- from typing_extensions import Self
36
-
37
- class SearchItemsRequestContent(BaseModel):
38
- """
39
- The request object for the search items operation. It contains the request parameters for the search items operation.
40
- """ # noqa: E501
41
- actor: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = Field(default=None, description="Actor name associated with the item. You can enter all or part of the name.")
42
- artist: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = Field(default=None, description="Artist name associated with the item. You can enter all or part of the name.")
43
- author: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = Field(default=None, description="Author name associated with the item. You can enter all or part of the name.")
44
- availability: Optional[Availability] = None
45
- brand: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = Field(default=None, description="Brand name associated with the item. You can enter all or part of the name.")
46
- browse_node_id: Optional[Annotated[str, Field(strict=True, max_length=19)]] = Field(default=None, description="A unique ID assigned by Amazon that identifies a product category/sub-category. The BrowseNodeId is a positive Long having max value upto Long.MAX_VALUE i.e. 9223372036854775807 (inclusive).", alias="browseNodeId")
47
- condition: Optional[Condition] = None
48
- currency_of_preference: Optional[Annotated[str, Field(strict=True, max_length=100)]] = Field(default=None, description="Currency of preference in which the prices information should be returned in response. By default the prices are returned in the default currency of the marketplace. Expected currency code format is the ISO 4217 currency code (i.e. USD, EUR etc.).", alias="currencyOfPreference")
49
- delivery_flags: Optional[Annotated[List[DeliveryFlag], Field(max_length=100)]] = Field(default=None, description="List of DeliveryFlag which denotes a certain delivery program.", alias="deliveryFlags")
50
- item_count: Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]] = Field(default=None, description="The number of items desired in SearchItems response.", alias="itemCount")
51
- item_page: Optional[Union[Annotated[float, Field(le=10, strict=True, ge=1)], Annotated[int, Field(le=10, strict=True, ge=1)]]] = Field(default=None, description="The specific page of items to be returned from the available Search Results.", alias="itemPage")
52
- keywords: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = Field(default=None, description="A word or phrase that describes an item i.e. the search query.")
53
- languages_of_preference: Optional[Annotated[List[Annotated[str, Field(strict=True, max_length=1000)]], Field(max_length=1)]] = Field(default=None, description="Languages in order of preference in which the item information should be returned in response. By default the item information is returned in the default language of the marketplace.", alias="languagesOfPreference")
54
- max_price: Optional[Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]]] = Field(default=None, description="The MaxPrice parameter filters search results to items with at least one offer price below the specified value.", alias="maxPrice")
55
- min_price: Optional[Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]]] = Field(default=None, description="The MinPrice parameter filters search results to items with at least one offer price above the specified value.", alias="minPrice")
56
- min_reviews_rating: Optional[Union[Annotated[float, Field(le=4, strict=True, ge=1)], Annotated[int, Field(le=4, strict=True, ge=1)]]] = Field(default=None, description="The MinReviewsRating parameter filters search results to items with customer review ratings above specified value.", alias="minReviewsRating")
57
- min_saving_percent: Optional[Union[Annotated[float, Field(le=99, strict=True, ge=1)], Annotated[int, Field(le=99, strict=True, ge=1)]]] = Field(default=None, description="The MinSavingPercent parameter filters search results to items with at least one offer having saving percentage above the specified value.", alias="minSavingPercent")
58
- partner_tag: Optional[Annotated[str, Field(strict=True, max_length=64)]] = Field(default=None, description="An alphanumeric token that uniquely identifies a partner. If the value of PartnerType is Associates, enter your Store Id or tracking ID.", alias="partnerTag")
59
- properties: Optional[Dict[str, Annotated[str, Field(strict=True)]]] = Field(default=None, description="Reserved parameter for specifying key-value pairs. This is a flexible mechanism for passing additional context or metadata to the API.")
60
- resources: Optional[Annotated[List[SearchItemsResource], Field(max_length=100)]] = Field(default=None, description="List of resources for SearchItems operation which specify the values to return.")
61
- search_index: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = Field(default=None, description="Indicates the product category to search. SearchIndex values differ by marketplace.", alias="searchIndex")
62
- sort_by: Optional[SortBy] = Field(default=None, alias="sortBy")
63
- title: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = Field(default=None, description="Title associated with the item.")
64
- __properties: ClassVar[List[str]] = ["actor", "artist", "author", "availability", "brand", "browseNodeId", "condition", "currencyOfPreference", "deliveryFlags", "itemCount", "itemPage", "keywords", "languagesOfPreference", "maxPrice", "minPrice", "minReviewsRating", "minSavingPercent", "partnerTag", "properties", "resources", "searchIndex", "sortBy", "title"]
65
-
66
- @field_validator('actor')
67
- def actor_validate_regular_expression(cls, value):
68
- """Validates the regular expression"""
69
- if value is None:
70
- return value
71
-
72
- if not re.match(r".*\S.*", value):
73
- raise ValueError(r"must validate the regular expression /.*\S.*/")
74
- return value
75
-
76
- @field_validator('artist')
77
- def artist_validate_regular_expression(cls, value):
78
- """Validates the regular expression"""
79
- if value is None:
80
- return value
81
-
82
- if not re.match(r".*\S.*", value):
83
- raise ValueError(r"must validate the regular expression /.*\S.*/")
84
- return value
85
-
86
- @field_validator('author')
87
- def author_validate_regular_expression(cls, value):
88
- """Validates the regular expression"""
89
- if value is None:
90
- return value
91
-
92
- if not re.match(r".*\S.*", value):
93
- raise ValueError(r"must validate the regular expression /.*\S.*/")
94
- return value
95
-
96
- @field_validator('brand')
97
- def brand_validate_regular_expression(cls, value):
98
- """Validates the regular expression"""
99
- if value is None:
100
- return value
101
-
102
- if not re.match(r".*\S.*", value):
103
- raise ValueError(r"must validate the regular expression /.*\S.*/")
104
- return value
105
-
106
- @field_validator('browse_node_id')
107
- def browse_node_id_validate_regular_expression(cls, value):
108
- """Validates the regular expression"""
109
- if value is None:
110
- return value
111
-
112
- if not re.match(r"^[1-9][0-9]*$", value):
113
- raise ValueError(r"must validate the regular expression /^[1-9][0-9]*$/")
114
- return value
115
-
116
- @field_validator('currency_of_preference')
117
- def currency_of_preference_validate_regular_expression(cls, value):
118
- """Validates the regular expression"""
119
- if value is None:
120
- return value
121
-
122
- if not re.match(r".*\S.*", value):
123
- raise ValueError(r"must validate the regular expression /.*\S.*/")
124
- return value
125
-
126
- @field_validator('keywords')
127
- def keywords_validate_regular_expression(cls, value):
128
- """Validates the regular expression"""
129
- if value is None:
130
- return value
131
-
132
- if not re.match(r".*\S.*", value):
133
- raise ValueError(r"must validate the regular expression /.*\S.*/")
134
- return value
135
-
136
- @field_validator('partner_tag')
137
- def partner_tag_validate_regular_expression(cls, value):
138
- """Validates the regular expression"""
139
- if value is None:
140
- return value
141
-
142
- if not re.match(r".*\S.*", value):
143
- raise ValueError(r"must validate the regular expression /.*\S.*/")
144
- return value
145
-
146
- @field_validator('search_index')
147
- def search_index_validate_regular_expression(cls, value):
148
- """Validates the regular expression"""
149
- if value is None:
150
- return value
151
-
152
- if not re.match(r".*\S.*", value):
153
- raise ValueError(r"must validate the regular expression /.*\S.*/")
154
- return value
155
-
156
- @field_validator('title')
157
- def title_validate_regular_expression(cls, value):
158
- """Validates the regular expression"""
159
- if value is None:
160
- return value
161
-
162
- if not re.match(r".*\S.*", value):
163
- raise ValueError(r"must validate the regular expression /.*\S.*/")
164
- return value
165
-
166
- model_config = ConfigDict(
167
- populate_by_name=True,
168
- validate_assignment=True,
169
- protected_namespaces=(),
170
- )
171
-
172
-
173
- def to_str(self) -> str:
174
- """Returns the string representation of the model using alias"""
175
- return pprint.pformat(self.model_dump(by_alias=True))
176
-
177
- def to_json(self) -> str:
178
- """Returns the JSON representation of the model using alias"""
179
- return self.model_dump_json(by_alias=True, exclude_unset=True)
180
-
181
- @classmethod
182
- def from_json(cls, json_str: str) -> Optional[Self]:
183
- """Create an instance of SearchItemsRequestContent from a JSON string"""
184
- return cls.from_dict(json.loads(json_str))
185
-
186
- def to_dict(self) -> Dict[str, Any]:
187
- """Return the dictionary representation of the model using alias.
188
-
189
- This has the following differences from calling pydantic's
190
- `self.model_dump(by_alias=True)`:
191
-
192
- * `None` is only added to the output dict for nullable fields that
193
- were set at model initialization. Other fields with value `None`
194
- are ignored.
195
- """
196
- excluded_fields: Set[str] = set([
197
- ])
198
-
199
- _dict = self.model_dump(
200
- by_alias=True,
201
- exclude=excluded_fields,
202
- exclude_none=True,
203
- )
204
- return _dict
205
-
206
- @classmethod
207
- def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
208
- """Create an instance of SearchItemsRequestContent from a dict"""
209
- if obj is None:
210
- return None
211
-
212
- if not isinstance(obj, dict):
213
- return cls.model_validate(obj)
214
-
215
- _obj = cls.model_validate({
216
- "actor": obj.get("actor"),
217
- "artist": obj.get("artist"),
218
- "author": obj.get("author"),
219
- "availability": obj.get("availability"),
220
- "brand": obj.get("brand"),
221
- "browseNodeId": obj.get("browseNodeId"),
222
- "condition": obj.get("condition"),
223
- "currencyOfPreference": obj.get("currencyOfPreference"),
224
- "deliveryFlags": obj.get("deliveryFlags"),
225
- "itemCount": obj.get("itemCount"),
226
- "itemPage": obj.get("itemPage"),
227
- "keywords": obj.get("keywords"),
228
- "languagesOfPreference": obj.get("languagesOfPreference"),
229
- "maxPrice": obj.get("maxPrice"),
230
- "minPrice": obj.get("minPrice"),
231
- "minReviewsRating": obj.get("minReviewsRating"),
232
- "minSavingPercent": obj.get("minSavingPercent"),
233
- "partnerTag": obj.get("partnerTag"),
234
- "properties": obj.get("properties"),
235
- "resources": obj.get("resources"),
236
- "searchIndex": obj.get("searchIndex"),
237
- "sortBy": obj.get("sortBy"),
238
- "title": obj.get("title")
239
- })
240
- return _obj
241
-
242
-
1
+ # coding: utf-8
2
+
3
+ """
4
+ Copyright 2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
5
+
6
+ Licensed under the Apache License, Version 2.0 (the "License").
7
+ You may not use this file except in compliance with the License.
8
+ A copy of the License is located at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ or in the "license" file accompanying this file. This file is distributed
13
+ on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
14
+ express or implied. See the License for the specific language governing
15
+ permissions and limitations under the License.
16
+
17
+ """ # noqa: E501
18
+
19
+
20
+
21
+ from __future__ import annotations
22
+ import pprint
23
+ import re # noqa: F401
24
+ import json
25
+
26
+ from pydantic import BaseModel, ConfigDict, Field, field_validator
27
+ from typing import Any, ClassVar, Dict, List, Optional, Union
28
+ from typing_extensions import Annotated
29
+ from creatorsapi_python_sdk.models.availability import Availability
30
+ from creatorsapi_python_sdk.models.condition import Condition
31
+ from creatorsapi_python_sdk.models.delivery_flag import DeliveryFlag
32
+ from creatorsapi_python_sdk.models.search_items_resource import SearchItemsResource
33
+ from creatorsapi_python_sdk.models.sort_by import SortBy
34
+ from typing import Optional, Set
35
+ from typing_extensions import Self
36
+
37
+ class SearchItemsRequestContent(BaseModel):
38
+ """
39
+ The request object for the search items operation. It contains the request parameters for the search items operation.
40
+ """ # noqa: E501
41
+ actor: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = Field(default=None, description="Actor name associated with the item. You can enter all or part of the name.")
42
+ artist: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = Field(default=None, description="Artist name associated with the item. You can enter all or part of the name.")
43
+ author: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = Field(default=None, description="Author name associated with the item. You can enter all or part of the name.")
44
+ availability: Optional[Availability] = None
45
+ brand: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = Field(default=None, description="Brand name associated with the item. You can enter all or part of the name.")
46
+ browse_node_id: Optional[Annotated[str, Field(strict=True, max_length=19)]] = Field(default=None, description="A unique ID assigned by Amazon that identifies a product category/sub-category. The BrowseNodeId is a positive Long having max value upto Long.MAX_VALUE i.e. 9223372036854775807 (inclusive).", alias="browseNodeId")
47
+ condition: Optional[Condition] = None
48
+ currency_of_preference: Optional[Annotated[str, Field(strict=True, max_length=100)]] = Field(default=None, description="Currency of preference in which the prices information should be returned in response. By default the prices are returned in the default currency of the marketplace. Expected currency code format is the ISO 4217 currency code (i.e. USD, EUR etc.).", alias="currencyOfPreference")
49
+ delivery_flags: Optional[Annotated[List[DeliveryFlag], Field(max_length=100)]] = Field(default=None, description="List of DeliveryFlag which denotes a certain delivery program.", alias="deliveryFlags")
50
+ item_count: Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]] = Field(default=None, description="The number of items desired in SearchItems response.", alias="itemCount")
51
+ item_page: Optional[Union[Annotated[float, Field(le=10, strict=True, ge=1)], Annotated[int, Field(le=10, strict=True, ge=1)]]] = Field(default=None, description="The specific page of items to be returned from the available Search Results.", alias="itemPage")
52
+ keywords: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = Field(default=None, description="A word or phrase that describes an item i.e. the search query.")
53
+ languages_of_preference: Optional[Annotated[List[Annotated[str, Field(strict=True, max_length=1000)]], Field(max_length=1)]] = Field(default=None, description="Languages in order of preference in which the item information should be returned in response. By default the item information is returned in the default language of the marketplace.", alias="languagesOfPreference")
54
+ max_price: Optional[Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]]] = Field(default=None, description="The MaxPrice parameter filters search results to items with at least one offer price below the specified value.", alias="maxPrice")
55
+ min_price: Optional[Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]]] = Field(default=None, description="The MinPrice parameter filters search results to items with at least one offer price above the specified value.", alias="minPrice")
56
+ min_reviews_rating: Optional[Union[Annotated[float, Field(le=4, strict=True, ge=1)], Annotated[int, Field(le=4, strict=True, ge=1)]]] = Field(default=None, description="The MinReviewsRating parameter filters search results to items with customer review ratings above specified value.", alias="minReviewsRating")
57
+ min_saving_percent: Optional[Union[Annotated[float, Field(le=99, strict=True, ge=1)], Annotated[int, Field(le=99, strict=True, ge=1)]]] = Field(default=None, description="The MinSavingPercent parameter filters search results to items with at least one offer having saving percentage above the specified value.", alias="minSavingPercent")
58
+ partner_tag: Optional[Annotated[str, Field(strict=True, max_length=64)]] = Field(default=None, description="An alphanumeric token that uniquely identifies a partner. If the value of PartnerType is Associates, enter your Store Id or tracking ID.", alias="partnerTag")
59
+ properties: Optional[Dict[str, Annotated[str, Field(strict=True)]]] = Field(default=None, description="Reserved parameter for specifying key-value pairs. This is a flexible mechanism for passing additional context or metadata to the API.")
60
+ resources: Optional[Annotated[List[SearchItemsResource], Field(max_length=100)]] = Field(default=None, description="List of resources for SearchItems operation which specify the values to return.")
61
+ search_index: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = Field(default=None, description="Indicates the product category to search. SearchIndex values differ by marketplace.", alias="searchIndex")
62
+ sort_by: Optional[SortBy] = Field(default=None, alias="sortBy")
63
+ title: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = Field(default=None, description="Title associated with the item.")
64
+ __properties: ClassVar[List[str]] = ["actor", "artist", "author", "availability", "brand", "browseNodeId", "condition", "currencyOfPreference", "deliveryFlags", "itemCount", "itemPage", "keywords", "languagesOfPreference", "maxPrice", "minPrice", "minReviewsRating", "minSavingPercent", "partnerTag", "properties", "resources", "searchIndex", "sortBy", "title"]
65
+
66
+ @field_validator('actor')
67
+ def actor_validate_regular_expression(cls, value):
68
+ """Validates the regular expression"""
69
+ if value is None:
70
+ return value
71
+
72
+ if not re.match(r".*\S.*", value):
73
+ raise ValueError(r"must validate the regular expression /.*\S.*/")
74
+ return value
75
+
76
+ @field_validator('artist')
77
+ def artist_validate_regular_expression(cls, value):
78
+ """Validates the regular expression"""
79
+ if value is None:
80
+ return value
81
+
82
+ if not re.match(r".*\S.*", value):
83
+ raise ValueError(r"must validate the regular expression /.*\S.*/")
84
+ return value
85
+
86
+ @field_validator('author')
87
+ def author_validate_regular_expression(cls, value):
88
+ """Validates the regular expression"""
89
+ if value is None:
90
+ return value
91
+
92
+ if not re.match(r".*\S.*", value):
93
+ raise ValueError(r"must validate the regular expression /.*\S.*/")
94
+ return value
95
+
96
+ @field_validator('brand')
97
+ def brand_validate_regular_expression(cls, value):
98
+ """Validates the regular expression"""
99
+ if value is None:
100
+ return value
101
+
102
+ if not re.match(r".*\S.*", value):
103
+ raise ValueError(r"must validate the regular expression /.*\S.*/")
104
+ return value
105
+
106
+ @field_validator('browse_node_id')
107
+ def browse_node_id_validate_regular_expression(cls, value):
108
+ """Validates the regular expression"""
109
+ if value is None:
110
+ return value
111
+
112
+ if not re.match(r"^[1-9][0-9]*$", value):
113
+ raise ValueError(r"must validate the regular expression /^[1-9][0-9]*$/")
114
+ return value
115
+
116
+ @field_validator('currency_of_preference')
117
+ def currency_of_preference_validate_regular_expression(cls, value):
118
+ """Validates the regular expression"""
119
+ if value is None:
120
+ return value
121
+
122
+ if not re.match(r".*\S.*", value):
123
+ raise ValueError(r"must validate the regular expression /.*\S.*/")
124
+ return value
125
+
126
+ @field_validator('keywords')
127
+ def keywords_validate_regular_expression(cls, value):
128
+ """Validates the regular expression"""
129
+ if value is None:
130
+ return value
131
+
132
+ if not re.match(r".*\S.*", value):
133
+ raise ValueError(r"must validate the regular expression /.*\S.*/")
134
+ return value
135
+
136
+ @field_validator('partner_tag')
137
+ def partner_tag_validate_regular_expression(cls, value):
138
+ """Validates the regular expression"""
139
+ if value is None:
140
+ return value
141
+
142
+ if not re.match(r".*\S.*", value):
143
+ raise ValueError(r"must validate the regular expression /.*\S.*/")
144
+ return value
145
+
146
+ @field_validator('search_index')
147
+ def search_index_validate_regular_expression(cls, value):
148
+ """Validates the regular expression"""
149
+ if value is None:
150
+ return value
151
+
152
+ if not re.match(r".*\S.*", value):
153
+ raise ValueError(r"must validate the regular expression /.*\S.*/")
154
+ return value
155
+
156
+ @field_validator('title')
157
+ def title_validate_regular_expression(cls, value):
158
+ """Validates the regular expression"""
159
+ if value is None:
160
+ return value
161
+
162
+ if not re.match(r".*\S.*", value):
163
+ raise ValueError(r"must validate the regular expression /.*\S.*/")
164
+ return value
165
+
166
+ model_config = ConfigDict(
167
+ populate_by_name=True,
168
+ validate_assignment=True,
169
+ protected_namespaces=(),
170
+ )
171
+
172
+
173
+ def to_str(self) -> str:
174
+ """Returns the string representation of the model using alias"""
175
+ return pprint.pformat(self.model_dump(by_alias=True))
176
+
177
+ def to_json(self) -> str:
178
+ """Returns the JSON representation of the model using alias"""
179
+ return self.model_dump_json(by_alias=True, exclude_unset=True)
180
+
181
+ @classmethod
182
+ def from_json(cls, json_str: str) -> Optional[Self]:
183
+ """Create an instance of SearchItemsRequestContent from a JSON string"""
184
+ return cls.from_dict(json.loads(json_str))
185
+
186
+ def to_dict(self) -> Dict[str, Any]:
187
+ """Return the dictionary representation of the model using alias.
188
+
189
+ This has the following differences from calling pydantic's
190
+ `self.model_dump(by_alias=True)`:
191
+
192
+ * `None` is only added to the output dict for nullable fields that
193
+ were set at model initialization. Other fields with value `None`
194
+ are ignored.
195
+ """
196
+ excluded_fields: Set[str] = set([
197
+ ])
198
+
199
+ _dict = self.model_dump(
200
+ by_alias=True,
201
+ exclude=excluded_fields,
202
+ exclude_none=True,
203
+ )
204
+ return _dict
205
+
206
+ @classmethod
207
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
208
+ """Create an instance of SearchItemsRequestContent from a dict"""
209
+ if obj is None:
210
+ return None
211
+
212
+ if not isinstance(obj, dict):
213
+ return cls.model_validate(obj)
214
+
215
+ _obj = cls.model_validate({
216
+ "actor": obj.get("actor"),
217
+ "artist": obj.get("artist"),
218
+ "author": obj.get("author"),
219
+ "availability": obj.get("availability"),
220
+ "brand": obj.get("brand"),
221
+ "browseNodeId": obj.get("browseNodeId"),
222
+ "condition": obj.get("condition"),
223
+ "currencyOfPreference": obj.get("currencyOfPreference"),
224
+ "deliveryFlags": obj.get("deliveryFlags"),
225
+ "itemCount": obj.get("itemCount"),
226
+ "itemPage": obj.get("itemPage"),
227
+ "keywords": obj.get("keywords"),
228
+ "languagesOfPreference": obj.get("languagesOfPreference"),
229
+ "maxPrice": obj.get("maxPrice"),
230
+ "minPrice": obj.get("minPrice"),
231
+ "minReviewsRating": obj.get("minReviewsRating"),
232
+ "minSavingPercent": obj.get("minSavingPercent"),
233
+ "partnerTag": obj.get("partnerTag"),
234
+ "properties": obj.get("properties"),
235
+ "resources": obj.get("resources"),
236
+ "searchIndex": obj.get("searchIndex"),
237
+ "sortBy": obj.get("sortBy"),
238
+ "title": obj.get("title")
239
+ })
240
+ return _obj
241
+
242
+