google-apis-css_v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1067 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module CssV1
24
+
25
+ # Information about CSS/MC account.
26
+ class Account
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Output only. The type of this account.
30
+ # Corresponds to the JSON property `accountType`
31
+ # @return [String]
32
+ attr_accessor :account_type
33
+
34
+ # Automatically created label IDs assigned to the MC account by CSS Center.
35
+ # Corresponds to the JSON property `automaticLabelIds`
36
+ # @return [Array<Fixnum>]
37
+ attr_accessor :automatic_label_ids
38
+
39
+ # The CSS/MC account's short display name.
40
+ # Corresponds to the JSON property `displayName`
41
+ # @return [String]
42
+ attr_accessor :display_name
43
+
44
+ # Output only. Immutable. The CSS/MC account's full name.
45
+ # Corresponds to the JSON property `fullName`
46
+ # @return [String]
47
+ attr_accessor :full_name
48
+
49
+ # Output only. Immutable. The CSS/MC account's homepage.
50
+ # Corresponds to the JSON property `homepageUri`
51
+ # @return [String]
52
+ attr_accessor :homepage_uri
53
+
54
+ # Manually created label IDs assigned to the CSS/MC account by a CSS parent
55
+ # account.
56
+ # Corresponds to the JSON property `labelIds`
57
+ # @return [Array<Fixnum>]
58
+ attr_accessor :label_ids
59
+
60
+ # The label resource name. Format: accounts/`account`
61
+ # Corresponds to the JSON property `name`
62
+ # @return [String]
63
+ attr_accessor :name
64
+
65
+ # The CSS/MC account's parent resource. CSS group for CSS domains; CSS domain
66
+ # for MC accounts. Returned only if the user has access to the parent account.
67
+ # Corresponds to the JSON property `parent`
68
+ # @return [String]
69
+ attr_accessor :parent
70
+
71
+ def initialize(**args)
72
+ update!(**args)
73
+ end
74
+
75
+ # Update properties of this object
76
+ def update!(**args)
77
+ @account_type = args[:account_type] if args.key?(:account_type)
78
+ @automatic_label_ids = args[:automatic_label_ids] if args.key?(:automatic_label_ids)
79
+ @display_name = args[:display_name] if args.key?(:display_name)
80
+ @full_name = args[:full_name] if args.key?(:full_name)
81
+ @homepage_uri = args[:homepage_uri] if args.key?(:homepage_uri)
82
+ @label_ids = args[:label_ids] if args.key?(:label_ids)
83
+ @name = args[:name] if args.key?(:name)
84
+ @parent = args[:parent] if args.key?(:parent)
85
+ end
86
+ end
87
+
88
+ # Label assigned by CSS domain or CSS group to one of its sub-accounts.
89
+ class AccountLabel
90
+ include Google::Apis::Core::Hashable
91
+
92
+ # Output only. The ID of account this label belongs to.
93
+ # Corresponds to the JSON property `accountId`
94
+ # @return [Fixnum]
95
+ attr_accessor :account_id
96
+
97
+ # The description of this label.
98
+ # Corresponds to the JSON property `description`
99
+ # @return [String]
100
+ attr_accessor :description
101
+
102
+ # The display name of this label.
103
+ # Corresponds to the JSON property `displayName`
104
+ # @return [String]
105
+ attr_accessor :display_name
106
+
107
+ # Output only. The ID of the label.
108
+ # Corresponds to the JSON property `labelId`
109
+ # @return [Fixnum]
110
+ attr_accessor :label_id
111
+
112
+ # Output only. The type of this label.
113
+ # Corresponds to the JSON property `labelType`
114
+ # @return [String]
115
+ attr_accessor :label_type
116
+
117
+ # The resource name of the label. Format: accounts/`account`/labels/`label`
118
+ # Corresponds to the JSON property `name`
119
+ # @return [String]
120
+ attr_accessor :name
121
+
122
+ def initialize(**args)
123
+ update!(**args)
124
+ end
125
+
126
+ # Update properties of this object
127
+ def update!(**args)
128
+ @account_id = args[:account_id] if args.key?(:account_id)
129
+ @description = args[:description] if args.key?(:description)
130
+ @display_name = args[:display_name] if args.key?(:display_name)
131
+ @label_id = args[:label_id] if args.key?(:label_id)
132
+ @label_type = args[:label_type] if args.key?(:label_type)
133
+ @name = args[:name] if args.key?(:name)
134
+ end
135
+ end
136
+
137
+ # Attributes for CSS Product.
138
+ class Attributes
139
+ include Google::Apis::Core::Hashable
140
+
141
+ # Additional URL of images of the item.
142
+ # Corresponds to the JSON property `additionalImageLinks`
143
+ # @return [Array<String>]
144
+ attr_accessor :additional_image_links
145
+
146
+ # Set to true if the item is targeted towards adults.
147
+ # Corresponds to the JSON property `adult`
148
+ # @return [Boolean]
149
+ attr_accessor :adult
150
+ alias_method :adult?, :adult
151
+
152
+ # Target age group of the item.
153
+ # Corresponds to the JSON property `ageGroup`
154
+ # @return [String]
155
+ attr_accessor :age_group
156
+
157
+ # Product Related Attributes.[14-36] Brand of the item.
158
+ # Corresponds to the JSON property `brand`
159
+ # @return [String]
160
+ attr_accessor :brand
161
+
162
+ # A list of certificates claimed by the CSS for the given product.
163
+ # Corresponds to the JSON property `certifications`
164
+ # @return [Array<Google::Apis::CssV1::Certification>]
165
+ attr_accessor :certifications
166
+
167
+ # Color of the item.
168
+ # Corresponds to the JSON property `color`
169
+ # @return [String]
170
+ attr_accessor :color
171
+
172
+ # Allows advertisers to override the item URL when the product is shown within
173
+ # the context of Product Ads.
174
+ # Corresponds to the JSON property `cppAdsRedirect`
175
+ # @return [String]
176
+ attr_accessor :cpp_ads_redirect
177
+
178
+ # URL directly linking to your the Product Detail Page of the CSS.
179
+ # Corresponds to the JSON property `cppLink`
180
+ # @return [String]
181
+ attr_accessor :cpp_link
182
+
183
+ # URL for the mobile-optimized version of the Product Detail Page of the CSS.
184
+ # Corresponds to the JSON property `cppMobileLink`
185
+ # @return [String]
186
+ attr_accessor :cpp_mobile_link
187
+
188
+ # Custom label 0 for custom grouping of items in a Shopping campaign.
189
+ # Corresponds to the JSON property `customLabel0`
190
+ # @return [String]
191
+ attr_accessor :custom_label0
192
+
193
+ # Custom label 1 for custom grouping of items in a Shopping campaign.
194
+ # Corresponds to the JSON property `customLabel1`
195
+ # @return [String]
196
+ attr_accessor :custom_label1
197
+
198
+ # Custom label 2 for custom grouping of items in a Shopping campaign.
199
+ # Corresponds to the JSON property `customLabel2`
200
+ # @return [String]
201
+ attr_accessor :custom_label2
202
+
203
+ # Custom label 3 for custom grouping of items in a Shopping campaign.
204
+ # Corresponds to the JSON property `customLabel3`
205
+ # @return [String]
206
+ attr_accessor :custom_label3
207
+
208
+ # Custom label 4 for custom grouping of items in a Shopping campaign.
209
+ # Corresponds to the JSON property `customLabel4`
210
+ # @return [String]
211
+ attr_accessor :custom_label4
212
+
213
+ # Description of the item.
214
+ # Corresponds to the JSON property `description`
215
+ # @return [String]
216
+ attr_accessor :description
217
+
218
+ # The list of destinations to exclude for this target (corresponds to unchecked
219
+ # check boxes in Merchant Center).
220
+ # Corresponds to the JSON property `excludedDestinations`
221
+ # @return [Array<String>]
222
+ attr_accessor :excluded_destinations
223
+
224
+ # Date on which the item should expire, as specified upon insertion, in [ISO
225
+ # 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual expiration
226
+ # date is exposed in `productstatuses` as [googleExpirationDate](https://support.
227
+ # google.com/merchants/answer/6324499) and might be earlier if `expirationDate`
228
+ # is too far in the future. Note: It may take 2+ days from the expiration date
229
+ # for the item to actually get deleted.
230
+ # Corresponds to the JSON property `expirationDate`
231
+ # @return [String]
232
+ attr_accessor :expiration_date
233
+
234
+ # Target gender of the item.
235
+ # Corresponds to the JSON property `gender`
236
+ # @return [String]
237
+ attr_accessor :gender
238
+
239
+ # Google's category of the item (see [Google product taxonomy](https://support.
240
+ # google.com/merchants/answer/1705911)). When querying products, this field will
241
+ # contain the user provided value. There is currently no way to get back the
242
+ # auto assigned google product categories through the API.
243
+ # Corresponds to the JSON property `googleProductCategory`
244
+ # @return [String]
245
+ attr_accessor :google_product_category
246
+
247
+ # Global Trade Item Number ([GTIN](https://support.google.com/merchants/answer/
248
+ # 188494#gtin)) of the item.
249
+ # Corresponds to the JSON property `gtin`
250
+ # @return [String]
251
+ attr_accessor :gtin
252
+
253
+ # Condition of the headline offer.
254
+ # Corresponds to the JSON property `headlineOfferCondition`
255
+ # @return [String]
256
+ attr_accessor :headline_offer_condition
257
+
258
+ # Link to the headline offer.
259
+ # Corresponds to the JSON property `headlineOfferLink`
260
+ # @return [String]
261
+ attr_accessor :headline_offer_link
262
+
263
+ # Mobile Link to the headline offer.
264
+ # Corresponds to the JSON property `headlineOfferMobileLink`
265
+ # @return [String]
266
+ attr_accessor :headline_offer_mobile_link
267
+
268
+ # The price represented as a number and currency.
269
+ # Corresponds to the JSON property `headlineOfferPrice`
270
+ # @return [Google::Apis::CssV1::Price]
271
+ attr_accessor :headline_offer_price
272
+
273
+ # The price represented as a number and currency.
274
+ # Corresponds to the JSON property `headlineOfferShippingPrice`
275
+ # @return [Google::Apis::CssV1::Price]
276
+ attr_accessor :headline_offer_shipping_price
277
+
278
+ # The price represented as a number and currency.
279
+ # Corresponds to the JSON property `highPrice`
280
+ # @return [Google::Apis::CssV1::Price]
281
+ attr_accessor :high_price
282
+
283
+ # URL of an image of the item.
284
+ # Corresponds to the JSON property `imageLink`
285
+ # @return [String]
286
+ attr_accessor :image_link
287
+
288
+ # The list of destinations to include for this target (corresponds to checked
289
+ # check boxes in Merchant Center). Default destinations are always included
290
+ # unless provided in `excludedDestinations`.
291
+ # Corresponds to the JSON property `includedDestinations`
292
+ # @return [Array<String>]
293
+ attr_accessor :included_destinations
294
+
295
+ # Whether the item is a merchant-defined bundle. A bundle is a custom grouping
296
+ # of different products sold by a merchant for a single price.
297
+ # Corresponds to the JSON property `isBundle`
298
+ # @return [Boolean]
299
+ attr_accessor :is_bundle
300
+ alias_method :is_bundle?, :is_bundle
301
+
302
+ # Shared identifier for all variants of the same product.
303
+ # Corresponds to the JSON property `itemGroupId`
304
+ # @return [String]
305
+ attr_accessor :item_group_id
306
+
307
+ # The price represented as a number and currency.
308
+ # Corresponds to the JSON property `lowPrice`
309
+ # @return [Google::Apis::CssV1::Price]
310
+ attr_accessor :low_price
311
+
312
+ # The material of which the item is made.
313
+ # Corresponds to the JSON property `material`
314
+ # @return [String]
315
+ attr_accessor :material
316
+
317
+ # Manufacturer Part Number ([MPN](https://support.google.com/merchants/answer/
318
+ # 188494#mpn)) of the item.
319
+ # Corresponds to the JSON property `mpn`
320
+ # @return [String]
321
+ attr_accessor :mpn
322
+
323
+ # The number of identical products in a merchant-defined multipack.
324
+ # Corresponds to the JSON property `multipack`
325
+ # @return [Fixnum]
326
+ attr_accessor :multipack
327
+
328
+ # The number of aggregate offers.
329
+ # Corresponds to the JSON property `numberOfOffers`
330
+ # @return [Fixnum]
331
+ attr_accessor :number_of_offers
332
+
333
+ # The item's pattern (e.g. polka dots).
334
+ # Corresponds to the JSON property `pattern`
335
+ # @return [String]
336
+ attr_accessor :pattern
337
+
338
+ # Publication of this item will be temporarily paused.
339
+ # Corresponds to the JSON property `pause`
340
+ # @return [String]
341
+ attr_accessor :pause
342
+
343
+ # Technical specification or additional product details.
344
+ # Corresponds to the JSON property `productDetails`
345
+ # @return [Array<Google::Apis::CssV1::ProductDetail>]
346
+ attr_accessor :product_details
347
+
348
+ # The dimension of the product.
349
+ # Corresponds to the JSON property `productHeight`
350
+ # @return [Google::Apis::CssV1::ProductDimension]
351
+ attr_accessor :product_height
352
+
353
+ # Bullet points describing the most relevant highlights of a product.
354
+ # Corresponds to the JSON property `productHighlights`
355
+ # @return [Array<String>]
356
+ attr_accessor :product_highlights
357
+
358
+ # The dimension of the product.
359
+ # Corresponds to the JSON property `productLength`
360
+ # @return [Google::Apis::CssV1::ProductDimension]
361
+ attr_accessor :product_length
362
+
363
+ # Categories of the item (formatted as in [products data specification](https://
364
+ # support.google.com/merchants/answer/6324406)).
365
+ # Corresponds to the JSON property `productTypes`
366
+ # @return [Array<String>]
367
+ attr_accessor :product_types
368
+
369
+ # The weight of the product.
370
+ # Corresponds to the JSON property `productWeight`
371
+ # @return [Google::Apis::CssV1::ProductWeight]
372
+ attr_accessor :product_weight
373
+
374
+ # The dimension of the product.
375
+ # Corresponds to the JSON property `productWidth`
376
+ # @return [Google::Apis::CssV1::ProductDimension]
377
+ attr_accessor :product_width
378
+
379
+ # Size of the item. Only one value is allowed. For variants with different sizes,
380
+ # insert a separate product for each size with the same `itemGroupId` value (
381
+ # see [https://support.google.com/merchants/answer/6324492](size definition)).
382
+ # Corresponds to the JSON property `size`
383
+ # @return [String]
384
+ attr_accessor :size
385
+
386
+ # System in which the size is specified. Recommended for apparel items.
387
+ # Corresponds to the JSON property `sizeSystem`
388
+ # @return [String]
389
+ attr_accessor :size_system
390
+
391
+ # The cut of the item. It can be used to represent combined size types for
392
+ # apparel items. Maximum two of size types can be provided (see [https://support.
393
+ # google.com/merchants/answer/6324497](size type)).
394
+ # Corresponds to the JSON property `sizeTypes`
395
+ # @return [Array<String>]
396
+ attr_accessor :size_types
397
+
398
+ # Title of the item.
399
+ # Corresponds to the JSON property `title`
400
+ # @return [String]
401
+ attr_accessor :title
402
+
403
+ def initialize(**args)
404
+ update!(**args)
405
+ end
406
+
407
+ # Update properties of this object
408
+ def update!(**args)
409
+ @additional_image_links = args[:additional_image_links] if args.key?(:additional_image_links)
410
+ @adult = args[:adult] if args.key?(:adult)
411
+ @age_group = args[:age_group] if args.key?(:age_group)
412
+ @brand = args[:brand] if args.key?(:brand)
413
+ @certifications = args[:certifications] if args.key?(:certifications)
414
+ @color = args[:color] if args.key?(:color)
415
+ @cpp_ads_redirect = args[:cpp_ads_redirect] if args.key?(:cpp_ads_redirect)
416
+ @cpp_link = args[:cpp_link] if args.key?(:cpp_link)
417
+ @cpp_mobile_link = args[:cpp_mobile_link] if args.key?(:cpp_mobile_link)
418
+ @custom_label0 = args[:custom_label0] if args.key?(:custom_label0)
419
+ @custom_label1 = args[:custom_label1] if args.key?(:custom_label1)
420
+ @custom_label2 = args[:custom_label2] if args.key?(:custom_label2)
421
+ @custom_label3 = args[:custom_label3] if args.key?(:custom_label3)
422
+ @custom_label4 = args[:custom_label4] if args.key?(:custom_label4)
423
+ @description = args[:description] if args.key?(:description)
424
+ @excluded_destinations = args[:excluded_destinations] if args.key?(:excluded_destinations)
425
+ @expiration_date = args[:expiration_date] if args.key?(:expiration_date)
426
+ @gender = args[:gender] if args.key?(:gender)
427
+ @google_product_category = args[:google_product_category] if args.key?(:google_product_category)
428
+ @gtin = args[:gtin] if args.key?(:gtin)
429
+ @headline_offer_condition = args[:headline_offer_condition] if args.key?(:headline_offer_condition)
430
+ @headline_offer_link = args[:headline_offer_link] if args.key?(:headline_offer_link)
431
+ @headline_offer_mobile_link = args[:headline_offer_mobile_link] if args.key?(:headline_offer_mobile_link)
432
+ @headline_offer_price = args[:headline_offer_price] if args.key?(:headline_offer_price)
433
+ @headline_offer_shipping_price = args[:headline_offer_shipping_price] if args.key?(:headline_offer_shipping_price)
434
+ @high_price = args[:high_price] if args.key?(:high_price)
435
+ @image_link = args[:image_link] if args.key?(:image_link)
436
+ @included_destinations = args[:included_destinations] if args.key?(:included_destinations)
437
+ @is_bundle = args[:is_bundle] if args.key?(:is_bundle)
438
+ @item_group_id = args[:item_group_id] if args.key?(:item_group_id)
439
+ @low_price = args[:low_price] if args.key?(:low_price)
440
+ @material = args[:material] if args.key?(:material)
441
+ @mpn = args[:mpn] if args.key?(:mpn)
442
+ @multipack = args[:multipack] if args.key?(:multipack)
443
+ @number_of_offers = args[:number_of_offers] if args.key?(:number_of_offers)
444
+ @pattern = args[:pattern] if args.key?(:pattern)
445
+ @pause = args[:pause] if args.key?(:pause)
446
+ @product_details = args[:product_details] if args.key?(:product_details)
447
+ @product_height = args[:product_height] if args.key?(:product_height)
448
+ @product_highlights = args[:product_highlights] if args.key?(:product_highlights)
449
+ @product_length = args[:product_length] if args.key?(:product_length)
450
+ @product_types = args[:product_types] if args.key?(:product_types)
451
+ @product_weight = args[:product_weight] if args.key?(:product_weight)
452
+ @product_width = args[:product_width] if args.key?(:product_width)
453
+ @size = args[:size] if args.key?(:size)
454
+ @size_system = args[:size_system] if args.key?(:size_system)
455
+ @size_types = args[:size_types] if args.key?(:size_types)
456
+ @title = args[:title] if args.key?(:title)
457
+ end
458
+ end
459
+
460
+ # The certification for the product. Use the this attribute to describe
461
+ # certifications, such as energy efficiency ratings, associated with a product.
462
+ class Certification
463
+ include Google::Apis::Core::Hashable
464
+
465
+ # The authority or certification body responsible for issuing the certification.
466
+ # At this time, the most common value is "EC" or “European_Commission” for
467
+ # energy labels in the EU.
468
+ # Corresponds to the JSON property `authority`
469
+ # @return [String]
470
+ attr_accessor :authority
471
+
472
+ # The code of the certification. For example, for the EPREL certificate with the
473
+ # link https://eprel.ec.europa.eu/screen/product/dishwashers2019/123456 the code
474
+ # is 123456. The code is required for European Energy Labels.
475
+ # Corresponds to the JSON property `code`
476
+ # @return [String]
477
+ attr_accessor :code
478
+
479
+ # The name of the certification. At this time, the most common value is "EPREL",
480
+ # which represents energy efficiency certifications in the EU European Registry
481
+ # for Energy Labeling (EPREL) database.
482
+ # Corresponds to the JSON property `name`
483
+ # @return [String]
484
+ attr_accessor :name
485
+
486
+ def initialize(**args)
487
+ update!(**args)
488
+ end
489
+
490
+ # Update properties of this object
491
+ def update!(**args)
492
+ @authority = args[:authority] if args.key?(:authority)
493
+ @code = args[:code] if args.key?(:code)
494
+ @name = args[:name] if args.key?(:name)
495
+ end
496
+ end
497
+
498
+ # The processed CSS Product(a.k.a Aggregate Offer internally).
499
+ class CssProduct
500
+ include Google::Apis::Core::Hashable
501
+
502
+ # Attributes for CSS Product.
503
+ # Corresponds to the JSON property `attributes`
504
+ # @return [Google::Apis::CssV1::Attributes]
505
+ attr_accessor :attributes
506
+
507
+ # Output only. The two-letter [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1)
508
+ # language code for the product.
509
+ # Corresponds to the JSON property `contentLanguage`
510
+ # @return [String]
511
+ attr_accessor :content_language
512
+
513
+ # The status of the Css Product, data validation issues, that is, information
514
+ # about the Css Product computed asynchronously.
515
+ # Corresponds to the JSON property `cssProductStatus`
516
+ # @return [Google::Apis::CssV1::CssProductStatus]
517
+ attr_accessor :css_product_status
518
+
519
+ # Output only. A list of custom (CSS-provided) attributes. It can also be used
520
+ # to submit any attribute of the feed specification in its generic form (for
521
+ # example, `` "name": "size type", "value": "regular" ``). This is useful for
522
+ # submitting attributes not explicitly exposed by the API, such as additional
523
+ # attributes used for Buy on Google.
524
+ # Corresponds to the JSON property `customAttributes`
525
+ # @return [Array<Google::Apis::CssV1::CustomAttribute>]
526
+ attr_accessor :custom_attributes
527
+
528
+ # Output only. The feed label for the product.
529
+ # Corresponds to the JSON property `feedLabel`
530
+ # @return [String]
531
+ attr_accessor :feed_label
532
+
533
+ # The name of the CSS Product. Format: `"accounts/`account`/cssProducts/`
534
+ # css_product`"`
535
+ # Corresponds to the JSON property `name`
536
+ # @return [String]
537
+ attr_accessor :name
538
+
539
+ # Output only. Your unique raw identifier for the product.
540
+ # Corresponds to the JSON property `rawProvidedId`
541
+ # @return [String]
542
+ attr_accessor :raw_provided_id
543
+
544
+ def initialize(**args)
545
+ update!(**args)
546
+ end
547
+
548
+ # Update properties of this object
549
+ def update!(**args)
550
+ @attributes = args[:attributes] if args.key?(:attributes)
551
+ @content_language = args[:content_language] if args.key?(:content_language)
552
+ @css_product_status = args[:css_product_status] if args.key?(:css_product_status)
553
+ @custom_attributes = args[:custom_attributes] if args.key?(:custom_attributes)
554
+ @feed_label = args[:feed_label] if args.key?(:feed_label)
555
+ @name = args[:name] if args.key?(:name)
556
+ @raw_provided_id = args[:raw_provided_id] if args.key?(:raw_provided_id)
557
+ end
558
+ end
559
+
560
+ # This resource represents input data you submit for a CSS Product, not the
561
+ # processed CSS Product that you see in CSS Center, in Shopping Ads, or across
562
+ # Google surfaces.
563
+ class CssProductInput
564
+ include Google::Apis::Core::Hashable
565
+
566
+ # Attributes for CSS Product.
567
+ # Corresponds to the JSON property `attributes`
568
+ # @return [Google::Apis::CssV1::Attributes]
569
+ attr_accessor :attributes
570
+
571
+ # Required. The two-letter [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1)
572
+ # language code for the CSS Product.
573
+ # Corresponds to the JSON property `contentLanguage`
574
+ # @return [String]
575
+ attr_accessor :content_language
576
+
577
+ # A list of custom (CSS-provided) attributes. It can also be used for submitting
578
+ # any attribute of the feed specification in its generic form (for example: `` "
579
+ # name": "size type", "value": "regular" ``). This is useful for submitting
580
+ # attributes not explicitly exposed by the API, such as additional attributes
581
+ # used for Buy on Google.
582
+ # Corresponds to the JSON property `customAttributes`
583
+ # @return [Array<Google::Apis::CssV1::CustomAttribute>]
584
+ attr_accessor :custom_attributes
585
+
586
+ # Required. The [feed label](https://developers.google.com/shopping-content/
587
+ # guides/products/feed-labels) for the CSS Product. Feed Label is synonymous to "
588
+ # target country" and hence should always be a valid region code. For example: '
589
+ # DE' for Germany, 'FR' for France.
590
+ # Corresponds to the JSON property `feedLabel`
591
+ # @return [String]
592
+ attr_accessor :feed_label
593
+
594
+ # Output only. The name of the processed CSS Product. Format: `accounts/`account`
595
+ # /cssProducts/`css_product`` "
596
+ # Corresponds to the JSON property `finalName`
597
+ # @return [String]
598
+ attr_accessor :final_name
599
+
600
+ # Represents the existing version (freshness) of the CSS Product, which can be
601
+ # used to preserve the right order when multiple updates are done at the same
602
+ # time. This field must not be set to the future time. If set, the update is
603
+ # prevented if a newer version of the item already exists in our system (that is
604
+ # the last update time of the existing CSS products is later than the freshness
605
+ # time set in the update). If the update happens, the last update time is then
606
+ # set to this freshness time. If not set, the update will not be prevented and
607
+ # the last update time will default to when this request was received by the CSS
608
+ # API. If the operation is prevented, the aborted exception will be thrown.
609
+ # Corresponds to the JSON property `freshnessTime`
610
+ # @return [String]
611
+ attr_accessor :freshness_time
612
+
613
+ # The name of the CSS Product input. Format: `accounts/`account`/
614
+ # cssProductInputs/`css_product_input``
615
+ # Corresponds to the JSON property `name`
616
+ # @return [String]
617
+ attr_accessor :name
618
+
619
+ # Required. Your unique identifier for the CSS Product. This is the same for the
620
+ # CSS Product input and processed CSS Product. We only allow ids with
621
+ # alphanumerics, underscores and dashes. See the [products feed specification](
622
+ # https://support.google.com/merchants/answer/188494#id) for details.
623
+ # Corresponds to the JSON property `rawProvidedId`
624
+ # @return [String]
625
+ attr_accessor :raw_provided_id
626
+
627
+ def initialize(**args)
628
+ update!(**args)
629
+ end
630
+
631
+ # Update properties of this object
632
+ def update!(**args)
633
+ @attributes = args[:attributes] if args.key?(:attributes)
634
+ @content_language = args[:content_language] if args.key?(:content_language)
635
+ @custom_attributes = args[:custom_attributes] if args.key?(:custom_attributes)
636
+ @feed_label = args[:feed_label] if args.key?(:feed_label)
637
+ @final_name = args[:final_name] if args.key?(:final_name)
638
+ @freshness_time = args[:freshness_time] if args.key?(:freshness_time)
639
+ @name = args[:name] if args.key?(:name)
640
+ @raw_provided_id = args[:raw_provided_id] if args.key?(:raw_provided_id)
641
+ end
642
+ end
643
+
644
+ # The status of the Css Product, data validation issues, that is, information
645
+ # about the Css Product computed asynchronously.
646
+ class CssProductStatus
647
+ include Google::Apis::Core::Hashable
648
+
649
+ # Date on which the item has been created, in [ISO 8601](http://en.wikipedia.org/
650
+ # wiki/ISO_8601) format.
651
+ # Corresponds to the JSON property `creationDate`
652
+ # @return [String]
653
+ attr_accessor :creation_date
654
+
655
+ # The intended destinations for the product.
656
+ # Corresponds to the JSON property `destinationStatuses`
657
+ # @return [Array<Google::Apis::CssV1::DestinationStatus>]
658
+ attr_accessor :destination_statuses
659
+
660
+ # Date on which the item expires, in [ISO 8601](http://en.wikipedia.org/wiki/
661
+ # ISO_8601) format.
662
+ # Corresponds to the JSON property `googleExpirationDate`
663
+ # @return [String]
664
+ attr_accessor :google_expiration_date
665
+
666
+ # A list of all issues associated with the product.
667
+ # Corresponds to the JSON property `itemLevelIssues`
668
+ # @return [Array<Google::Apis::CssV1::ItemLevelIssue>]
669
+ attr_accessor :item_level_issues
670
+
671
+ # Date on which the item has been last updated, in [ISO 8601](http://en.
672
+ # wikipedia.org/wiki/ISO_8601) format.
673
+ # Corresponds to the JSON property `lastUpdateDate`
674
+ # @return [String]
675
+ attr_accessor :last_update_date
676
+
677
+ def initialize(**args)
678
+ update!(**args)
679
+ end
680
+
681
+ # Update properties of this object
682
+ def update!(**args)
683
+ @creation_date = args[:creation_date] if args.key?(:creation_date)
684
+ @destination_statuses = args[:destination_statuses] if args.key?(:destination_statuses)
685
+ @google_expiration_date = args[:google_expiration_date] if args.key?(:google_expiration_date)
686
+ @item_level_issues = args[:item_level_issues] if args.key?(:item_level_issues)
687
+ @last_update_date = args[:last_update_date] if args.key?(:last_update_date)
688
+ end
689
+ end
690
+
691
+ # A message that represents custom attributes. Exactly one of `value` or `
692
+ # group_values` must not be empty.
693
+ class CustomAttribute
694
+ include Google::Apis::Core::Hashable
695
+
696
+ # Subattributes within this attribute group. If `group_values` is not empty, `
697
+ # value` must be empty.
698
+ # Corresponds to the JSON property `groupValues`
699
+ # @return [Array<Google::Apis::CssV1::CustomAttribute>]
700
+ attr_accessor :group_values
701
+
702
+ # The name of the attribute.
703
+ # Corresponds to the JSON property `name`
704
+ # @return [String]
705
+ attr_accessor :name
706
+
707
+ # The value of the attribute. If `value` is not empty, `group_values` must be
708
+ # empty.
709
+ # Corresponds to the JSON property `value`
710
+ # @return [String]
711
+ attr_accessor :value
712
+
713
+ def initialize(**args)
714
+ update!(**args)
715
+ end
716
+
717
+ # Update properties of this object
718
+ def update!(**args)
719
+ @group_values = args[:group_values] if args.key?(:group_values)
720
+ @name = args[:name] if args.key?(:name)
721
+ @value = args[:value] if args.key?(:value)
722
+ end
723
+ end
724
+
725
+ # The destination status of the product status.
726
+ class DestinationStatus
727
+ include Google::Apis::Core::Hashable
728
+
729
+ # List of country codes (ISO 3166-1 alpha-2) where the aggregate offer is
730
+ # approved.
731
+ # Corresponds to the JSON property `approvedCountries`
732
+ # @return [Array<String>]
733
+ attr_accessor :approved_countries
734
+
735
+ # The name of the destination
736
+ # Corresponds to the JSON property `destination`
737
+ # @return [String]
738
+ attr_accessor :destination
739
+
740
+ # List of country codes (ISO 3166-1 alpha-2) where the aggregate offer is
741
+ # disapproved.
742
+ # Corresponds to the JSON property `disapprovedCountries`
743
+ # @return [Array<String>]
744
+ attr_accessor :disapproved_countries
745
+
746
+ # List of country codes (ISO 3166-1 alpha-2) where the aggregate offer is
747
+ # pending approval.
748
+ # Corresponds to the JSON property `pendingCountries`
749
+ # @return [Array<String>]
750
+ attr_accessor :pending_countries
751
+
752
+ def initialize(**args)
753
+ update!(**args)
754
+ end
755
+
756
+ # Update properties of this object
757
+ def update!(**args)
758
+ @approved_countries = args[:approved_countries] if args.key?(:approved_countries)
759
+ @destination = args[:destination] if args.key?(:destination)
760
+ @disapproved_countries = args[:disapproved_countries] if args.key?(:disapproved_countries)
761
+ @pending_countries = args[:pending_countries] if args.key?(:pending_countries)
762
+ end
763
+ end
764
+
765
+ # A generic empty message that you can re-use to avoid defining duplicated empty
766
+ # messages in your APIs. A typical example is to use it as the request or the
767
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
768
+ # protobuf.Empty) returns (google.protobuf.Empty); `
769
+ class Empty
770
+ include Google::Apis::Core::Hashable
771
+
772
+ def initialize(**args)
773
+ update!(**args)
774
+ end
775
+
776
+ # Update properties of this object
777
+ def update!(**args)
778
+ end
779
+ end
780
+
781
+ # The ItemLevelIssue of the product status.
782
+ class ItemLevelIssue
783
+ include Google::Apis::Core::Hashable
784
+
785
+ # List of country codes (ISO 3166-1 alpha-2) where issue applies to the
786
+ # aggregate offer.
787
+ # Corresponds to the JSON property `applicableCountries`
788
+ # @return [Array<String>]
789
+ attr_accessor :applicable_countries
790
+
791
+ # The attribute's name, if the issue is caused by a single attribute.
792
+ # Corresponds to the JSON property `attribute`
793
+ # @return [String]
794
+ attr_accessor :attribute
795
+
796
+ # The error code of the issue.
797
+ # Corresponds to the JSON property `code`
798
+ # @return [String]
799
+ attr_accessor :code
800
+
801
+ # A short issue description in English.
802
+ # Corresponds to the JSON property `description`
803
+ # @return [String]
804
+ attr_accessor :description
805
+
806
+ # The destination the issue applies to.
807
+ # Corresponds to the JSON property `destination`
808
+ # @return [String]
809
+ attr_accessor :destination
810
+
811
+ # A detailed issue description in English.
812
+ # Corresponds to the JSON property `detail`
813
+ # @return [String]
814
+ attr_accessor :detail
815
+
816
+ # The URL of a web page to help with resolving this issue.
817
+ # Corresponds to the JSON property `documentation`
818
+ # @return [String]
819
+ attr_accessor :documentation
820
+
821
+ # Whether the issue can be resolved by the merchant.
822
+ # Corresponds to the JSON property `resolution`
823
+ # @return [String]
824
+ attr_accessor :resolution
825
+
826
+ # How this issue affects serving of the aggregate offer.
827
+ # Corresponds to the JSON property `servability`
828
+ # @return [String]
829
+ attr_accessor :servability
830
+
831
+ def initialize(**args)
832
+ update!(**args)
833
+ end
834
+
835
+ # Update properties of this object
836
+ def update!(**args)
837
+ @applicable_countries = args[:applicable_countries] if args.key?(:applicable_countries)
838
+ @attribute = args[:attribute] if args.key?(:attribute)
839
+ @code = args[:code] if args.key?(:code)
840
+ @description = args[:description] if args.key?(:description)
841
+ @destination = args[:destination] if args.key?(:destination)
842
+ @detail = args[:detail] if args.key?(:detail)
843
+ @documentation = args[:documentation] if args.key?(:documentation)
844
+ @resolution = args[:resolution] if args.key?(:resolution)
845
+ @servability = args[:servability] if args.key?(:servability)
846
+ end
847
+ end
848
+
849
+ # Response message for the `ListAccountLabels` method.
850
+ class ListAccountLabelsResponse
851
+ include Google::Apis::Core::Hashable
852
+
853
+ # The labels from the specified account.
854
+ # Corresponds to the JSON property `accountLabels`
855
+ # @return [Array<Google::Apis::CssV1::AccountLabel>]
856
+ attr_accessor :account_labels
857
+
858
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
859
+ # field is omitted, there are no subsequent pages.
860
+ # Corresponds to the JSON property `nextPageToken`
861
+ # @return [String]
862
+ attr_accessor :next_page_token
863
+
864
+ def initialize(**args)
865
+ update!(**args)
866
+ end
867
+
868
+ # Update properties of this object
869
+ def update!(**args)
870
+ @account_labels = args[:account_labels] if args.key?(:account_labels)
871
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
872
+ end
873
+ end
874
+
875
+ # Response message for the `ListChildAccounts` method.
876
+ class ListChildAccountsResponse
877
+ include Google::Apis::Core::Hashable
878
+
879
+ # The CSS/MC accounts returned for the specified CSS parent account.
880
+ # Corresponds to the JSON property `accounts`
881
+ # @return [Array<Google::Apis::CssV1::Account>]
882
+ attr_accessor :accounts
883
+
884
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
885
+ # field is omitted, there are no subsequent pages.
886
+ # Corresponds to the JSON property `nextPageToken`
887
+ # @return [String]
888
+ attr_accessor :next_page_token
889
+
890
+ def initialize(**args)
891
+ update!(**args)
892
+ end
893
+
894
+ # Update properties of this object
895
+ def update!(**args)
896
+ @accounts = args[:accounts] if args.key?(:accounts)
897
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
898
+ end
899
+ end
900
+
901
+ # Response message for the ListCssProducts method.
902
+ class ListCssProductsResponse
903
+ include Google::Apis::Core::Hashable
904
+
905
+ # The processed CSS products from the specified account. These are your
906
+ # processed CSS products after applying rules and supplemental feeds.
907
+ # Corresponds to the JSON property `cssProducts`
908
+ # @return [Array<Google::Apis::CssV1::CssProduct>]
909
+ attr_accessor :css_products
910
+
911
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
912
+ # field is omitted, there are no subsequent pages.
913
+ # Corresponds to the JSON property `nextPageToken`
914
+ # @return [String]
915
+ attr_accessor :next_page_token
916
+
917
+ def initialize(**args)
918
+ update!(**args)
919
+ end
920
+
921
+ # Update properties of this object
922
+ def update!(**args)
923
+ @css_products = args[:css_products] if args.key?(:css_products)
924
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
925
+ end
926
+ end
927
+
928
+ # The price represented as a number and currency.
929
+ class Price
930
+ include Google::Apis::Core::Hashable
931
+
932
+ # The price represented as a number in micros (1 million micros is an equivalent
933
+ # to one's currency standard unit, for example, 1 USD = 1000000 micros).
934
+ # Corresponds to the JSON property `amountMicros`
935
+ # @return [Fixnum]
936
+ attr_accessor :amount_micros
937
+
938
+ # The currency of the price using three-letter acronyms according to [ISO 4217](
939
+ # http://en.wikipedia.org/wiki/ISO_4217).
940
+ # Corresponds to the JSON property `currencyCode`
941
+ # @return [String]
942
+ attr_accessor :currency_code
943
+
944
+ def initialize(**args)
945
+ update!(**args)
946
+ end
947
+
948
+ # Update properties of this object
949
+ def update!(**args)
950
+ @amount_micros = args[:amount_micros] if args.key?(:amount_micros)
951
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
952
+ end
953
+ end
954
+
955
+ # The product details.
956
+ class ProductDetail
957
+ include Google::Apis::Core::Hashable
958
+
959
+ # The name of the product detail.
960
+ # Corresponds to the JSON property `attributeName`
961
+ # @return [String]
962
+ attr_accessor :attribute_name
963
+
964
+ # The value of the product detail.
965
+ # Corresponds to the JSON property `attributeValue`
966
+ # @return [String]
967
+ attr_accessor :attribute_value
968
+
969
+ # The section header used to group a set of product details.
970
+ # Corresponds to the JSON property `sectionName`
971
+ # @return [String]
972
+ attr_accessor :section_name
973
+
974
+ def initialize(**args)
975
+ update!(**args)
976
+ end
977
+
978
+ # Update properties of this object
979
+ def update!(**args)
980
+ @attribute_name = args[:attribute_name] if args.key?(:attribute_name)
981
+ @attribute_value = args[:attribute_value] if args.key?(:attribute_value)
982
+ @section_name = args[:section_name] if args.key?(:section_name)
983
+ end
984
+ end
985
+
986
+ # The dimension of the product.
987
+ class ProductDimension
988
+ include Google::Apis::Core::Hashable
989
+
990
+ # Required. The dimension units. Acceptable values are: * "`in`" * "`cm`"
991
+ # Corresponds to the JSON property `unit`
992
+ # @return [String]
993
+ attr_accessor :unit
994
+
995
+ # Required. The dimension value represented as a number. The value can have a
996
+ # maximum precision of four decimal places.
997
+ # Corresponds to the JSON property `value`
998
+ # @return [Float]
999
+ attr_accessor :value
1000
+
1001
+ def initialize(**args)
1002
+ update!(**args)
1003
+ end
1004
+
1005
+ # Update properties of this object
1006
+ def update!(**args)
1007
+ @unit = args[:unit] if args.key?(:unit)
1008
+ @value = args[:value] if args.key?(:value)
1009
+ end
1010
+ end
1011
+
1012
+ # The weight of the product.
1013
+ class ProductWeight
1014
+ include Google::Apis::Core::Hashable
1015
+
1016
+ # Required. The weight unit. Acceptable values are: * "`g`" * "`kg`" * "`oz`" * "
1017
+ # `lb`"
1018
+ # Corresponds to the JSON property `unit`
1019
+ # @return [String]
1020
+ attr_accessor :unit
1021
+
1022
+ # Required. The weight represented as a number. The weight can have a maximum
1023
+ # precision of four decimal places.
1024
+ # Corresponds to the JSON property `value`
1025
+ # @return [Float]
1026
+ attr_accessor :value
1027
+
1028
+ def initialize(**args)
1029
+ update!(**args)
1030
+ end
1031
+
1032
+ # Update properties of this object
1033
+ def update!(**args)
1034
+ @unit = args[:unit] if args.key?(:unit)
1035
+ @value = args[:value] if args.key?(:value)
1036
+ end
1037
+ end
1038
+
1039
+ # The request message for the `UpdateLabels` method.
1040
+ class UpdateAccountLabelsRequest
1041
+ include Google::Apis::Core::Hashable
1042
+
1043
+ # The list of label IDs to overwrite the existing account label IDs. If the list
1044
+ # is empty, all currently assigned label IDs will be deleted.
1045
+ # Corresponds to the JSON property `labelIds`
1046
+ # @return [Array<Fixnum>]
1047
+ attr_accessor :label_ids
1048
+
1049
+ # Optional. Only required when updating MC account labels. The CSS domain that
1050
+ # is the parent resource of the MC account. Format: accounts/`account`
1051
+ # Corresponds to the JSON property `parent`
1052
+ # @return [String]
1053
+ attr_accessor :parent
1054
+
1055
+ def initialize(**args)
1056
+ update!(**args)
1057
+ end
1058
+
1059
+ # Update properties of this object
1060
+ def update!(**args)
1061
+ @label_ids = args[:label_ids] if args.key?(:label_ids)
1062
+ @parent = args[:parent] if args.key?(:parent)
1063
+ end
1064
+ end
1065
+ end
1066
+ end
1067
+ end