criteo-api-retailmedia-sdk 0.0.250825__py3-none-any.whl → 0.0.250911__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.

Potentially problematic release.


This version of criteo-api-retailmedia-sdk might be problematic. Click here for more details.

Files changed (35) hide show
  1. criteo_api_retailmedia_preview/__init__.py +1 -1
  2. criteo_api_retailmedia_preview/api/campaign_api.py +4 -6
  3. criteo_api_retailmedia_preview/api/catalog_api.py +445 -0
  4. criteo_api_retailmedia_preview/api_client.py +1 -1
  5. criteo_api_retailmedia_preview/configuration.py +1 -1
  6. criteo_api_retailmedia_preview/model/async_accounts_report.py +14 -0
  7. criteo_api_retailmedia_preview/model/async_campaigns_report.py +14 -0
  8. criteo_api_retailmedia_preview/model/async_fill_rate_report.py +10 -0
  9. criteo_api_retailmedia_preview/model/async_job_response.py +257 -0
  10. criteo_api_retailmedia_preview/model/async_line_items_report.py +14 -0
  11. criteo_api_retailmedia_preview/model/async_offsite_report.py +3 -3
  12. criteo_api_retailmedia_preview/model/line_item_capping_v2.py +1 -1
  13. criteo_api_retailmedia_preview/model/load_sku_offers_request.py +272 -0
  14. criteo_api_retailmedia_preview/model/offer_load.py +289 -0
  15. criteo_api_retailmedia_preview/model/offer_update.py +287 -0
  16. criteo_api_retailmedia_preview/model/set_sku_buy_box_winners_request.py +272 -0
  17. criteo_api_retailmedia_preview/model/sku_buy_box_winner.py +269 -0
  18. criteo_api_retailmedia_preview/model/sku_offer_load.py +278 -0
  19. criteo_api_retailmedia_preview/model/sponsored_products_line_item.py +43 -44
  20. criteo_api_retailmedia_preview/model/sponsored_products_line_item_create_request_model.py +32 -34
  21. criteo_api_retailmedia_preview/model/sync_attributed_transactions_report.py +10 -0
  22. criteo_api_retailmedia_preview/model/update_offers_request.py +272 -0
  23. criteo_api_retailmedia_preview/model/value_resource_async_job_response.py +266 -0
  24. criteo_api_retailmedia_preview/model/value_resource_input_load_sku_offers_request.py +262 -0
  25. criteo_api_retailmedia_preview/model/value_resource_input_set_sku_buy_box_winners_request.py +262 -0
  26. criteo_api_retailmedia_preview/model/value_resource_input_update_offers_request.py +262 -0
  27. criteo_api_retailmedia_preview/model/value_resource_load_sku_offers_request.py +266 -0
  28. criteo_api_retailmedia_preview/model/value_resource_outcome_async_job_response.py +274 -0
  29. criteo_api_retailmedia_preview/model/value_resource_set_sku_buy_box_winners_request.py +266 -0
  30. criteo_api_retailmedia_preview/model/value_resource_update_offers_request.py +266 -0
  31. criteo_api_retailmedia_preview/models/__init__.py +16 -0
  32. {criteo_api_retailmedia_sdk-0.0.250825.dist-info → criteo_api_retailmedia_sdk-0.0.250911.dist-info}/METADATA +3 -3
  33. {criteo_api_retailmedia_sdk-0.0.250825.dist-info → criteo_api_retailmedia_sdk-0.0.250911.dist-info}/RECORD +35 -19
  34. {criteo_api_retailmedia_sdk-0.0.250825.dist-info → criteo_api_retailmedia_sdk-0.0.250911.dist-info}/WHEEL +0 -0
  35. {criteo_api_retailmedia_sdk-0.0.250825.dist-info → criteo_api_retailmedia_sdk-0.0.250911.dist-info}/top_level.txt +0 -0
@@ -66,6 +66,7 @@ class AsyncFillRateReport(ModelNormal):
66
66
  'SERVEDCATEGORY': "servedCategory",
67
67
  'RETAILERCATEGORYID': "retailerCategoryId",
68
68
  'RETAILERCATEGORYNAME': "retailerCategoryName",
69
+ 'ADSERVERTYPE': "adServerType",
69
70
  },
70
71
  ('metrics',): {
71
72
  'PAGEVIEWS': "pageViews",
@@ -88,6 +89,11 @@ class AsyncFillRateReport(ModelNormal):
88
89
  'WORKINGMEDIA': "workingMedia",
89
90
  'NETREVENUE': "netRevenue",
90
91
  },
92
+ ('ad_server_type',): {
93
+ 'ALL': "all",
94
+ 'GAM': "gam",
95
+ 'CRITEO': "criteo",
96
+ },
91
97
  ('format',): {
92
98
  'JSON': "json",
93
99
  'JSON-COMPACT': "json-compact",
@@ -131,6 +137,7 @@ class AsyncFillRateReport(ModelNormal):
131
137
  'metrics': ([str],), # noqa: E501
132
138
  'start_date': (datetime,), # noqa: E501
133
139
  'supply_account_ids': ([str],), # noqa: E501
140
+ 'ad_server_type': (str,), # noqa: E501
134
141
  'format': (str,), # noqa: E501
135
142
  'timezone': (str,), # noqa: E501
136
143
  }
@@ -146,6 +153,7 @@ class AsyncFillRateReport(ModelNormal):
146
153
  'metrics': 'metrics', # noqa: E501
147
154
  'start_date': 'startDate', # noqa: E501
148
155
  'supply_account_ids': 'supplyAccountIds', # noqa: E501
156
+ 'ad_server_type': 'adServerType', # noqa: E501
149
157
  'format': 'format', # noqa: E501
150
158
  'timezone': 'timezone', # noqa: E501
151
159
  }
@@ -198,6 +206,7 @@ class AsyncFillRateReport(ModelNormal):
198
206
  Animal class but this time we won't travel
199
207
  through its discriminator because we passed in
200
208
  _visited_composed_classes = (Animal,)
209
+ ad_server_type (str): Filter on the type of the ad server: criteo, gam, all. [optional] if omitted the server will use the default value of "all" # noqa: E501
201
210
  format (str): Format of the output. [optional] if omitted the server will use the default value of "json" # noqa: E501
202
211
  timezone (str): Time zone : see criteo developer portal for supported time zones. [optional] if omitted the server will use the default value of "UTC" # noqa: E501
203
212
  """
@@ -297,6 +306,7 @@ class AsyncFillRateReport(ModelNormal):
297
306
  Animal class but this time we won't travel
298
307
  through its discriminator because we passed in
299
308
  _visited_composed_classes = (Animal,)
309
+ ad_server_type (str): Filter on the type of the ad server: criteo, gam, all. [optional] if omitted the server will use the default value of "all" # noqa: E501
300
310
  format (str): Format of the output. [optional] if omitted the server will use the default value of "json" # noqa: E501
301
311
  timezone (str): Time zone : see criteo developer portal for supported time zones. [optional] if omitted the server will use the default value of "UTC" # noqa: E501
302
312
  """
@@ -0,0 +1,257 @@
1
+ """
2
+ Criteo API
3
+
4
+ Criteo API - RetailMedia # noqa: E501
5
+
6
+ The version of the OpenAPI document: Preview
7
+ Generated by: https://openapi-generator.tech
8
+ """
9
+
10
+
11
+ import re # noqa: F401
12
+ import sys # noqa: F401
13
+
14
+ from criteo_api_retailmedia_preview.model_utils import ( # noqa: F401
15
+ ApiTypeError,
16
+ ModelComposed,
17
+ ModelNormal,
18
+ ModelSimple,
19
+ cached_property,
20
+ change_keys_js_to_python,
21
+ convert_js_args_to_python_args,
22
+ date,
23
+ datetime,
24
+ file_type,
25
+ none_type,
26
+ validate_get_composed_info,
27
+ OpenApiModel
28
+ )
29
+ from criteo_api_retailmedia_preview.exceptions import ApiAttributeError
30
+
31
+
32
+
33
+ class AsyncJobResponse(ModelNormal):
34
+ """NOTE: This class is auto generated by OpenAPI Generator.
35
+ Ref: https://openapi-generator.tech
36
+
37
+ Do not edit the class manually.
38
+
39
+ Attributes:
40
+ allowed_values (dict): The key is the tuple path to the attribute
41
+ and the for var_name this is (var_name,). The value is a dict
42
+ with a capitalized key describing the allowed value and an allowed
43
+ value. These dicts store the allowed enum values.
44
+ attribute_map (dict): The key is attribute name
45
+ and the value is json key in definition.
46
+ discriminator_value_class_map (dict): A dict to go from the discriminator
47
+ variable value to the discriminator class name.
48
+ validations (dict): The key is the tuple path to the attribute
49
+ and the for var_name this is (var_name,). The value is a dict
50
+ that stores validations for max_length, min_length, max_items,
51
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
52
+ inclusive_minimum, and regex.
53
+ additional_properties_type (tuple): A tuple of classes accepted
54
+ as additional properties values.
55
+ """
56
+
57
+ allowed_values = {
58
+ }
59
+
60
+ validations = {
61
+ }
62
+
63
+ additional_properties_type = None
64
+
65
+ _nullable = True
66
+
67
+ @cached_property
68
+ def openapi_types():
69
+ """
70
+ This must be a method because a model may have properties that are
71
+ of type self, this must run after the class is loaded
72
+
73
+ Returns
74
+ openapi_types (dict): The key is attribute name
75
+ and the value is attribute type.
76
+ """
77
+ return {
78
+ 'job_id': (str, none_type,), # noqa: E501
79
+ }
80
+
81
+ @cached_property
82
+ def discriminator():
83
+ return None
84
+
85
+
86
+ attribute_map = {
87
+ 'job_id': 'jobId', # noqa: E501
88
+ }
89
+
90
+ read_only_vars = {
91
+ }
92
+
93
+ _composed_schemas = {}
94
+
95
+ @classmethod
96
+ @convert_js_args_to_python_args
97
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
98
+ """AsyncJobResponse - a model defined in OpenAPI
99
+
100
+ Keyword Args:
101
+ _check_type (bool): if True, values for parameters in openapi_types
102
+ will be type checked and a TypeError will be
103
+ raised if the wrong type is input.
104
+ Defaults to True
105
+ _path_to_item (tuple/list): This is a list of keys or values to
106
+ drill down to the model in received_data
107
+ when deserializing a response
108
+ _spec_property_naming (bool): True if the variable names in the input data
109
+ are serialized names, as specified in the OpenAPI document.
110
+ False if the variable names in the input data
111
+ are pythonic names, e.g. snake case (default)
112
+ _configuration (Configuration): the instance to use when
113
+ deserializing a file_type parameter.
114
+ If passed, type conversion is attempted
115
+ If omitted no type conversion is done.
116
+ _visited_composed_classes (tuple): This stores a tuple of
117
+ classes that we have traveled through so that
118
+ if we see that class again we will not use its
119
+ discriminator again.
120
+ When traveling through a discriminator, the
121
+ composed schema that is
122
+ is traveled through is added to this set.
123
+ For example if Animal has a discriminator
124
+ petType and we pass in "Dog", and the class Dog
125
+ allOf includes Animal, we move through Animal
126
+ once using the discriminator, and pick Dog.
127
+ Then in Dog, we will make an instance of the
128
+ Animal class but this time we won't travel
129
+ through its discriminator because we passed in
130
+ _visited_composed_classes = (Animal,)
131
+ job_id (str, none_type): [optional] # noqa: E501
132
+ """
133
+
134
+ _check_type = kwargs.pop('_check_type', True)
135
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
136
+ _path_to_item = kwargs.pop('_path_to_item', ())
137
+ _configuration = kwargs.pop('_configuration', None)
138
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
139
+
140
+ self = super(OpenApiModel, cls).__new__(cls)
141
+
142
+ if args:
143
+ for arg in args:
144
+ if isinstance(arg, dict):
145
+ kwargs.update(arg)
146
+ else:
147
+ raise ApiTypeError(
148
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
149
+ args,
150
+ self.__class__.__name__,
151
+ ),
152
+ path_to_item=_path_to_item,
153
+ valid_classes=(self.__class__,),
154
+ )
155
+
156
+ self._data_store = {}
157
+ self._check_type = _check_type
158
+ self._spec_property_naming = _spec_property_naming
159
+ self._path_to_item = _path_to_item
160
+ self._configuration = _configuration
161
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
162
+
163
+ for var_name, var_value in kwargs.items():
164
+ if var_name not in self.attribute_map and \
165
+ self._configuration is not None and \
166
+ self._configuration.discard_unknown_keys and \
167
+ self.additional_properties_type is None:
168
+ # discard variable.
169
+ continue
170
+ setattr(self, var_name, var_value)
171
+ return self
172
+
173
+ required_properties = set([
174
+ '_data_store',
175
+ '_check_type',
176
+ '_spec_property_naming',
177
+ '_path_to_item',
178
+ '_configuration',
179
+ '_visited_composed_classes',
180
+ ])
181
+
182
+ @convert_js_args_to_python_args
183
+ def __init__(self, *args, **kwargs): # noqa: E501
184
+ """AsyncJobResponse - a model defined in OpenAPI
185
+
186
+ Keyword Args:
187
+ _check_type (bool): if True, values for parameters in openapi_types
188
+ will be type checked and a TypeError will be
189
+ raised if the wrong type is input.
190
+ Defaults to True
191
+ _path_to_item (tuple/list): This is a list of keys or values to
192
+ drill down to the model in received_data
193
+ when deserializing a response
194
+ _spec_property_naming (bool): True if the variable names in the input data
195
+ are serialized names, as specified in the OpenAPI document.
196
+ False if the variable names in the input data
197
+ are pythonic names, e.g. snake case (default)
198
+ _configuration (Configuration): the instance to use when
199
+ deserializing a file_type parameter.
200
+ If passed, type conversion is attempted
201
+ If omitted no type conversion is done.
202
+ _visited_composed_classes (tuple): This stores a tuple of
203
+ classes that we have traveled through so that
204
+ if we see that class again we will not use its
205
+ discriminator again.
206
+ When traveling through a discriminator, the
207
+ composed schema that is
208
+ is traveled through is added to this set.
209
+ For example if Animal has a discriminator
210
+ petType and we pass in "Dog", and the class Dog
211
+ allOf includes Animal, we move through Animal
212
+ once using the discriminator, and pick Dog.
213
+ Then in Dog, we will make an instance of the
214
+ Animal class but this time we won't travel
215
+ through its discriminator because we passed in
216
+ _visited_composed_classes = (Animal,)
217
+ job_id (str, none_type): [optional] # noqa: E501
218
+ """
219
+
220
+ _check_type = kwargs.pop('_check_type', True)
221
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
222
+ _path_to_item = kwargs.pop('_path_to_item', ())
223
+ _configuration = kwargs.pop('_configuration', None)
224
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
225
+
226
+ if args:
227
+ for arg in args:
228
+ if isinstance(arg, dict):
229
+ kwargs.update(arg)
230
+ else:
231
+ raise ApiTypeError(
232
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
233
+ args,
234
+ self.__class__.__name__,
235
+ ),
236
+ path_to_item=_path_to_item,
237
+ valid_classes=(self.__class__,),
238
+ )
239
+
240
+ self._data_store = {}
241
+ self._check_type = _check_type
242
+ self._spec_property_naming = _spec_property_naming
243
+ self._path_to_item = _path_to_item
244
+ self._configuration = _configuration
245
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
246
+
247
+ for var_name, var_value in kwargs.items():
248
+ if var_name not in self.attribute_map and \
249
+ self._configuration is not None and \
250
+ self._configuration.discard_unknown_keys and \
251
+ self.additional_properties_type is None:
252
+ # discard variable.
253
+ continue
254
+ setattr(self, var_name, var_value)
255
+ if var_name in self.read_only_vars:
256
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
257
+ f"class with read only attributes.")
@@ -84,6 +84,7 @@ class AsyncLineItemsReport(ModelNormal):
84
84
  'ADVPRODUCTID': "advProductId",
85
85
  'ADVPRODUCTNAME': "advProductName",
86
86
  'SALESCHANNEL': "salesChannel",
87
+ 'MEDIATYPE': "mediaType",
87
88
  'ENVIRONMENT': "environment",
88
89
  'PAGETYPENAME': "pageTypeName",
89
90
  'PAGECATEGORY': "pageCategory",
@@ -107,6 +108,12 @@ class AsyncLineItemsReport(ModelNormal):
107
108
  'JSON-NEWLINE': "json-newline",
108
109
  'CSV': "csv",
109
110
  },
111
+ ('media_type',): {
112
+ 'UNKNOWN': "unknown",
113
+ 'VIDEO': "video",
114
+ 'DISPLAY': "display",
115
+ 'ALL': "all",
116
+ },
110
117
  ('metrics',): {
111
118
  'IMPRESSIONS': "impressions",
112
119
  'CLICKS': "clicks",
@@ -145,6 +152,9 @@ class AsyncLineItemsReport(ModelNormal):
145
152
  'NEWTOBRANDATTRIBUTEDUNITSRATE': "newToBrandAttributedUnitsRate",
146
153
  'UNIQUEVISITORS': "uniqueVisitors",
147
154
  'FREQUENCY': "frequency",
155
+ 'WINRATE': "winRate",
156
+ 'SAMPLEDBIDSWON': "sampledBidsWon",
157
+ 'SAMPLEDBIDSPARTICIPATED': "sampledBidsParticipated",
148
158
  },
149
159
  ('report_type',): {
150
160
  'SUMMARY': "summary",
@@ -219,6 +229,7 @@ class AsyncLineItemsReport(ModelNormal):
219
229
  'format': (str,), # noqa: E501
220
230
  'id': (str,), # noqa: E501
221
231
  'ids': ([str],), # noqa: E501
232
+ 'media_type': (str,), # noqa: E501
222
233
  'metrics': ([str],), # noqa: E501
223
234
  'report_type': (str,), # noqa: E501
224
235
  'sales_channel': (str,), # noqa: E501
@@ -243,6 +254,7 @@ class AsyncLineItemsReport(ModelNormal):
243
254
  'format': 'format', # noqa: E501
244
255
  'id': 'id', # noqa: E501
245
256
  'ids': 'ids', # noqa: E501
257
+ 'media_type': 'mediaType', # noqa: E501
246
258
  'metrics': 'metrics', # noqa: E501
247
259
  'report_type': 'reportType', # noqa: E501
248
260
  'sales_channel': 'salesChannel', # noqa: E501
@@ -304,6 +316,7 @@ class AsyncLineItemsReport(ModelNormal):
304
316
  format (str): Format of the output. [optional] if omitted the server will use the default value of "json-compact" # noqa: E501
305
317
  id (str): Line Item id to report on. [optional] # noqa: E501
306
318
  ids ([str]): Line Item ids to report on. [optional] # noqa: E501
319
+ media_type (str): Filter on the type of media: unknown, display, video. [optional] if omitted the server will use the default value of "all" # noqa: E501
307
320
  metrics ([str]): List of metrics to report on. [optional] # noqa: E501
308
321
  report_type (str): Type of report, if no dimensions and metrics are provided, falls back to summary reportType. [optional] if omitted the server will use the default value of "summary" # noqa: E501
309
322
  sales_channel (str): Filter on specific sales channel: offline or online. [optional] if omitted the server will use the default value of "all" # noqa: E501
@@ -409,6 +422,7 @@ class AsyncLineItemsReport(ModelNormal):
409
422
  format (str): Format of the output. [optional] if omitted the server will use the default value of "json-compact" # noqa: E501
410
423
  id (str): Line Item id to report on. [optional] # noqa: E501
411
424
  ids ([str]): Line Item ids to report on. [optional] # noqa: E501
425
+ media_type (str): Filter on the type of media: unknown, display, video. [optional] if omitted the server will use the default value of "all" # noqa: E501
412
426
  metrics ([str]): List of metrics to report on. [optional] # noqa: E501
413
427
  report_type (str): Type of report, if no dimensions and metrics are provided, falls back to summary reportType. [optional] if omitted the server will use the default value of "summary" # noqa: E501
414
428
  sales_channel (str): Filter on specific sales channel: offline or online. [optional] if omitted the server will use the default value of "all" # noqa: E501
@@ -81,7 +81,7 @@ class AsyncOffsiteReport(ModelNormal):
81
81
  },
82
82
  ('metrics',): {
83
83
  'AUDIENCE': "audience",
84
- 'UNIQUEUSERS': "uniqueUsers",
84
+ 'UNIQUEVISITORS': "uniqueVisitors",
85
85
  'REACHRATE': "reachRate",
86
86
  'IMPRESSIONS': "impressions",
87
87
  'FREQUENCY': "frequency",
@@ -93,8 +93,8 @@ class AsyncOffsiteReport(ModelNormal):
93
93
  'ECPM': "ecpm",
94
94
  'CPM': "cpm",
95
95
  'SPEND': "spend",
96
- 'UNITS': "units",
97
- 'SALES': "sales",
96
+ 'ATTRIBUTEDUNITS': "attributedUnits",
97
+ 'ATTRIBUTEDSALES': "attributedSales",
98
98
  'ROAS': "roas",
99
99
  'VIDEOSTARTS': "videoStarts",
100
100
  'VIDEOSPLAYEDTO25': "videosPlayedTo25",
@@ -73,7 +73,7 @@ class LineItemCappingV2(ModelNormal):
73
73
  """
74
74
  return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
75
75
 
76
- _nullable = False
76
+ _nullable = True
77
77
 
78
78
  @cached_property
79
79
  def openapi_types():
@@ -0,0 +1,272 @@
1
+ """
2
+ Criteo API
3
+
4
+ Criteo API - RetailMedia # noqa: E501
5
+
6
+ The version of the OpenAPI document: Preview
7
+ Generated by: https://openapi-generator.tech
8
+ """
9
+
10
+
11
+ import re # noqa: F401
12
+ import sys # noqa: F401
13
+
14
+ from criteo_api_retailmedia_preview.model_utils import ( # noqa: F401
15
+ ApiTypeError,
16
+ ModelComposed,
17
+ ModelNormal,
18
+ ModelSimple,
19
+ cached_property,
20
+ change_keys_js_to_python,
21
+ convert_js_args_to_python_args,
22
+ date,
23
+ datetime,
24
+ file_type,
25
+ none_type,
26
+ validate_get_composed_info,
27
+ OpenApiModel
28
+ )
29
+ from criteo_api_retailmedia_preview.exceptions import ApiAttributeError
30
+
31
+
32
+ def lazy_import():
33
+ from criteo_api_retailmedia_preview.model.sku_offer_load import SkuOfferLoad
34
+ globals()['SkuOfferLoad'] = SkuOfferLoad
35
+
36
+
37
+ class LoadSkuOffersRequest(ModelNormal):
38
+ """NOTE: This class is auto generated by OpenAPI Generator.
39
+ Ref: https://openapi-generator.tech
40
+
41
+ Do not edit the class manually.
42
+
43
+ Attributes:
44
+ allowed_values (dict): The key is the tuple path to the attribute
45
+ and the for var_name this is (var_name,). The value is a dict
46
+ with a capitalized key describing the allowed value and an allowed
47
+ value. These dicts store the allowed enum values.
48
+ attribute_map (dict): The key is attribute name
49
+ and the value is json key in definition.
50
+ discriminator_value_class_map (dict): A dict to go from the discriminator
51
+ variable value to the discriminator class name.
52
+ validations (dict): The key is the tuple path to the attribute
53
+ and the for var_name this is (var_name,). The value is a dict
54
+ that stores validations for max_length, min_length, max_items,
55
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
56
+ inclusive_minimum, and regex.
57
+ additional_properties_type (tuple): A tuple of classes accepted
58
+ as additional properties values.
59
+ """
60
+
61
+ allowed_values = {
62
+ }
63
+
64
+ validations = {
65
+ ('sku_offer_loads',): {
66
+ 'max_items': 5000,
67
+ 'min_items': 1,
68
+ },
69
+ }
70
+
71
+ additional_properties_type = None
72
+
73
+ _nullable = False
74
+
75
+ @cached_property
76
+ def openapi_types():
77
+ """
78
+ This must be a method because a model may have properties that are
79
+ of type self, this must run after the class is loaded
80
+
81
+ Returns
82
+ openapi_types (dict): The key is attribute name
83
+ and the value is attribute type.
84
+ """
85
+ lazy_import()
86
+ return {
87
+ 'sku_offer_loads': ([SkuOfferLoad],), # noqa: E501
88
+ }
89
+
90
+ @cached_property
91
+ def discriminator():
92
+ return None
93
+
94
+
95
+ attribute_map = {
96
+ 'sku_offer_loads': 'skuOfferLoads', # noqa: E501
97
+ }
98
+
99
+ read_only_vars = {
100
+ }
101
+
102
+ _composed_schemas = {}
103
+
104
+ @classmethod
105
+ @convert_js_args_to_python_args
106
+ def _from_openapi_data(cls, sku_offer_loads, *args, **kwargs): # noqa: E501
107
+ """LoadSkuOffersRequest - a model defined in OpenAPI
108
+
109
+ Args:
110
+ sku_offer_loads ([SkuOfferLoad]):
111
+
112
+ Keyword Args:
113
+ _check_type (bool): if True, values for parameters in openapi_types
114
+ will be type checked and a TypeError will be
115
+ raised if the wrong type is input.
116
+ Defaults to True
117
+ _path_to_item (tuple/list): This is a list of keys or values to
118
+ drill down to the model in received_data
119
+ when deserializing a response
120
+ _spec_property_naming (bool): True if the variable names in the input data
121
+ are serialized names, as specified in the OpenAPI document.
122
+ False if the variable names in the input data
123
+ are pythonic names, e.g. snake case (default)
124
+ _configuration (Configuration): the instance to use when
125
+ deserializing a file_type parameter.
126
+ If passed, type conversion is attempted
127
+ If omitted no type conversion is done.
128
+ _visited_composed_classes (tuple): This stores a tuple of
129
+ classes that we have traveled through so that
130
+ if we see that class again we will not use its
131
+ discriminator again.
132
+ When traveling through a discriminator, the
133
+ composed schema that is
134
+ is traveled through is added to this set.
135
+ For example if Animal has a discriminator
136
+ petType and we pass in "Dog", and the class Dog
137
+ allOf includes Animal, we move through Animal
138
+ once using the discriminator, and pick Dog.
139
+ Then in Dog, we will make an instance of the
140
+ Animal class but this time we won't travel
141
+ through its discriminator because we passed in
142
+ _visited_composed_classes = (Animal,)
143
+ """
144
+
145
+ _check_type = kwargs.pop('_check_type', True)
146
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
147
+ _path_to_item = kwargs.pop('_path_to_item', ())
148
+ _configuration = kwargs.pop('_configuration', None)
149
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
150
+
151
+ self = super(OpenApiModel, cls).__new__(cls)
152
+
153
+ if args:
154
+ for arg in args:
155
+ if isinstance(arg, dict):
156
+ kwargs.update(arg)
157
+ else:
158
+ raise ApiTypeError(
159
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
160
+ args,
161
+ self.__class__.__name__,
162
+ ),
163
+ path_to_item=_path_to_item,
164
+ valid_classes=(self.__class__,),
165
+ )
166
+
167
+ self._data_store = {}
168
+ self._check_type = _check_type
169
+ self._spec_property_naming = _spec_property_naming
170
+ self._path_to_item = _path_to_item
171
+ self._configuration = _configuration
172
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
173
+
174
+ self.sku_offer_loads = sku_offer_loads
175
+ for var_name, var_value in kwargs.items():
176
+ if var_name not in self.attribute_map and \
177
+ self._configuration is not None and \
178
+ self._configuration.discard_unknown_keys and \
179
+ self.additional_properties_type is None:
180
+ # discard variable.
181
+ continue
182
+ setattr(self, var_name, var_value)
183
+ return self
184
+
185
+ required_properties = set([
186
+ '_data_store',
187
+ '_check_type',
188
+ '_spec_property_naming',
189
+ '_path_to_item',
190
+ '_configuration',
191
+ '_visited_composed_classes',
192
+ ])
193
+
194
+ @convert_js_args_to_python_args
195
+ def __init__(self, sku_offer_loads, *args, **kwargs): # noqa: E501
196
+ """LoadSkuOffersRequest - a model defined in OpenAPI
197
+
198
+ Args:
199
+ sku_offer_loads ([SkuOfferLoad]):
200
+
201
+ Keyword Args:
202
+ _check_type (bool): if True, values for parameters in openapi_types
203
+ will be type checked and a TypeError will be
204
+ raised if the wrong type is input.
205
+ Defaults to True
206
+ _path_to_item (tuple/list): This is a list of keys or values to
207
+ drill down to the model in received_data
208
+ when deserializing a response
209
+ _spec_property_naming (bool): True if the variable names in the input data
210
+ are serialized names, as specified in the OpenAPI document.
211
+ False if the variable names in the input data
212
+ are pythonic names, e.g. snake case (default)
213
+ _configuration (Configuration): the instance to use when
214
+ deserializing a file_type parameter.
215
+ If passed, type conversion is attempted
216
+ If omitted no type conversion is done.
217
+ _visited_composed_classes (tuple): This stores a tuple of
218
+ classes that we have traveled through so that
219
+ if we see that class again we will not use its
220
+ discriminator again.
221
+ When traveling through a discriminator, the
222
+ composed schema that is
223
+ is traveled through is added to this set.
224
+ For example if Animal has a discriminator
225
+ petType and we pass in "Dog", and the class Dog
226
+ allOf includes Animal, we move through Animal
227
+ once using the discriminator, and pick Dog.
228
+ Then in Dog, we will make an instance of the
229
+ Animal class but this time we won't travel
230
+ through its discriminator because we passed in
231
+ _visited_composed_classes = (Animal,)
232
+ """
233
+
234
+ _check_type = kwargs.pop('_check_type', True)
235
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
236
+ _path_to_item = kwargs.pop('_path_to_item', ())
237
+ _configuration = kwargs.pop('_configuration', None)
238
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
239
+
240
+ if args:
241
+ for arg in args:
242
+ if isinstance(arg, dict):
243
+ kwargs.update(arg)
244
+ else:
245
+ raise ApiTypeError(
246
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
247
+ args,
248
+ self.__class__.__name__,
249
+ ),
250
+ path_to_item=_path_to_item,
251
+ valid_classes=(self.__class__,),
252
+ )
253
+
254
+ self._data_store = {}
255
+ self._check_type = _check_type
256
+ self._spec_property_naming = _spec_property_naming
257
+ self._path_to_item = _path_to_item
258
+ self._configuration = _configuration
259
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
260
+
261
+ self.sku_offer_loads = sku_offer_loads
262
+ for var_name, var_value in kwargs.items():
263
+ if var_name not in self.attribute_map and \
264
+ self._configuration is not None and \
265
+ self._configuration.discard_unknown_keys and \
266
+ self.additional_properties_type is None:
267
+ # discard variable.
268
+ continue
269
+ setattr(self, var_name, var_value)
270
+ if var_name in self.read_only_vars:
271
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
272
+ f"class with read only attributes.")