google-apis-css_v1 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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