google-apis-retail_v2 0.10.0 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 179aee4191d5ed180874e4f0bf1fd128e6767d1456a3235d7fcc0667fd32d0b9
4
- data.tar.gz: db056efc0584666c5ed9338ff34455949acd063cd3ed7ad144683208ed558a2c
3
+ metadata.gz: 6f3a50c96198bec7340b74cab8eadcda2abcb4705e31afcabf1211b705e3673d
4
+ data.tar.gz: 2a6af9423fcf78ccaa8d0a1081bde3f8c94c487212984e77f8fb649a5c9f8ca8
5
5
  SHA512:
6
- metadata.gz: 03440fe5f55343c6f461caa64c5084fbc48bf08c31766a2ead76f18fdb2453c52d4fe63bb968194e10915a63ef5b3b526476865953a9c5affb3a8548af3637ae
7
- data.tar.gz: c7033cef9e66081dc8816a5a147df757d0fd9f0b81d37658ff3a79d87549b46483ce3a62d3c83b07946f3b2594c94dbdee3c96f929f553433af06836ba03e4b3
6
+ metadata.gz: b6d64aeafd83c0eab1fc569a960cb9ad2caf098eb138c7603e0a2745b91d6caae9eb0310a6715382cc9eb35573dd687afcbe62dd0ad281f8e9d97a1e5910ff26
7
+ data.tar.gz: cbc596f534cb9089369229071ef8cb65757f13693e48289fd1bc69aa5c57f271c81be2e2b3ff880f3056911ec542d80650298e28253b2923db07b1699a808b5e
data/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Release history for google-apis-retail_v2
2
2
 
3
+ ### v0.14.0 (2021-09-01)
4
+
5
+ * Regenerated from discovery document revision 20210819
6
+
7
+ ### v0.13.0 (2021-07-24)
8
+
9
+ * Regenerated from discovery document revision 20210723
10
+
11
+ ### v0.12.0 (2021-07-14)
12
+
13
+ * Regenerated from discovery document revision 20210702
14
+
15
+ ### v0.11.0 (2021-07-03)
16
+
17
+ * Regenerated from discovery document revision 20210625
18
+ * Regenerated using generator version 0.4.0
19
+
3
20
  ### v0.10.0 (2021-06-24)
4
21
 
5
22
  * Regenerated from discovery document revision 20210614
@@ -279,6 +279,129 @@ module Google
279
279
  end
280
280
  end
281
281
 
282
+ # Metadata related to the progress of the AddFulfillmentPlaces operation.
283
+ # Currently empty because there is no meaningful metadata populated from the
284
+ # AddFulfillmentPlaces method.
285
+ class GoogleCloudRetailV2AddFulfillmentPlacesMetadata
286
+ include Google::Apis::Core::Hashable
287
+
288
+ def initialize(**args)
289
+ update!(**args)
290
+ end
291
+
292
+ # Update properties of this object
293
+ def update!(**args)
294
+ end
295
+ end
296
+
297
+ # Request message for AddFulfillmentPlaces method.
298
+ class GoogleCloudRetailV2AddFulfillmentPlacesRequest
299
+ include Google::Apis::Core::Hashable
300
+
301
+ # The time when the fulfillment updates are issued, used to prevent out-of-order
302
+ # updates on fulfillment information. If not provided, the internal system time
303
+ # will be used.
304
+ # Corresponds to the JSON property `addTime`
305
+ # @return [String]
306
+ attr_accessor :add_time
307
+
308
+ # If set to true, and the Product is not found, the fulfillment information will
309
+ # still be processed and retained for at most 1 day and processed once the
310
+ # Product is created. If set to false, an INVALID_ARGUMENT error is returned if
311
+ # the Product is not found.
312
+ # Corresponds to the JSON property `allowMissing`
313
+ # @return [Boolean]
314
+ attr_accessor :allow_missing
315
+ alias_method :allow_missing?, :allow_missing
316
+
317
+ # Required. The IDs for this type, such as the store IDs for "pickup-in-store"
318
+ # or the region IDs for "same-day-delivery" to be added for this type. Duplicate
319
+ # IDs will be automatically ignored. At least 1 value is required, and a maximum
320
+ # of 2000 values are allowed. Each value must be a string with a length limit of
321
+ # 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "
322
+ # REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. If the total
323
+ # number of place IDs exceeds 2000 for this type after adding, then the update
324
+ # will be rejected.
325
+ # Corresponds to the JSON property `placeIds`
326
+ # @return [Array<String>]
327
+ attr_accessor :place_ids
328
+
329
+ # Required. The fulfillment type, including commonly used types (such as pickup
330
+ # in store and same day delivery), and custom types. Supported values: * "pickup-
331
+ # in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "
332
+ # custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-
333
+ # type-5" If this field is set to an invalid value other than these, an
334
+ # INVALID_ARGUMENT error is returned. This field directly corresponds to Product.
335
+ # fulfillment_info.type.
336
+ # Corresponds to the JSON property `type`
337
+ # @return [String]
338
+ attr_accessor :type
339
+
340
+ def initialize(**args)
341
+ update!(**args)
342
+ end
343
+
344
+ # Update properties of this object
345
+ def update!(**args)
346
+ @add_time = args[:add_time] if args.key?(:add_time)
347
+ @allow_missing = args[:allow_missing] if args.key?(:allow_missing)
348
+ @place_ids = args[:place_ids] if args.key?(:place_ids)
349
+ @type = args[:type] if args.key?(:type)
350
+ end
351
+ end
352
+
353
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
354
+ # is no meaningful response populated from the AddFulfillmentPlaces method.
355
+ class GoogleCloudRetailV2AddFulfillmentPlacesResponse
356
+ include Google::Apis::Core::Hashable
357
+
358
+ def initialize(**args)
359
+ update!(**args)
360
+ end
361
+
362
+ # Update properties of this object
363
+ def update!(**args)
364
+ end
365
+ end
366
+
367
+ # An intended audience of the Product for whom it's sold.
368
+ class GoogleCloudRetailV2Audience
369
+ include Google::Apis::Core::Hashable
370
+
371
+ # The age groups of the audience. Strongly encouraged to use the standard values:
372
+ # "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5
373
+ # years old), "kids" (5–13 years old), "adult" (typically teens or older). At
374
+ # most 5 values are allowed. Each value must be a UTF-8 encoded string with a
375
+ # length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is
376
+ # returned. Google Merchant Center property [age_group](https://support.google.
377
+ # com/merchants/answer/6324463). Schema.org property [Product.audience.
378
+ # suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.
379
+ # suggestedMaxAge](https://schema.org/suggestedMaxAge).
380
+ # Corresponds to the JSON property `ageGroups`
381
+ # @return [Array<String>]
382
+ attr_accessor :age_groups
383
+
384
+ # The genders of the audience. Strongly encouraged to use the standard values: "
385
+ # male", "female", "unisex". At most 5 values are allowed. Each value must be a
386
+ # UTF-8 encoded string with a length limit of 128 characters. Otherwise, an
387
+ # INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](
388
+ # https://support.google.com/merchants/answer/6324479). Schema.org property [
389
+ # Product.audience.suggestedGender](https://schema.org/suggestedGender).
390
+ # Corresponds to the JSON property `genders`
391
+ # @return [Array<String>]
392
+ attr_accessor :genders
393
+
394
+ def initialize(**args)
395
+ update!(**args)
396
+ end
397
+
398
+ # Update properties of this object
399
+ def update!(**args)
400
+ @age_groups = args[:age_groups] if args.key?(:age_groups)
401
+ @genders = args[:genders] if args.key?(:genders)
402
+ end
403
+ end
404
+
282
405
  # BigQuery source import data from.
283
406
  class GoogleCloudRetailV2BigQuerySource
284
407
  include Google::Apis::Core::Hashable
@@ -289,8 +412,7 @@ module Google
289
412
  # Importing catalog data from Merchant Center](https://cloud.google.com/retail/
290
413
  # recommendations-ai/docs/upload-catalog#mc). Supported values for user events
291
414
  # imports: * `user_event` (default): One JSON UserEvent per line. * `
292
- # user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?
293
- # hl=en.
415
+ # user_event_ga360`: Using https://support.google.com/analytics/answer/3437719.
294
416
  # Corresponds to the JSON property `dataSchema`
295
417
  # @return [String]
296
418
  attr_accessor :data_schema
@@ -308,6 +430,18 @@ module Google
308
430
  # @return [String]
309
431
  attr_accessor :gcs_staging_dir
310
432
 
433
+ # Represents a whole or partial calendar date, such as a birthday. The time of
434
+ # day and time zone are either specified elsewhere or are insignificant. The
435
+ # date is relative to the Gregorian Calendar. This can represent one of the
436
+ # following: * A full date, with non-zero year, month, and day values * A month
437
+ # and day value, with a zero year, such as an anniversary * A year on its own,
438
+ # with zero month and day values * A year and month value, with a zero day, such
439
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
440
+ # google.protobuf.Timestamp`.
441
+ # Corresponds to the JSON property `partitionDate`
442
+ # @return [Google::Apis::RetailV2::GoogleTypeDate]
443
+ attr_accessor :partition_date
444
+
311
445
  # The project ID (can be project # or ID) that the BigQuery source is in with a
312
446
  # length limit of 128 characters. If not specified, inherits the project ID from
313
447
  # the parent request.
@@ -330,6 +464,7 @@ module Google
330
464
  @data_schema = args[:data_schema] if args.key?(:data_schema)
331
465
  @dataset_id = args[:dataset_id] if args.key?(:dataset_id)
332
466
  @gcs_staging_dir = args[:gcs_staging_dir] if args.key?(:gcs_staging_dir)
467
+ @partition_date = args[:partition_date] if args.key?(:partition_date)
333
468
  @project_id = args[:project_id] if args.key?(:project_id)
334
469
  @table_id = args[:table_id] if args.key?(:table_id)
335
470
  end
@@ -369,10 +504,197 @@ module Google
369
504
  end
370
505
  end
371
506
 
507
+ # The color information of a Product.
508
+ class GoogleCloudRetailV2ColorInfo
509
+ include Google::Apis::Core::Hashable
510
+
511
+ # The standard color families. Strongly recommended to use the following
512
+ # standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "
513
+ # Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is
514
+ # expected to have only 1 color family. May consider using single "Mixed"
515
+ # instead of multiple values. A maximum of 5 values are allowed. Each value must
516
+ # be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an
517
+ # INVALID_ARGUMENT error is returned. Google Merchant Center property [color](
518
+ # https://support.google.com/merchants/answer/6324487). Schema.org property [
519
+ # Product.color](https://schema.org/color).
520
+ # Corresponds to the JSON property `colorFamilies`
521
+ # @return [Array<String>]
522
+ attr_accessor :color_families
523
+
524
+ # The color display names, which may be different from standard color family
525
+ # names, such as the color aliases used in the website frontend. Normally it is
526
+ # expected to have only 1 color. May consider using single "Mixed" instead of
527
+ # multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8
528
+ # encoded string with a length limit of 128 characters. Otherwise, an
529
+ # INVALID_ARGUMENT error is returned. Google Merchant Center property [color](
530
+ # https://support.google.com/merchants/answer/6324487). Schema.org property [
531
+ # Product.color](https://schema.org/color).
532
+ # Corresponds to the JSON property `colors`
533
+ # @return [Array<String>]
534
+ attr_accessor :colors
535
+
536
+ def initialize(**args)
537
+ update!(**args)
538
+ end
539
+
540
+ # Update properties of this object
541
+ def update!(**args)
542
+ @color_families = args[:color_families] if args.key?(:color_families)
543
+ @colors = args[:colors] if args.key?(:colors)
544
+ end
545
+ end
546
+
547
+ # Response of the auto-complete query.
548
+ class GoogleCloudRetailV2CompleteQueryResponse
549
+ include Google::Apis::Core::Hashable
550
+
551
+ # A unique complete token. This should be included in the SearchRequest
552
+ # resulting from this completion, which enables accurate attribution of complete
553
+ # model performance.
554
+ # Corresponds to the JSON property `attributionToken`
555
+ # @return [String]
556
+ attr_accessor :attribution_token
557
+
558
+ # Results of the matching suggestions. The result list is ordered and the first
559
+ # result is top suggestion.
560
+ # Corresponds to the JSON property `completionResults`
561
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2CompleteQueryResponseCompletionResult>]
562
+ attr_accessor :completion_results
563
+
564
+ # Matched recent searches of this user. The maximum number of recent searches is
565
+ # 10. This field is a restricted feature. Contact Retail Search support team if
566
+ # you are interested in enabling it. This feature is only available when
567
+ # CompleteQueryRequest.visitor_id field is set and UserEvent is imported. The
568
+ # recent searches satisfy the follow rules: * They are ordered from latest to
569
+ # oldest. * They are matched with CompleteQueryRequest.query case insensitively.
570
+ # * They are transformed to lower cases. * They are UTF-8 safe. Recent searches
571
+ # are deduplicated. More recent searches will be reserved when duplication
572
+ # happens.
573
+ # Corresponds to the JSON property `recentSearchResults`
574
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2CompleteQueryResponseRecentSearchResult>]
575
+ attr_accessor :recent_search_results
576
+
577
+ def initialize(**args)
578
+ update!(**args)
579
+ end
580
+
581
+ # Update properties of this object
582
+ def update!(**args)
583
+ @attribution_token = args[:attribution_token] if args.key?(:attribution_token)
584
+ @completion_results = args[:completion_results] if args.key?(:completion_results)
585
+ @recent_search_results = args[:recent_search_results] if args.key?(:recent_search_results)
586
+ end
587
+ end
588
+
589
+ # Resource that represents completion results.
590
+ class GoogleCloudRetailV2CompleteQueryResponseCompletionResult
591
+ include Google::Apis::Core::Hashable
592
+
593
+ # Additional custom attributes ingested through BigQuery.
594
+ # Corresponds to the JSON property `attributes`
595
+ # @return [Hash<String,Google::Apis::RetailV2::GoogleCloudRetailV2CustomAttribute>]
596
+ attr_accessor :attributes
597
+
598
+ # The suggestion for the query.
599
+ # Corresponds to the JSON property `suggestion`
600
+ # @return [String]
601
+ attr_accessor :suggestion
602
+
603
+ def initialize(**args)
604
+ update!(**args)
605
+ end
606
+
607
+ # Update properties of this object
608
+ def update!(**args)
609
+ @attributes = args[:attributes] if args.key?(:attributes)
610
+ @suggestion = args[:suggestion] if args.key?(:suggestion)
611
+ end
612
+ end
613
+
614
+ # Recent search of this user.
615
+ class GoogleCloudRetailV2CompleteQueryResponseRecentSearchResult
616
+ include Google::Apis::Core::Hashable
617
+
618
+ # The recent search query.
619
+ # Corresponds to the JSON property `recentSearch`
620
+ # @return [String]
621
+ attr_accessor :recent_search
622
+
623
+ def initialize(**args)
624
+ update!(**args)
625
+ end
626
+
627
+ # Update properties of this object
628
+ def update!(**args)
629
+ @recent_search = args[:recent_search] if args.key?(:recent_search)
630
+ end
631
+ end
632
+
633
+ # The input config source for completion data.
634
+ class GoogleCloudRetailV2CompletionDataInputConfig
635
+ include Google::Apis::Core::Hashable
636
+
637
+ # BigQuery source import data from.
638
+ # Corresponds to the JSON property `bigQuerySource`
639
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2BigQuerySource]
640
+ attr_accessor :big_query_source
641
+
642
+ def initialize(**args)
643
+ update!(**args)
644
+ end
645
+
646
+ # Update properties of this object
647
+ def update!(**args)
648
+ @big_query_source = args[:big_query_source] if args.key?(:big_query_source)
649
+ end
650
+ end
651
+
652
+ # Detailed completion information including completion attribution token and
653
+ # clicked completion info.
654
+ class GoogleCloudRetailV2CompletionDetail
655
+ include Google::Apis::Core::Hashable
656
+
657
+ # Completion attribution token in CompleteQueryResponse.attribution_token.
658
+ # Corresponds to the JSON property `completionAttributionToken`
659
+ # @return [String]
660
+ attr_accessor :completion_attribution_token
661
+
662
+ # End user selected CompleteQueryResponse.CompletionResult.suggestion position,
663
+ # starting from 0.
664
+ # Corresponds to the JSON property `selectedPosition`
665
+ # @return [Fixnum]
666
+ attr_accessor :selected_position
667
+
668
+ # End user selected CompleteQueryResponse.CompletionResult.suggestion.
669
+ # Corresponds to the JSON property `selectedSuggestion`
670
+ # @return [String]
671
+ attr_accessor :selected_suggestion
672
+
673
+ def initialize(**args)
674
+ update!(**args)
675
+ end
676
+
677
+ # Update properties of this object
678
+ def update!(**args)
679
+ @completion_attribution_token = args[:completion_attribution_token] if args.key?(:completion_attribution_token)
680
+ @selected_position = args[:selected_position] if args.key?(:selected_position)
681
+ @selected_suggestion = args[:selected_suggestion] if args.key?(:selected_suggestion)
682
+ end
683
+ end
684
+
372
685
  # A custom attribute that is not explicitly modeled in Product.
373
686
  class GoogleCloudRetailV2CustomAttribute
374
687
  include Google::Apis::Core::Hashable
375
688
 
689
+ # If true, custom attribute values are indexed, so that it can be filtered,
690
+ # faceted or boosted in SearchService.Search. This field is ignored in a
691
+ # UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and
692
+ # SearchRequest.boost_spec for more details.
693
+ # Corresponds to the JSON property `indexable`
694
+ # @return [Boolean]
695
+ attr_accessor :indexable
696
+ alias_method :indexable?, :indexable
697
+
376
698
  # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when
377
699
  # the key is "lengths_cm". At most 400 values are allowed.Otherwise, an
378
700
  # INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be
@@ -381,6 +703,14 @@ module Google
381
703
  # @return [Array<Float>]
382
704
  attr_accessor :numbers
383
705
 
706
+ # If true, custom attribute values are searchable by text queries in
707
+ # SearchService.Search. This field is ignored in a UserEvent. Only set if type
708
+ # text is set. Otherwise, a INVALID_ARGUMENT error is returned.
709
+ # Corresponds to the JSON property `searchable`
710
+ # @return [Boolean]
711
+ attr_accessor :searchable
712
+ alias_method :searchable?, :searchable
713
+
384
714
  # The textual values of this custom attribute. For example, `["yellow", "green"]`
385
715
  # when the key is "color". At most 400 values are allowed. Empty values are not
386
716
  # allowed. Each value must be a UTF-8 encoded string with a length limit of 256
@@ -397,11 +727,49 @@ module Google
397
727
 
398
728
  # Update properties of this object
399
729
  def update!(**args)
730
+ @indexable = args[:indexable] if args.key?(:indexable)
400
731
  @numbers = args[:numbers] if args.key?(:numbers)
732
+ @searchable = args[:searchable] if args.key?(:searchable)
401
733
  @text = args[:text] if args.key?(:text)
402
734
  end
403
735
  end
404
736
 
737
+ # Fulfillment information, such as the store IDs for in-store pickup or region
738
+ # IDs for different shipping methods.
739
+ class GoogleCloudRetailV2FulfillmentInfo
740
+ include Google::Apis::Core::Hashable
741
+
742
+ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-
743
+ # in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A
744
+ # maximum of 2000 values are allowed. Each value must be a string with a length
745
+ # limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1"
746
+ # or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned.
747
+ # Corresponds to the JSON property `placeIds`
748
+ # @return [Array<String>]
749
+ attr_accessor :place_ids
750
+
751
+ # The fulfillment type, including commonly used types (such as pickup in store
752
+ # and same day delivery), and custom types. Customers have to map custom types
753
+ # to their display names before rendering UI. Supported values: * "pickup-in-
754
+ # store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-
755
+ # type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5"
756
+ # If this field is set to an invalid value other than these, an
757
+ # INVALID_ARGUMENT error is returned.
758
+ # Corresponds to the JSON property `type`
759
+ # @return [String]
760
+ attr_accessor :type
761
+
762
+ def initialize(**args)
763
+ update!(**args)
764
+ end
765
+
766
+ # Update properties of this object
767
+ def update!(**args)
768
+ @place_ids = args[:place_ids] if args.key?(:place_ids)
769
+ @type = args[:type] if args.key?(:type)
770
+ end
771
+ end
772
+
405
773
  # Google Cloud Storage location for input content. format.
406
774
  class GoogleCloudRetailV2GcsSource
407
775
  include Google::Apis::Core::Hashable
@@ -412,8 +780,7 @@ module Google
412
780
  # Importing catalog data from Merchant Center](https://cloud.google.com/retail/
413
781
  # recommendations-ai/docs/upload-catalog#mc). Supported values for user events
414
782
  # imports: * `user_event` (default): One JSON UserEvent per line. * `
415
- # user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?
416
- # hl=en.
783
+ # user_event_ga360`: Using https://support.google.com/analytics/answer/3437719.
417
784
  # Corresponds to the JSON property `dataSchema`
418
785
  # @return [String]
419
786
  attr_accessor :data_schema
@@ -440,6 +807,38 @@ module Google
440
807
  end
441
808
  end
442
809
 
810
+ # Response message of CatalogService.GetDefaultBranch.
811
+ class GoogleCloudRetailV2GetDefaultBranchResponse
812
+ include Google::Apis::Core::Hashable
813
+
814
+ # Full resource name of the branch id currently set as default branch.
815
+ # Corresponds to the JSON property `branch`
816
+ # @return [String]
817
+ attr_accessor :branch
818
+
819
+ # This corresponds to SetDefaultBranchRequest.note field, when this branch was
820
+ # set as default.
821
+ # Corresponds to the JSON property `note`
822
+ # @return [String]
823
+ attr_accessor :note
824
+
825
+ # The time when this branch is set to default.
826
+ # Corresponds to the JSON property `setTime`
827
+ # @return [String]
828
+ attr_accessor :set_time
829
+
830
+ def initialize(**args)
831
+ update!(**args)
832
+ end
833
+
834
+ # Update properties of this object
835
+ def update!(**args)
836
+ @branch = args[:branch] if args.key?(:branch)
837
+ @note = args[:note] if args.key?(:note)
838
+ @set_time = args[:set_time] if args.key?(:set_time)
839
+ end
840
+ end
841
+
443
842
  # Product thumbnail/detail image.
444
843
  class GoogleCloudRetailV2Image
445
844
  include Google::Apis::Core::Hashable
@@ -477,6 +876,55 @@ module Google
477
876
  end
478
877
  end
479
878
 
879
+ # Request message for ImportCompletionData methods.
880
+ class GoogleCloudRetailV2ImportCompletionDataRequest
881
+ include Google::Apis::Core::Hashable
882
+
883
+ # The input config source for completion data.
884
+ # Corresponds to the JSON property `inputConfig`
885
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2CompletionDataInputConfig]
886
+ attr_accessor :input_config
887
+
888
+ # Pub/Sub topic for receiving notification. If this field is set, when the
889
+ # import is finished, a notification will be sent to specified Pub/Sub topic.
890
+ # The message data will be JSON string of a Operation. Format of the Pub/Sub
891
+ # topic is `projects/`project`/topics/`topic``.
892
+ # Corresponds to the JSON property `notificationPubsubTopic`
893
+ # @return [String]
894
+ attr_accessor :notification_pubsub_topic
895
+
896
+ def initialize(**args)
897
+ update!(**args)
898
+ end
899
+
900
+ # Update properties of this object
901
+ def update!(**args)
902
+ @input_config = args[:input_config] if args.key?(:input_config)
903
+ @notification_pubsub_topic = args[:notification_pubsub_topic] if args.key?(:notification_pubsub_topic)
904
+ end
905
+ end
906
+
907
+ # Response of the ImportCompletionDataRequest. If the long running operation is
908
+ # done, this message is returned by the google.longrunning.Operations.response
909
+ # field if the operation is successful.
910
+ class GoogleCloudRetailV2ImportCompletionDataResponse
911
+ include Google::Apis::Core::Hashable
912
+
913
+ # A sample of errors encountered while processing the request.
914
+ # Corresponds to the JSON property `errorSamples`
915
+ # @return [Array<Google::Apis::RetailV2::GoogleRpcStatus>]
916
+ attr_accessor :error_samples
917
+
918
+ def initialize(**args)
919
+ update!(**args)
920
+ end
921
+
922
+ # Update properties of this object
923
+ def update!(**args)
924
+ @error_samples = args[:error_samples] if args.key?(:error_samples)
925
+ end
926
+ end
927
+
480
928
  # Configuration of destination for Import related errors.
481
929
  class GoogleCloudRetailV2ImportErrorsConfig
482
930
  include Google::Apis::Core::Hashable
@@ -513,6 +961,20 @@ module Google
513
961
  # @return [Fixnum]
514
962
  attr_accessor :failure_count
515
963
 
964
+ # Pub/Sub topic for receiving notification. If this field is set, when the
965
+ # import is finished, a notification will be sent to specified Pub/Sub topic.
966
+ # The message data will be JSON string of a Operation. Format of the Pub/Sub
967
+ # topic is `projects/`project`/topics/`topic``.
968
+ # Corresponds to the JSON property `notificationPubsubTopic`
969
+ # @return [String]
970
+ attr_accessor :notification_pubsub_topic
971
+
972
+ # Id of the request / operation. This is parroting back the requestId that was
973
+ # passed in the request.
974
+ # Corresponds to the JSON property `requestId`
975
+ # @return [String]
976
+ attr_accessor :request_id
977
+
516
978
  # Count of entries that were processed successfully.
517
979
  # Corresponds to the JSON property `successCount`
518
980
  # @return [Fixnum]
@@ -532,6 +994,8 @@ module Google
532
994
  def update!(**args)
533
995
  @create_time = args[:create_time] if args.key?(:create_time)
534
996
  @failure_count = args[:failure_count] if args.key?(:failure_count)
997
+ @notification_pubsub_topic = args[:notification_pubsub_topic] if args.key?(:notification_pubsub_topic)
998
+ @request_id = args[:request_id] if args.key?(:request_id)
535
999
  @success_count = args[:success_count] if args.key?(:success_count)
536
1000
  @update_time = args[:update_time] if args.key?(:update_time)
537
1001
  end
@@ -551,6 +1015,30 @@ module Google
551
1015
  # @return [Google::Apis::RetailV2::GoogleCloudRetailV2ProductInputConfig]
552
1016
  attr_accessor :input_config
553
1017
 
1018
+ # Pub/Sub topic for receiving notification. If this field is set, when the
1019
+ # import is finished, a notification will be sent to specified Pub/Sub topic.
1020
+ # The message data will be JSON string of a Operation. Format of the Pub/Sub
1021
+ # topic is `projects/`project`/topics/`topic``. Only supported when
1022
+ # ImportProductsRequest.reconciliation_mode is set to `FULL`.
1023
+ # Corresponds to the JSON property `notificationPubsubTopic`
1024
+ # @return [String]
1025
+ attr_accessor :notification_pubsub_topic
1026
+
1027
+ # The mode of reconciliation between existing products and the products to be
1028
+ # imported. Defaults to ReconciliationMode.INCREMENTAL.
1029
+ # Corresponds to the JSON property `reconciliationMode`
1030
+ # @return [String]
1031
+ attr_accessor :reconciliation_mode
1032
+
1033
+ # Unique identifier provided by client, within the ancestor dataset scope.
1034
+ # Ensures idempotency and used for request deduplication. Server-generated if
1035
+ # unspecified. Up to 128 characters long and must match the pattern: "[a-zA-Z0-
1036
+ # 9_]+". This is returned as Operation.name in ImportMetadata. Only supported
1037
+ # when ImportProductsRequest.reconciliation_mode is set to `FULL`.
1038
+ # Corresponds to the JSON property `requestId`
1039
+ # @return [String]
1040
+ attr_accessor :request_id
1041
+
554
1042
  # Indicates which fields in the provided imported 'products' to update. If not
555
1043
  # set, will by default update all fields.
556
1044
  # Corresponds to the JSON property `updateMask`
@@ -565,6 +1053,9 @@ module Google
565
1053
  def update!(**args)
566
1054
  @errors_config = args[:errors_config] if args.key?(:errors_config)
567
1055
  @input_config = args[:input_config] if args.key?(:input_config)
1056
+ @notification_pubsub_topic = args[:notification_pubsub_topic] if args.key?(:notification_pubsub_topic)
1057
+ @reconciliation_mode = args[:reconciliation_mode] if args.key?(:reconciliation_mode)
1058
+ @request_id = args[:request_id] if args.key?(:request_id)
568
1059
  @update_mask = args[:update_mask] if args.key?(:update_mask)
569
1060
  end
570
1061
  end
@@ -655,6 +1146,43 @@ module Google
655
1146
  end
656
1147
  end
657
1148
 
1149
+ # A floating point interval.
1150
+ class GoogleCloudRetailV2Interval
1151
+ include Google::Apis::Core::Hashable
1152
+
1153
+ # Exclusive upper bound.
1154
+ # Corresponds to the JSON property `exclusiveMaximum`
1155
+ # @return [Float]
1156
+ attr_accessor :exclusive_maximum
1157
+
1158
+ # Exclusive lower bound.
1159
+ # Corresponds to the JSON property `exclusiveMinimum`
1160
+ # @return [Float]
1161
+ attr_accessor :exclusive_minimum
1162
+
1163
+ # Inclusive upper bound.
1164
+ # Corresponds to the JSON property `maximum`
1165
+ # @return [Float]
1166
+ attr_accessor :maximum
1167
+
1168
+ # Inclusive lower bound.
1169
+ # Corresponds to the JSON property `minimum`
1170
+ # @return [Float]
1171
+ attr_accessor :minimum
1172
+
1173
+ def initialize(**args)
1174
+ update!(**args)
1175
+ end
1176
+
1177
+ # Update properties of this object
1178
+ def update!(**args)
1179
+ @exclusive_maximum = args[:exclusive_maximum] if args.key?(:exclusive_maximum)
1180
+ @exclusive_minimum = args[:exclusive_minimum] if args.key?(:exclusive_minimum)
1181
+ @maximum = args[:maximum] if args.key?(:maximum)
1182
+ @minimum = args[:minimum] if args.key?(:minimum)
1183
+ end
1184
+ end
1185
+
658
1186
  # Response for CatalogService.ListCatalogs method.
659
1187
  class GoogleCloudRetailV2ListCatalogsResponse
660
1188
  include Google::Apis::Core::Hashable
@@ -681,6 +1209,32 @@ module Google
681
1209
  end
682
1210
  end
683
1211
 
1212
+ # Response message for ProductService.ListProducts method.
1213
+ class GoogleCloudRetailV2ListProductsResponse
1214
+ include Google::Apis::Core::Hashable
1215
+
1216
+ # A token that can be sent as ListProductsRequest.page_token to retrieve the
1217
+ # next page. If this field is omitted, there are no subsequent pages.
1218
+ # Corresponds to the JSON property `nextPageToken`
1219
+ # @return [String]
1220
+ attr_accessor :next_page_token
1221
+
1222
+ # The Products.
1223
+ # Corresponds to the JSON property `products`
1224
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2Product>]
1225
+ attr_accessor :products
1226
+
1227
+ def initialize(**args)
1228
+ update!(**args)
1229
+ end
1230
+
1231
+ # Update properties of this object
1232
+ def update!(**args)
1233
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1234
+ @products = args[:products] if args.key?(:products)
1235
+ end
1236
+ end
1237
+
684
1238
  # Request message for Predict method.
685
1239
  class GoogleCloudRetailV2PredictRequest
686
1240
  include Google::Apis::Core::Hashable
@@ -744,11 +1298,11 @@ module Google
744
1298
  # blocks all prediction results. * `priceRerankLevel`: String. Default empty. If
745
1299
  # set to be non-empty, then it needs to be one of `'no-price-reranking', 'low-
746
1300
  # price-reranking', 'medium-price-reranking', 'high-price-reranking'`. This
747
- # gives request level control and adjust prediction results based on product
1301
+ # gives request-level control and adjusts prediction results based on product
748
1302
  # price. * `diversityLevel`: String. Default empty. If set to be non-empty, then
749
1303
  # it needs to be one of `'no-diversity', 'low-diversity', 'medium-diversity', '
750
- # high-diversity', 'auto-diversity'`. This gives request level control and
751
- # adjust prediction results based on product category.
1304
+ # high-diversity', 'auto-diversity'`. This gives request-level control and
1305
+ # adjusts prediction results based on product category.
752
1306
  # Corresponds to the JSON property `params`
753
1307
  # @return [Hash<String,Object>]
754
1308
  attr_accessor :params
@@ -866,7 +1420,9 @@ module Google
866
1420
 
867
1421
  # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-
868
1422
  # currency-codes.html). If this field is an unrecognizable currency code, an
869
- # INVALID_ARGUMENT error is returned.
1423
+ # INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the
1424
+ # same Product.primary_product_id must share the same currency_code. Otherwise,
1425
+ # a FAILED_PRECONDITION error is returned.
870
1426
  # Corresponds to the JSON property `currencyCode`
871
1427
  # @return [String]
872
1428
  attr_accessor :currency_code
@@ -884,6 +1440,29 @@ module Google
884
1440
  # @return [Float]
885
1441
  attr_accessor :price
886
1442
 
1443
+ # The timestamp when the price starts to be effective. This can be set as a
1444
+ # future timestamp, and the price is only used for search after
1445
+ # price_effective_time. If so, the original_price must be set and original_price
1446
+ # is used before price_effective_time. Do not set if price is always effective
1447
+ # because it will cause additional latency during search.
1448
+ # Corresponds to the JSON property `priceEffectiveTime`
1449
+ # @return [String]
1450
+ attr_accessor :price_effective_time
1451
+
1452
+ # The timestamp when the price stops to be effective. The price is used for
1453
+ # search before price_expire_time. If this field is set, the original_price must
1454
+ # be set and original_price is used after price_expire_time. Do not set if price
1455
+ # is always effective because it will cause additional latency during search.
1456
+ # Corresponds to the JSON property `priceExpireTime`
1457
+ # @return [String]
1458
+ attr_accessor :price_expire_time
1459
+
1460
+ # The price range of all variant Product having the same Product.
1461
+ # primary_product_id.
1462
+ # Corresponds to the JSON property `priceRange`
1463
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2PriceInfoPriceRange]
1464
+ attr_accessor :price_range
1465
+
887
1466
  def initialize(**args)
888
1467
  update!(**args)
889
1468
  end
@@ -894,6 +1473,35 @@ module Google
894
1473
  @currency_code = args[:currency_code] if args.key?(:currency_code)
895
1474
  @original_price = args[:original_price] if args.key?(:original_price)
896
1475
  @price = args[:price] if args.key?(:price)
1476
+ @price_effective_time = args[:price_effective_time] if args.key?(:price_effective_time)
1477
+ @price_expire_time = args[:price_expire_time] if args.key?(:price_expire_time)
1478
+ @price_range = args[:price_range] if args.key?(:price_range)
1479
+ end
1480
+ end
1481
+
1482
+ # The price range of all variant Product having the same Product.
1483
+ # primary_product_id.
1484
+ class GoogleCloudRetailV2PriceInfoPriceRange
1485
+ include Google::Apis::Core::Hashable
1486
+
1487
+ # A floating point interval.
1488
+ # Corresponds to the JSON property `originalPrice`
1489
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Interval]
1490
+ attr_accessor :original_price
1491
+
1492
+ # A floating point interval.
1493
+ # Corresponds to the JSON property `price`
1494
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Interval]
1495
+ attr_accessor :price
1496
+
1497
+ def initialize(**args)
1498
+ update!(**args)
1499
+ end
1500
+
1501
+ # Update properties of this object
1502
+ def update!(**args)
1503
+ @original_price = args[:original_price] if args.key?(:original_price)
1504
+ @price = args[:price] if args.key?(:price)
897
1505
  end
898
1506
  end
899
1507
 
@@ -912,13 +1520,19 @@ module Google
912
1520
  # product, or age of a customer. For example: `` "vendor": `"text": ["vendor123",
913
1521
  # "vendor456"]`, "lengths_cm": `"numbers":[2.3, 15.4]`, "heights_cm": `"numbers"
914
1522
  # :[8.1, 6.4]` ``. This field needs to pass all below criteria, otherwise an
915
- # INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100
916
- # for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit
917
- # of 128 characters.
1523
+ # INVALID_ARGUMENT error is returned: * Max entries count: 200. * The key must
1524
+ # be a UTF-8 encoded string with a length limit of 128 characters. * For
1525
+ # indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example,
1526
+ # key0LikeThis or KEY_1_LIKE_THIS.
918
1527
  # Corresponds to the JSON property `attributes`
919
1528
  # @return [Hash<String,Google::Apis::RetailV2::GoogleCloudRetailV2CustomAttribute>]
920
1529
  attr_accessor :attributes
921
1530
 
1531
+ # An intended audience of the Product for whom it's sold.
1532
+ # Corresponds to the JSON property `audience`
1533
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Audience]
1534
+ attr_accessor :audience
1535
+
922
1536
  # The online availability of the Product. Default to Availability.IN_STOCK.
923
1537
  # Google Merchant Center Property [availability](https://support.google.com/
924
1538
  # merchants/answer/6324448). Schema.org Property [Offer.availability](https://
@@ -932,11 +1546,20 @@ module Google
932
1546
  # @return [Fixnum]
933
1547
  attr_accessor :available_quantity
934
1548
 
935
- # The timestamp when this Product becomes available for recommendation.
1549
+ # The timestamp when this Product becomes available for SearchService.Search.
936
1550
  # Corresponds to the JSON property `availableTime`
937
1551
  # @return [String]
938
1552
  attr_accessor :available_time
939
1553
 
1554
+ # The brands of the product. A maximum of 30 brands are allowed. Each brand must
1555
+ # be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise,
1556
+ # an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](
1557
+ # https://support.google.com/merchants/answer/6324351). Schema.org property [
1558
+ # Product.brand](https://schema.org/brand).
1559
+ # Corresponds to the JSON property `brands`
1560
+ # @return [Array<String>]
1561
+ attr_accessor :brands
1562
+
940
1563
  # Product categories. This field is repeated for supporting one product
941
1564
  # belonging to several parallel categories. Strongly recommended using the full
942
1565
  # path for better search / recommendation quality. To represent full path of
@@ -957,6 +1580,29 @@ module Google
957
1580
  # @return [Array<String>]
958
1581
  attr_accessor :categories
959
1582
 
1583
+ # The id of the collection members when type is Type.COLLECTION. Should not set
1584
+ # it for other types. A maximum of 1000 values are allowed. Otherwise, an
1585
+ # INVALID_ARGUMENT error is return.
1586
+ # Corresponds to the JSON property `collectionMemberIds`
1587
+ # @return [Array<String>]
1588
+ attr_accessor :collection_member_ids
1589
+
1590
+ # The color information of a Product.
1591
+ # Corresponds to the JSON property `colorInfo`
1592
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2ColorInfo]
1593
+ attr_accessor :color_info
1594
+
1595
+ # The condition of the product. Strongly encouraged to use the standard values: "
1596
+ # new", "refurbished", "used". A maximum of 5 values are allowed per Product.
1597
+ # Each value must be a UTF-8 encoded string with a length limit of 128
1598
+ # characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant
1599
+ # Center property [condition](https://support.google.com/merchants/answer/
1600
+ # 6324469). Schema.org property [Offer.itemCondition](https://schema.org/
1601
+ # itemCondition).
1602
+ # Corresponds to the JSON property `conditions`
1603
+ # @return [Array<String>]
1604
+ attr_accessor :conditions
1605
+
960
1606
  # Product description. This field must be a UTF-8 encoded string with a length
961
1607
  # limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
962
1608
  # Google Merchant Center property [description](https://support.google.com/
@@ -966,6 +1612,35 @@ module Google
966
1612
  # @return [String]
967
1613
  attr_accessor :description
968
1614
 
1615
+ # The timestamp when this product becomes unavailable for SearchService.Search.
1616
+ # If it is set, the Product is not available for SearchService.Search after
1617
+ # expire_time. However, the product can still be retrieved by ProductService.
1618
+ # GetProduct and ProductService.ListProducts. Google Merchant Center property [
1619
+ # expiration_date](https://support.google.com/merchants/answer/6324499).
1620
+ # Corresponds to the JSON property `expireTime`
1621
+ # @return [String]
1622
+ attr_accessor :expire_time
1623
+
1624
+ # Fulfillment information, such as the store IDs for in-store pickup or region
1625
+ # IDs for different shipping methods. All the elements must have distinct
1626
+ # FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.
1627
+ # Corresponds to the JSON property `fulfillmentInfo`
1628
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2FulfillmentInfo>]
1629
+ attr_accessor :fulfillment_info
1630
+
1631
+ # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8
1632
+ # encoded string with a length limit of 128 characters. Otherwise, an
1633
+ # INVALID_ARGUMENT error is returned. This field must be a Unigram. Otherwise,
1634
+ # an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](
1635
+ # https://support.google.com/merchants/answer/6324461). Schema.org property [
1636
+ # Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/
1637
+ # gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](
1638
+ # https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If
1639
+ # the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.
1640
+ # Corresponds to the JSON property `gtin`
1641
+ # @return [String]
1642
+ attr_accessor :gtin
1643
+
969
1644
  # Immutable. Product identifier, which is the final component of name. For
970
1645
  # example, this field is "id_1", if name is `projects/*/locations/global/
971
1646
  # catalogs/default_catalog/branches/default_branch/products/id_1`. This field
@@ -985,6 +1660,26 @@ module Google
985
1660
  # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2Image>]
986
1661
  attr_accessor :images
987
1662
 
1663
+ # Language of the title/description and other string attributes. Use language
1664
+ # tags defined by BCP 47. For product prediction, this field is ignored and the
1665
+ # model automatically detects the text language. The Product can include text in
1666
+ # different languages, but duplicating Products to provide text in multiple
1667
+ # languages can result in degraded model performance. For product search this
1668
+ # field is in use. It defaults to "en-US" if unset.
1669
+ # Corresponds to the JSON property `languageCode`
1670
+ # @return [String]
1671
+ attr_accessor :language_code
1672
+
1673
+ # The material of the product. For example, "leather", "wooden". A maximum of 20
1674
+ # values are allowed. Each value must be a UTF-8 encoded string with a length
1675
+ # limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
1676
+ # Google Merchant Center property [material](https://support.google.com/
1677
+ # merchants/answer/6324410). Schema.org property [Product.material](https://
1678
+ # schema.org/material).
1679
+ # Corresponds to the JSON property `materials`
1680
+ # @return [Array<String>]
1681
+ attr_accessor :materials
1682
+
988
1683
  # Immutable. Full resource name of the product, such as `projects/*/locations/
989
1684
  # global/catalogs/default_catalog/branches/default_branch/products/product_id`.
990
1685
  # The branch ID must be "default_branch".
@@ -992,6 +1687,16 @@ module Google
992
1687
  # @return [String]
993
1688
  attr_accessor :name
994
1689
 
1690
+ # The pattern or graphic print of the product. For example, "striped", "polka
1691
+ # dot", "paisley". A maximum of 20 values are allowed per Product. Each value
1692
+ # must be a UTF-8 encoded string with a length limit of 128 characters.
1693
+ # Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center
1694
+ # property [pattern](https://support.google.com/merchants/answer/6324483).
1695
+ # Schema.org property [Product.pattern](https://schema.org/pattern).
1696
+ # Corresponds to the JSON property `patterns`
1697
+ # @return [Array<String>]
1698
+ attr_accessor :patterns
1699
+
995
1700
  # The price information of a Product.
996
1701
  # Corresponds to the JSON property `priceInfo`
997
1702
  # @return [Google::Apis::RetailV2::GoogleCloudRetailV2PriceInfo]
@@ -1010,6 +1715,58 @@ module Google
1010
1715
  # @return [String]
1011
1716
  attr_accessor :primary_product_id
1012
1717
 
1718
+ # The promotions applied to the product. A maximum of 10 values are allowed per
1719
+ # Product.
1720
+ # Corresponds to the JSON property `promotions`
1721
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2Promotion>]
1722
+ attr_accessor :promotions
1723
+
1724
+ # The timestamp when the product is published by the retailer for the first time,
1725
+ # which indicates the freshness of the products. Note that this field is
1726
+ # different from available_time, given it purely describes product freshness
1727
+ # regardless of when it is available on search and recommendation.
1728
+ # Corresponds to the JSON property `publishTime`
1729
+ # @return [String]
1730
+ attr_accessor :publish_time
1731
+
1732
+ # The rating of a Product.
1733
+ # Corresponds to the JSON property `rating`
1734
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Rating]
1735
+ attr_accessor :rating
1736
+
1737
+ # Indicates which fields in the Products are returned in SearchResponse.
1738
+ # Supported fields for all types: * audience * availability * brands *
1739
+ # color_info * conditions * gtin * materials * name * patterns * price_info *
1740
+ # rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.
1741
+ # COLLECTION: * categories * description * images Supported fields only for Type.
1742
+ # VARIANT: * Only the first image in images To mark attributes as retrievable,
1743
+ # include paths of the form "attributes.key" where "key" is the key of a custom
1744
+ # attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION,
1745
+ # the following fields are always returned in SearchResponse by default: * name
1746
+ # For Type.VARIANT, the following fields are always returned in by default: *
1747
+ # name * color_info Maximum number of paths is 30. Otherwise, an
1748
+ # INVALID_ARGUMENT error is returned. Note: Returning more fields in
1749
+ # SearchResponse may increase response payload size and serving latency.
1750
+ # Corresponds to the JSON property `retrievableFields`
1751
+ # @return [String]
1752
+ attr_accessor :retrievable_fields
1753
+
1754
+ # The size of the product. To represent different size systems or size types,
1755
+ # consider using this format: [[[size_system:]size_type:]size_value]. For
1756
+ # example, in "US:MENS:M", "US" represents size system; "MENS" represents size
1757
+ # type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS"
1758
+ # represents size type; "27" represents size value. In "32 inches", both size
1759
+ # system and size type are empty, while size value is "32 inches". A maximum of
1760
+ # 20 values are allowed per Product. Each value must be a UTF-8 encoded string
1761
+ # with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is
1762
+ # returned. Google Merchant Center property [size](https://support.google.com/
1763
+ # merchants/answer/6324492), [size_type](https://support.google.com/merchants/
1764
+ # answer/6324497) and [size_system](https://support.google.com/merchants/answer/
1765
+ # 6324502). Schema.org property [Product.size](https://schema.org/size).
1766
+ # Corresponds to the JSON property `sizes`
1767
+ # @return [Array<String>]
1768
+ attr_accessor :sizes
1769
+
1013
1770
  # Custom tags associated with the product. At most 250 values are allowed per
1014
1771
  # Product. This value must be a UTF-8 encoded string with a length limit of 1,
1015
1772
  # 000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can
@@ -1029,6 +1786,16 @@ module Google
1029
1786
  # @return [String]
1030
1787
  attr_accessor :title
1031
1788
 
1789
+ # Input only. The TTL (time to live) of the product. If it is set, expire_time
1790
+ # is set as current timestamp plus ttl. The derived expire_time is returned in
1791
+ # the output and ttl is left blank when retrieving the Product. If it is set,
1792
+ # the product is not available for SearchService.Search after current timestamp
1793
+ # plus ttl. However, the product can still be retrieved by ProductService.
1794
+ # GetProduct and ProductService.ListProducts.
1795
+ # Corresponds to the JSON property `ttl`
1796
+ # @return [String]
1797
+ attr_accessor :ttl
1798
+
1032
1799
  # Immutable. The type of the product. Default to Catalog.product_level_config.
1033
1800
  # ingestion_product_type if unset.
1034
1801
  # Corresponds to the JSON property `type`
@@ -1046,6 +1813,15 @@ module Google
1046
1813
  # @return [String]
1047
1814
  attr_accessor :uri
1048
1815
 
1816
+ # Output only. Product variants grouped together on primary product which share
1817
+ # similar product attributes. It's automatically grouped by primary_product_id
1818
+ # for all the product variants. Only populated for Type.PRIMARY Products. Note:
1819
+ # This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field
1820
+ # in API requests.
1821
+ # Corresponds to the JSON property `variants`
1822
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2Product>]
1823
+ attr_accessor :variants
1824
+
1049
1825
  def initialize(**args)
1050
1826
  update!(**args)
1051
1827
  end
@@ -1053,20 +1829,38 @@ module Google
1053
1829
  # Update properties of this object
1054
1830
  def update!(**args)
1055
1831
  @attributes = args[:attributes] if args.key?(:attributes)
1832
+ @audience = args[:audience] if args.key?(:audience)
1056
1833
  @availability = args[:availability] if args.key?(:availability)
1057
1834
  @available_quantity = args[:available_quantity] if args.key?(:available_quantity)
1058
1835
  @available_time = args[:available_time] if args.key?(:available_time)
1836
+ @brands = args[:brands] if args.key?(:brands)
1059
1837
  @categories = args[:categories] if args.key?(:categories)
1838
+ @collection_member_ids = args[:collection_member_ids] if args.key?(:collection_member_ids)
1839
+ @color_info = args[:color_info] if args.key?(:color_info)
1840
+ @conditions = args[:conditions] if args.key?(:conditions)
1060
1841
  @description = args[:description] if args.key?(:description)
1842
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
1843
+ @fulfillment_info = args[:fulfillment_info] if args.key?(:fulfillment_info)
1844
+ @gtin = args[:gtin] if args.key?(:gtin)
1061
1845
  @id = args[:id] if args.key?(:id)
1062
1846
  @images = args[:images] if args.key?(:images)
1847
+ @language_code = args[:language_code] if args.key?(:language_code)
1848
+ @materials = args[:materials] if args.key?(:materials)
1063
1849
  @name = args[:name] if args.key?(:name)
1850
+ @patterns = args[:patterns] if args.key?(:patterns)
1064
1851
  @price_info = args[:price_info] if args.key?(:price_info)
1065
1852
  @primary_product_id = args[:primary_product_id] if args.key?(:primary_product_id)
1853
+ @promotions = args[:promotions] if args.key?(:promotions)
1854
+ @publish_time = args[:publish_time] if args.key?(:publish_time)
1855
+ @rating = args[:rating] if args.key?(:rating)
1856
+ @retrievable_fields = args[:retrievable_fields] if args.key?(:retrievable_fields)
1857
+ @sizes = args[:sizes] if args.key?(:sizes)
1066
1858
  @tags = args[:tags] if args.key?(:tags)
1067
1859
  @title = args[:title] if args.key?(:title)
1860
+ @ttl = args[:ttl] if args.key?(:ttl)
1068
1861
  @type = args[:type] if args.key?(:type)
1069
1862
  @uri = args[:uri] if args.key?(:uri)
1863
+ @variants = args[:variants] if args.key?(:variants)
1070
1864
  end
1071
1865
  end
1072
1866
 
@@ -1104,7 +1898,7 @@ module Google
1104
1898
  include Google::Apis::Core::Hashable
1105
1899
 
1106
1900
  # Required. A list of products to update/create. Each product must have a valid
1107
- # Product.id. Recommended max of 10k items.
1901
+ # Product.id. Recommended max of 100 items.
1108
1902
  # Corresponds to the JSON property `products`
1109
1903
  # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2Product>]
1110
1904
  attr_accessor :products
@@ -1194,6 +1988,29 @@ module Google
1194
1988
  end
1195
1989
  end
1196
1990
 
1991
+ # Promotion information.
1992
+ class GoogleCloudRetailV2Promotion
1993
+ include Google::Apis::Core::Hashable
1994
+
1995
+ # ID of the promotion. For example, "free gift". The value value must be a UTF-8
1996
+ # encoded string with a length limit of 128 characters, and match the pattern: a-
1997
+ # zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an
1998
+ # INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion]
1999
+ # (https://support.google.com/merchants/answer/7050148).
2000
+ # Corresponds to the JSON property `promotionId`
2001
+ # @return [String]
2002
+ attr_accessor :promotion_id
2003
+
2004
+ def initialize(**args)
2005
+ update!(**args)
2006
+ end
2007
+
2008
+ # Update properties of this object
2009
+ def update!(**args)
2010
+ @promotion_id = args[:promotion_id] if args.key?(:promotion_id)
2011
+ end
2012
+ end
2013
+
1197
2014
  # A transaction represents the entire purchase transaction.
1198
2015
  class GoogleCloudRetailV2PurchaseTransaction
1199
2016
  include Google::Apis::Core::Hashable
@@ -1275,12 +2092,860 @@ module Google
1275
2092
  # @return [String]
1276
2093
  attr_accessor :filter
1277
2094
 
1278
- # Actually perform the purge. If `force` is set to false, the method will return
1279
- # the expected purge count without deleting any user events.
1280
- # Corresponds to the JSON property `force`
1281
- # @return [Boolean]
1282
- attr_accessor :force
1283
- alias_method :force?, :force
2095
+ # Actually perform the purge. If `force` is set to false, the method will return
2096
+ # the expected purge count without deleting any user events.
2097
+ # Corresponds to the JSON property `force`
2098
+ # @return [Boolean]
2099
+ attr_accessor :force
2100
+ alias_method :force?, :force
2101
+
2102
+ def initialize(**args)
2103
+ update!(**args)
2104
+ end
2105
+
2106
+ # Update properties of this object
2107
+ def update!(**args)
2108
+ @filter = args[:filter] if args.key?(:filter)
2109
+ @force = args[:force] if args.key?(:force)
2110
+ end
2111
+ end
2112
+
2113
+ # Response of the PurgeUserEventsRequest. If the long running operation is
2114
+ # successfully done, then this message is returned by the google.longrunning.
2115
+ # Operations.response field.
2116
+ class GoogleCloudRetailV2PurgeUserEventsResponse
2117
+ include Google::Apis::Core::Hashable
2118
+
2119
+ # The total count of events purged as a result of the operation.
2120
+ # Corresponds to the JSON property `purgedEventsCount`
2121
+ # @return [Fixnum]
2122
+ attr_accessor :purged_events_count
2123
+
2124
+ def initialize(**args)
2125
+ update!(**args)
2126
+ end
2127
+
2128
+ # Update properties of this object
2129
+ def update!(**args)
2130
+ @purged_events_count = args[:purged_events_count] if args.key?(:purged_events_count)
2131
+ end
2132
+ end
2133
+
2134
+ # The rating of a Product.
2135
+ class GoogleCloudRetailV2Rating
2136
+ include Google::Apis::Core::Hashable
2137
+
2138
+ # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an
2139
+ # INVALID_ARGUMENT error is returned.
2140
+ # Corresponds to the JSON property `averageRating`
2141
+ # @return [Float]
2142
+ attr_accessor :average_rating
2143
+
2144
+ # The total number of ratings. This value is independent of the value of
2145
+ # rating_histogram. This value must be nonnegative. Otherwise, an
2146
+ # INVALID_ARGUMENT error is returned.
2147
+ # Corresponds to the JSON property `ratingCount`
2148
+ # @return [Fixnum]
2149
+ attr_accessor :rating_count
2150
+
2151
+ # List of rating counts per rating value (index = rating - 1). The list is empty
2152
+ # if there is no rating. If the list is non-empty, its size is always 5.
2153
+ # Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47,
2154
+ # 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2
2155
+ # star, and so on.
2156
+ # Corresponds to the JSON property `ratingHistogram`
2157
+ # @return [Array<Fixnum>]
2158
+ attr_accessor :rating_histogram
2159
+
2160
+ def initialize(**args)
2161
+ update!(**args)
2162
+ end
2163
+
2164
+ # Update properties of this object
2165
+ def update!(**args)
2166
+ @average_rating = args[:average_rating] if args.key?(:average_rating)
2167
+ @rating_count = args[:rating_count] if args.key?(:rating_count)
2168
+ @rating_histogram = args[:rating_histogram] if args.key?(:rating_histogram)
2169
+ end
2170
+ end
2171
+
2172
+ # Metadata for RejoinUserEvents method.
2173
+ class GoogleCloudRetailV2RejoinUserEventsMetadata
2174
+ include Google::Apis::Core::Hashable
2175
+
2176
+ def initialize(**args)
2177
+ update!(**args)
2178
+ end
2179
+
2180
+ # Update properties of this object
2181
+ def update!(**args)
2182
+ end
2183
+ end
2184
+
2185
+ # Request message for RejoinUserEvents method.
2186
+ class GoogleCloudRetailV2RejoinUserEventsRequest
2187
+ include Google::Apis::Core::Hashable
2188
+
2189
+ # The type of the user event rejoin to define the scope and range of the user
2190
+ # events to be rejoined with the latest product catalog. Defaults to
2191
+ # USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an
2192
+ # invalid integer value.
2193
+ # Corresponds to the JSON property `userEventRejoinScope`
2194
+ # @return [String]
2195
+ attr_accessor :user_event_rejoin_scope
2196
+
2197
+ def initialize(**args)
2198
+ update!(**args)
2199
+ end
2200
+
2201
+ # Update properties of this object
2202
+ def update!(**args)
2203
+ @user_event_rejoin_scope = args[:user_event_rejoin_scope] if args.key?(:user_event_rejoin_scope)
2204
+ end
2205
+ end
2206
+
2207
+ # Response message for RejoinUserEvents method.
2208
+ class GoogleCloudRetailV2RejoinUserEventsResponse
2209
+ include Google::Apis::Core::Hashable
2210
+
2211
+ # Number of user events that were joined with latest product catalog.
2212
+ # Corresponds to the JSON property `rejoinedUserEventsCount`
2213
+ # @return [Fixnum]
2214
+ attr_accessor :rejoined_user_events_count
2215
+
2216
+ def initialize(**args)
2217
+ update!(**args)
2218
+ end
2219
+
2220
+ # Update properties of this object
2221
+ def update!(**args)
2222
+ @rejoined_user_events_count = args[:rejoined_user_events_count] if args.key?(:rejoined_user_events_count)
2223
+ end
2224
+ end
2225
+
2226
+ # Metadata related to the progress of the RemoveFulfillmentPlaces operation.
2227
+ # Currently empty because there is no meaningful metadata populated from the
2228
+ # RemoveFulfillmentPlaces method.
2229
+ class GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata
2230
+ include Google::Apis::Core::Hashable
2231
+
2232
+ def initialize(**args)
2233
+ update!(**args)
2234
+ end
2235
+
2236
+ # Update properties of this object
2237
+ def update!(**args)
2238
+ end
2239
+ end
2240
+
2241
+ # Request message for RemoveFulfillmentPlaces method.
2242
+ class GoogleCloudRetailV2RemoveFulfillmentPlacesRequest
2243
+ include Google::Apis::Core::Hashable
2244
+
2245
+ # If set to true, and the Product is not found, the fulfillment information will
2246
+ # still be processed and retained for at most 1 day and processed once the
2247
+ # Product is created. If set to false, an INVALID_ARGUMENT error is returned if
2248
+ # the Product is not found.
2249
+ # Corresponds to the JSON property `allowMissing`
2250
+ # @return [Boolean]
2251
+ attr_accessor :allow_missing
2252
+ alias_method :allow_missing?, :allow_missing
2253
+
2254
+ # Required. The IDs for this type, such as the store IDs for "pickup-in-store"
2255
+ # or the region IDs for "same-day-delivery", to be removed for this type. At
2256
+ # least 1 value is required, and a maximum of 2000 values are allowed. Each
2257
+ # value must be a string with a length limit of 10 characters, matching the
2258
+ # pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an
2259
+ # INVALID_ARGUMENT error is returned.
2260
+ # Corresponds to the JSON property `placeIds`
2261
+ # @return [Array<String>]
2262
+ attr_accessor :place_ids
2263
+
2264
+ # The time when the fulfillment updates are issued, used to prevent out-of-order
2265
+ # updates on fulfillment information. If not provided, the internal system time
2266
+ # will be used.
2267
+ # Corresponds to the JSON property `removeTime`
2268
+ # @return [String]
2269
+ attr_accessor :remove_time
2270
+
2271
+ # Required. The fulfillment type, including commonly used types (such as pickup
2272
+ # in store and same day delivery), and custom types. Supported values: * "pickup-
2273
+ # in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "
2274
+ # custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-
2275
+ # type-5" If this field is set to an invalid value other than these, an
2276
+ # INVALID_ARGUMENT error is returned. This field directly corresponds to Product.
2277
+ # fulfillment_info.type.
2278
+ # Corresponds to the JSON property `type`
2279
+ # @return [String]
2280
+ attr_accessor :type
2281
+
2282
+ def initialize(**args)
2283
+ update!(**args)
2284
+ end
2285
+
2286
+ # Update properties of this object
2287
+ def update!(**args)
2288
+ @allow_missing = args[:allow_missing] if args.key?(:allow_missing)
2289
+ @place_ids = args[:place_ids] if args.key?(:place_ids)
2290
+ @remove_time = args[:remove_time] if args.key?(:remove_time)
2291
+ @type = args[:type] if args.key?(:type)
2292
+ end
2293
+ end
2294
+
2295
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
2296
+ # is no meaningful response populated from the RemoveFulfillmentPlaces method.
2297
+ class GoogleCloudRetailV2RemoveFulfillmentPlacesResponse
2298
+ include Google::Apis::Core::Hashable
2299
+
2300
+ def initialize(**args)
2301
+ update!(**args)
2302
+ end
2303
+
2304
+ # Update properties of this object
2305
+ def update!(**args)
2306
+ end
2307
+ end
2308
+
2309
+ # Request message for SearchService.Search method.
2310
+ class GoogleCloudRetailV2SearchRequest
2311
+ include Google::Apis::Core::Hashable
2312
+
2313
+ # Boost specification to boost certain items.
2314
+ # Corresponds to the JSON property `boostSpec`
2315
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2SearchRequestBoostSpec]
2316
+ attr_accessor :boost_spec
2317
+
2318
+ # The branch resource name, such as `projects/*/locations/global/catalogs/
2319
+ # default_catalog/branches/0`. Use "default_branch" as the branch ID or leave
2320
+ # this field empty, to search products under the default branch.
2321
+ # Corresponds to the JSON property `branch`
2322
+ # @return [String]
2323
+ attr_accessor :branch
2324
+
2325
+ # The filter applied to every search request when quality improvement such as
2326
+ # query expansion is needed. For example, if a query does not have enough
2327
+ # results, an expanded query with SearchRequest.canonical_filter will be
2328
+ # returned as a supplement of the original query. This field is strongly
2329
+ # recommended to achieve high search quality. See SearchRequest.filter for more
2330
+ # details about filter syntax.
2331
+ # Corresponds to the JSON property `canonicalFilter`
2332
+ # @return [String]
2333
+ attr_accessor :canonical_filter
2334
+
2335
+ # The specifications of dynamically generated facets.
2336
+ # Corresponds to the JSON property `dynamicFacetSpec`
2337
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2SearchRequestDynamicFacetSpec]
2338
+ attr_accessor :dynamic_facet_spec
2339
+
2340
+ # Facet specifications for faceted search. If empty, no facets are returned. A
2341
+ # maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is
2342
+ # returned.
2343
+ # Corresponds to the JSON property `facetSpecs`
2344
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2SearchRequestFacetSpec>]
2345
+ attr_accessor :facet_specs
2346
+
2347
+ # The filter syntax consists of an expression language for constructing a
2348
+ # predicate from one or more fields of the products being filtered. Filter
2349
+ # expression is case-sensitive. See more details at this [user guide](/retail/
2350
+ # private/docs/filter-and-order#filter). If this field is unrecognizable, an
2351
+ # INVALID_ARGUMENT is returned.
2352
+ # Corresponds to the JSON property `filter`
2353
+ # @return [String]
2354
+ attr_accessor :filter
2355
+
2356
+ # A 0-indexed integer that specifies the current offset (that is, starting
2357
+ # result location, amongst the Products deemed by the API as relevant) in search
2358
+ # results. This field is only considered if page_token is unset. If this field
2359
+ # is negative, an INVALID_ARGUMENT is returned.
2360
+ # Corresponds to the JSON property `offset`
2361
+ # @return [Fixnum]
2362
+ attr_accessor :offset
2363
+
2364
+ # The order in which products are returned. Products can be ordered by a field
2365
+ # in an Product object. Leave it unset if ordered by relevance. OrderBy
2366
+ # expression is case-sensitive. See more details at this [user guide](/retail/
2367
+ # private/docs/filter-and-order#order). If this field is unrecognizable, an
2368
+ # INVALID_ARGUMENT is returned.
2369
+ # Corresponds to the JSON property `orderBy`
2370
+ # @return [String]
2371
+ attr_accessor :order_by
2372
+
2373
+ # The categories associated with a category page. Required for category
2374
+ # navigation queries to achieve good search quality. The format should be the
2375
+ # same as UserEvent.page_categories; To represent full path of category, use '>'
2376
+ # sign to separate different hierarchies. If '>' is part of the category name,
2377
+ # please replace it with other character(s). Category pages include special
2378
+ # pages such as sales or promotions. For instance, a special sale page may have
2379
+ # the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"].
2380
+ # Corresponds to the JSON property `pageCategories`
2381
+ # @return [Array<String>]
2382
+ attr_accessor :page_categories
2383
+
2384
+ # Maximum number of Products to return. If unspecified, defaults to a reasonable
2385
+ # value. The maximum allowed value is 120. Values above 120 will be coerced to
2386
+ # 120. If this field is negative, an INVALID_ARGUMENT is returned.
2387
+ # Corresponds to the JSON property `pageSize`
2388
+ # @return [Fixnum]
2389
+ attr_accessor :page_size
2390
+
2391
+ # A page token SearchResponse.next_page_token, received from a previous
2392
+ # SearchService.Search call. Provide this to retrieve the subsequent page. When
2393
+ # paginating, all other parameters provided to SearchService.Search must match
2394
+ # the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is
2395
+ # returned.
2396
+ # Corresponds to the JSON property `pageToken`
2397
+ # @return [String]
2398
+ attr_accessor :page_token
2399
+
2400
+ # Raw search query.
2401
+ # Corresponds to the JSON property `query`
2402
+ # @return [String]
2403
+ attr_accessor :query
2404
+
2405
+ # Specification to determine under which conditions query expansion should occur.
2406
+ # Corresponds to the JSON property `queryExpansionSpec`
2407
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2SearchRequestQueryExpansionSpec]
2408
+ attr_accessor :query_expansion_spec
2409
+
2410
+ # Information of an end user.
2411
+ # Corresponds to the JSON property `userInfo`
2412
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2UserInfo]
2413
+ attr_accessor :user_info
2414
+
2415
+ # The keys to fetch and rollup the matching variant Products attributes. The
2416
+ # attributes from all the matching variant Products are merged and de-duplicated.
2417
+ # Notice that rollup variant Products attributes will lead to extra query
2418
+ # latency. Maximum number of keys is 10. For FulfillmentInfo, a fulfillment type
2419
+ # and a fulfillment ID must be provided in the format of "fulfillmentType.
2420
+ # fulfillmentId". E.g., in "pickupInStore.store123", "pickupInStore" is
2421
+ # fulfillment type and "store123" is the store ID. Supported keys are: *
2422
+ # colorFamilies * price * originalPrice * discount * attributes.key, where key
2423
+ # is any key in the Product.attributes map. * pickupInStore.id, where id is any
2424
+ # FulfillmentInfo.place_ids for FulfillmentInfo.type "pickup-in-store". *
2425
+ # shipToStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.
2426
+ # type "ship-to-store". * sameDayDelivery.id, where id is any FulfillmentInfo.
2427
+ # place_ids for FulfillmentInfo.type "same-day-delivery". * nextDayDelivery.id,
2428
+ # where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "next-day-
2429
+ # delivery". * customFulfillment1.id, where id is any FulfillmentInfo.place_ids
2430
+ # for FulfillmentInfo.type "custom-type-1". * customFulfillment2.id, where id is
2431
+ # any FulfillmentInfo.place_ids for FulfillmentInfo.type "custom-type-2". *
2432
+ # customFulfillment3.id, where id is any FulfillmentInfo.place_ids for
2433
+ # FulfillmentInfo.type "custom-type-3". * customFulfillment4.id, where id is any
2434
+ # FulfillmentInfo.place_ids for FulfillmentInfo.type "custom-type-4". *
2435
+ # customFulfillment5.id, where id is any FulfillmentInfo.place_ids for
2436
+ # FulfillmentInfo.type "custom-type-5". If this field is set to an invalid value
2437
+ # other than these, an INVALID_ARGUMENT error is returned.
2438
+ # Corresponds to the JSON property `variantRollupKeys`
2439
+ # @return [Array<String>]
2440
+ attr_accessor :variant_rollup_keys
2441
+
2442
+ # Required. A unique identifier for tracking visitors. For example, this could
2443
+ # be implemented with an HTTP cookie, which should be able to uniquely identify
2444
+ # a visitor on a single device. This unique identifier should not change if the
2445
+ # visitor logs in or out of the website. The field must be a UTF-8 encoded
2446
+ # string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT
2447
+ # error is returned.
2448
+ # Corresponds to the JSON property `visitorId`
2449
+ # @return [String]
2450
+ attr_accessor :visitor_id
2451
+
2452
+ def initialize(**args)
2453
+ update!(**args)
2454
+ end
2455
+
2456
+ # Update properties of this object
2457
+ def update!(**args)
2458
+ @boost_spec = args[:boost_spec] if args.key?(:boost_spec)
2459
+ @branch = args[:branch] if args.key?(:branch)
2460
+ @canonical_filter = args[:canonical_filter] if args.key?(:canonical_filter)
2461
+ @dynamic_facet_spec = args[:dynamic_facet_spec] if args.key?(:dynamic_facet_spec)
2462
+ @facet_specs = args[:facet_specs] if args.key?(:facet_specs)
2463
+ @filter = args[:filter] if args.key?(:filter)
2464
+ @offset = args[:offset] if args.key?(:offset)
2465
+ @order_by = args[:order_by] if args.key?(:order_by)
2466
+ @page_categories = args[:page_categories] if args.key?(:page_categories)
2467
+ @page_size = args[:page_size] if args.key?(:page_size)
2468
+ @page_token = args[:page_token] if args.key?(:page_token)
2469
+ @query = args[:query] if args.key?(:query)
2470
+ @query_expansion_spec = args[:query_expansion_spec] if args.key?(:query_expansion_spec)
2471
+ @user_info = args[:user_info] if args.key?(:user_info)
2472
+ @variant_rollup_keys = args[:variant_rollup_keys] if args.key?(:variant_rollup_keys)
2473
+ @visitor_id = args[:visitor_id] if args.key?(:visitor_id)
2474
+ end
2475
+ end
2476
+
2477
+ # Boost specification to boost certain items.
2478
+ class GoogleCloudRetailV2SearchRequestBoostSpec
2479
+ include Google::Apis::Core::Hashable
2480
+
2481
+ # Condition boost specifications. If a product matches multiple conditions in
2482
+ # the specifictions, boost scores from these specifications are all applied and
2483
+ # combined in a non-linear way. Maximum number of specifications is 10.
2484
+ # Corresponds to the JSON property `conditionBoostSpecs`
2485
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2SearchRequestBoostSpecConditionBoostSpec>]
2486
+ attr_accessor :condition_boost_specs
2487
+
2488
+ def initialize(**args)
2489
+ update!(**args)
2490
+ end
2491
+
2492
+ # Update properties of this object
2493
+ def update!(**args)
2494
+ @condition_boost_specs = args[:condition_boost_specs] if args.key?(:condition_boost_specs)
2495
+ end
2496
+ end
2497
+
2498
+ # Boost applies to products which match a condition.
2499
+ class GoogleCloudRetailV2SearchRequestBoostSpecConditionBoostSpec
2500
+ include Google::Apis::Core::Hashable
2501
+
2502
+ # Strength of the condition boost, which should be in [-1, 1]. Negative boost
2503
+ # means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion.
2504
+ # However, it does not necessarily mean that the boosted item will be the top
2505
+ # result at all times, nor that other items will be excluded. Results could
2506
+ # still be shown even when none of them matches the condition. And results that
2507
+ # are significantly more relevant to the search query can still trump your
2508
+ # heavily favored but irrelevant items. Setting to -1.0 gives the item a big
2509
+ # demotion. However, results that are deeply relevant might still be shown. The
2510
+ # item will have an upstream battle to get a fairly high ranking, but it is not
2511
+ # blocked out completely. Setting to 0.0 means no boost applied. The boosting
2512
+ # condition is ignored.
2513
+ # Corresponds to the JSON property `boost`
2514
+ # @return [Float]
2515
+ attr_accessor :boost
2516
+
2517
+ # An expression which specifies a boost condition. The syntax and supported
2518
+ # fields are the same as a filter expression. See SearchRequest.filter for
2519
+ # detail syntax and limitations. Examples: * To boost products with product ID "
2520
+ # product_1" or "product_2", and color "Red" or "Blue": * (id: ANY("product_1", "
2521
+ # product_2")) AND (colorFamilies: ANY("Red","Blue"))
2522
+ # Corresponds to the JSON property `condition`
2523
+ # @return [String]
2524
+ attr_accessor :condition
2525
+
2526
+ def initialize(**args)
2527
+ update!(**args)
2528
+ end
2529
+
2530
+ # Update properties of this object
2531
+ def update!(**args)
2532
+ @boost = args[:boost] if args.key?(:boost)
2533
+ @condition = args[:condition] if args.key?(:condition)
2534
+ end
2535
+ end
2536
+
2537
+ # The specifications of dynamically generated facets.
2538
+ class GoogleCloudRetailV2SearchRequestDynamicFacetSpec
2539
+ include Google::Apis::Core::Hashable
2540
+
2541
+ # Mode of the DynamicFacet feature. Defaults to Mode.DISABLED if it's unset.
2542
+ # Corresponds to the JSON property `mode`
2543
+ # @return [String]
2544
+ attr_accessor :mode
2545
+
2546
+ def initialize(**args)
2547
+ update!(**args)
2548
+ end
2549
+
2550
+ # Update properties of this object
2551
+ def update!(**args)
2552
+ @mode = args[:mode] if args.key?(:mode)
2553
+ end
2554
+ end
2555
+
2556
+ # A facet specification to perform faceted search.
2557
+ class GoogleCloudRetailV2SearchRequestFacetSpec
2558
+ include Google::Apis::Core::Hashable
2559
+
2560
+ # Enables dynamic position for this facet. If set to true, the position of this
2561
+ # facet among all facets in the response is determined by Google Retail Search.
2562
+ # It will be ordered together with dynamic facets if dynamic facets is enabled.
2563
+ # If set to false, the position of this facet in the response will be the same
2564
+ # as in the request, and it will be ranked before the facets with dynamic
2565
+ # position enable and all dynamic facets. For example, you may always want to
2566
+ # have rating facet returned in the response, but it's not necessarily to always
2567
+ # display the rating facet at the top. In that case, you can set
2568
+ # enable_dynamic_position to true so that the position of rating facet in
2569
+ # response will be determined by Google Retail Search. Another example, assuming
2570
+ # you have the following facets in the request: * "rating",
2571
+ # enable_dynamic_position = true * "price", enable_dynamic_position = false * "
2572
+ # brands", enable_dynamic_position = false And also you have a dynamic facets
2573
+ # enable, which will generate a facet 'gender'. Then the final order of the
2574
+ # facets in the response can be ("price", "brands", "rating", "gender") or ("
2575
+ # price", "brands", "gender", "rating") depends on how Google Retail Search
2576
+ # orders "gender" and "rating" facets. However, notice that "price" and "brands"
2577
+ # will always be ranked at 1st and 2nd position since their
2578
+ # enable_dynamic_position are false.
2579
+ # Corresponds to the JSON property `enableDynamicPosition`
2580
+ # @return [Boolean]
2581
+ attr_accessor :enable_dynamic_position
2582
+ alias_method :enable_dynamic_position?, :enable_dynamic_position
2583
+
2584
+ # List of keys to exclude when faceting. By default, FacetKey.key is not
2585
+ # excluded from the filter unless it is listed in this field. For example,
2586
+ # suppose there are 100 products with color facet "Red" and 200 products with
2587
+ # color facet "Blue". A query containing the filter "colorFamilies:ANY("Red")"
2588
+ # and have "colorFamilies" as FacetKey.key will by default return the "Red" with
2589
+ # count 100. If this field contains "colorFamilies", then the query returns both
2590
+ # the "Red" with count 100 and "Blue" with count 200, because the "colorFamilies"
2591
+ # key is now excluded from the filter. A maximum of 100 values are allowed.
2592
+ # Otherwise, an INVALID_ARGUMENT error is returned.
2593
+ # Corresponds to the JSON property `excludedFilterKeys`
2594
+ # @return [Array<String>]
2595
+ attr_accessor :excluded_filter_keys
2596
+
2597
+ # Specifies how a facet is computed.
2598
+ # Corresponds to the JSON property `facetKey`
2599
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2SearchRequestFacetSpecFacetKey]
2600
+ attr_accessor :facet_key
2601
+
2602
+ # Maximum of facet values that should be returned for this facet. If unspecified,
2603
+ # defaults to 20. The maximum allowed value is 300. Values above 300 will be
2604
+ # coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned.
2605
+ # Corresponds to the JSON property `limit`
2606
+ # @return [Fixnum]
2607
+ attr_accessor :limit
2608
+
2609
+ def initialize(**args)
2610
+ update!(**args)
2611
+ end
2612
+
2613
+ # Update properties of this object
2614
+ def update!(**args)
2615
+ @enable_dynamic_position = args[:enable_dynamic_position] if args.key?(:enable_dynamic_position)
2616
+ @excluded_filter_keys = args[:excluded_filter_keys] if args.key?(:excluded_filter_keys)
2617
+ @facet_key = args[:facet_key] if args.key?(:facet_key)
2618
+ @limit = args[:limit] if args.key?(:limit)
2619
+ end
2620
+ end
2621
+
2622
+ # Specifies how a facet is computed.
2623
+ class GoogleCloudRetailV2SearchRequestFacetSpecFacetKey
2624
+ include Google::Apis::Core::Hashable
2625
+
2626
+ # Only get facet values that contains the given strings. For example, suppose "
2627
+ # categories" has three values "Women > Shoe", "Women > Dress" and "Men > Shoe".
2628
+ # If set "contains" to "Shoe", the "categories" facet will give only "Women >
2629
+ # Shoe" and "Men > Shoe". Only supported on textual fields. Maximum is 10.
2630
+ # Corresponds to the JSON property `contains`
2631
+ # @return [Array<String>]
2632
+ attr_accessor :contains
2633
+
2634
+ # Set only if values should be bucketized into intervals. Must be set for facets
2635
+ # with numerical values. Must not be set for facet with text values. Maximum
2636
+ # number of intervals is 30.
2637
+ # Corresponds to the JSON property `intervals`
2638
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2Interval>]
2639
+ attr_accessor :intervals
2640
+
2641
+ # Required. Supported textual and numerical facet keys in Product object, over
2642
+ # which the facet values are computed. Facet key is case-sensitive. Allowed
2643
+ # facet keys when FacetKey.query is not specified: * textual_field = * "brands" *
2644
+ # "categories" * "genders" * "ageGroups" * "availability" * "colorFamilies" * "
2645
+ # colors" * "sizes" * "materials" * "patterns" * "conditions" * "attributes.key"
2646
+ # * "pickupInStore" * "shipToStore" * "sameDayDelivery" * "nextDayDelivery" * "
2647
+ # customFulfillment1" * "customFulfillment2" * "customFulfillment3" * "
2648
+ # customFulfillment4" * "customFulfillment5" * numerical_field = * "price" * "
2649
+ # discount" * "rating" * "ratingCount" * "attributes.key"
2650
+ # Corresponds to the JSON property `key`
2651
+ # @return [String]
2652
+ attr_accessor :key
2653
+
2654
+ # The order in which Facet.values are returned. Allowed values are: * "count
2655
+ # desc", which means order by Facet.FacetValue.count descending. * "value desc",
2656
+ # which means order by Facet.FacetValue.value descending. Only applies to
2657
+ # textual facets. If not set, textual values are sorted in [natural order](https:
2658
+ # //en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in
2659
+ # the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.place_ids are
2660
+ # sorted in the order given by FacetSpec.FacetKey.restricted_values.
2661
+ # Corresponds to the JSON property `orderBy`
2662
+ # @return [String]
2663
+ attr_accessor :order_by
2664
+
2665
+ # Only get facet values that start with the given string prefix. For example,
2666
+ # suppose "categories" has three values "Women > Shoe", "Women > Dress" and "Men
2667
+ # > Shoe". If set "prefixes" to "Women", the "categories" facet will give only "
2668
+ # Women > Shoe" and "Women > Dress". Only supported on textual fields. Maximum
2669
+ # is 10.
2670
+ # Corresponds to the JSON property `prefixes`
2671
+ # @return [Array<String>]
2672
+ attr_accessor :prefixes
2673
+
2674
+ # The query that is used to compute facet for the given facet key. When provided,
2675
+ # it will override the default behavior of facet computation. The query syntax
2676
+ # is the same as a filter expression. See SearchRequest.filter for detail syntax
2677
+ # and limitations. Notice that there is no limitation on FacetKey.key when query
2678
+ # is specified. In the response, FacetValue.value will be always "1" and
2679
+ # FacetValue.count will be the number of results that matches the query. For
2680
+ # example, you can set a customized facet for "shipToStore", where FacetKey.key
2681
+ # is "customizedShipToStore", and FacetKey.query is "availability: ANY(\"
2682
+ # IN_STOCK\") AND shipToStore: ANY(\"123\")". Then the facet will count the
2683
+ # products that are both in stock and ship to store "123".
2684
+ # Corresponds to the JSON property `query`
2685
+ # @return [String]
2686
+ attr_accessor :query
2687
+
2688
+ # Only get facet for the given restricted values. For example, when using "
2689
+ # pickupInStore" as key and set restricted values to ["store123", "store456"],
2690
+ # only facets for "store123" and "store456" are returned. Only supported on
2691
+ # textual fields and fulfillments. Maximum is 20. Must be set for the
2692
+ # fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery *
2693
+ # nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3
2694
+ # * customFulfillment4 * customFulfillment5
2695
+ # Corresponds to the JSON property `restrictedValues`
2696
+ # @return [Array<String>]
2697
+ attr_accessor :restricted_values
2698
+
2699
+ def initialize(**args)
2700
+ update!(**args)
2701
+ end
2702
+
2703
+ # Update properties of this object
2704
+ def update!(**args)
2705
+ @contains = args[:contains] if args.key?(:contains)
2706
+ @intervals = args[:intervals] if args.key?(:intervals)
2707
+ @key = args[:key] if args.key?(:key)
2708
+ @order_by = args[:order_by] if args.key?(:order_by)
2709
+ @prefixes = args[:prefixes] if args.key?(:prefixes)
2710
+ @query = args[:query] if args.key?(:query)
2711
+ @restricted_values = args[:restricted_values] if args.key?(:restricted_values)
2712
+ end
2713
+ end
2714
+
2715
+ # Specification to determine under which conditions query expansion should occur.
2716
+ class GoogleCloudRetailV2SearchRequestQueryExpansionSpec
2717
+ include Google::Apis::Core::Hashable
2718
+
2719
+ # The condition under which query expansion should occur. Default to Condition.
2720
+ # DISABLED.
2721
+ # Corresponds to the JSON property `condition`
2722
+ # @return [String]
2723
+ attr_accessor :condition
2724
+
2725
+ # Whether to pin unexpanded results. If this field is set to true, unexpanded
2726
+ # products are always at the top of the search results, followed by the expanded
2727
+ # results.
2728
+ # Corresponds to the JSON property `pinUnexpandedResults`
2729
+ # @return [Boolean]
2730
+ attr_accessor :pin_unexpanded_results
2731
+ alias_method :pin_unexpanded_results?, :pin_unexpanded_results
2732
+
2733
+ def initialize(**args)
2734
+ update!(**args)
2735
+ end
2736
+
2737
+ # Update properties of this object
2738
+ def update!(**args)
2739
+ @condition = args[:condition] if args.key?(:condition)
2740
+ @pin_unexpanded_results = args[:pin_unexpanded_results] if args.key?(:pin_unexpanded_results)
2741
+ end
2742
+ end
2743
+
2744
+ # Response message for SearchService.Search method.
2745
+ class GoogleCloudRetailV2SearchResponse
2746
+ include Google::Apis::Core::Hashable
2747
+
2748
+ # A unique search token. This should be included in the UserEvent logs resulting
2749
+ # from this search, which enables accurate attribution of search model
2750
+ # performance.
2751
+ # Corresponds to the JSON property `attributionToken`
2752
+ # @return [String]
2753
+ attr_accessor :attribution_token
2754
+
2755
+ # If spell correction applies, the corrected query. Otherwise, empty.
2756
+ # Corresponds to the JSON property `correctedQuery`
2757
+ # @return [String]
2758
+ attr_accessor :corrected_query
2759
+
2760
+ # Results of facets requested by user.
2761
+ # Corresponds to the JSON property `facets`
2762
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2SearchResponseFacet>]
2763
+ attr_accessor :facets
2764
+
2765
+ # A token that can be sent as SearchRequest.page_token to retrieve the next page.
2766
+ # If this field is omitted, there are no subsequent pages.
2767
+ # Corresponds to the JSON property `nextPageToken`
2768
+ # @return [String]
2769
+ attr_accessor :next_page_token
2770
+
2771
+ # Information describing query expansion including whether expansion has
2772
+ # occurred.
2773
+ # Corresponds to the JSON property `queryExpansionInfo`
2774
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2SearchResponseQueryExpansionInfo]
2775
+ attr_accessor :query_expansion_info
2776
+
2777
+ # The URI of a customer-defined redirect page. If redirect action is triggered,
2778
+ # no search will be performed, and only redirect_uri and attribution_token will
2779
+ # be set in the response.
2780
+ # Corresponds to the JSON property `redirectUri`
2781
+ # @return [String]
2782
+ attr_accessor :redirect_uri
2783
+
2784
+ # A list of matched items. The order represents the ranking.
2785
+ # Corresponds to the JSON property `results`
2786
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2SearchResponseSearchResult>]
2787
+ attr_accessor :results
2788
+
2789
+ # The estimated total count of matched items irrespective of pagination. The
2790
+ # count of results returned by pagination may be less than the total_size that
2791
+ # matches.
2792
+ # Corresponds to the JSON property `totalSize`
2793
+ # @return [Fixnum]
2794
+ attr_accessor :total_size
2795
+
2796
+ def initialize(**args)
2797
+ update!(**args)
2798
+ end
2799
+
2800
+ # Update properties of this object
2801
+ def update!(**args)
2802
+ @attribution_token = args[:attribution_token] if args.key?(:attribution_token)
2803
+ @corrected_query = args[:corrected_query] if args.key?(:corrected_query)
2804
+ @facets = args[:facets] if args.key?(:facets)
2805
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2806
+ @query_expansion_info = args[:query_expansion_info] if args.key?(:query_expansion_info)
2807
+ @redirect_uri = args[:redirect_uri] if args.key?(:redirect_uri)
2808
+ @results = args[:results] if args.key?(:results)
2809
+ @total_size = args[:total_size] if args.key?(:total_size)
2810
+ end
2811
+ end
2812
+
2813
+ # A facet result.
2814
+ class GoogleCloudRetailV2SearchResponseFacet
2815
+ include Google::Apis::Core::Hashable
2816
+
2817
+ # Whether the facet is dynamically generated.
2818
+ # Corresponds to the JSON property `dynamicFacet`
2819
+ # @return [Boolean]
2820
+ attr_accessor :dynamic_facet
2821
+ alias_method :dynamic_facet?, :dynamic_facet
2822
+
2823
+ # The key for this facet. E.g., "colorFamilies" or "price" or "attributes.attr1".
2824
+ # Corresponds to the JSON property `key`
2825
+ # @return [String]
2826
+ attr_accessor :key
2827
+
2828
+ # The facet values for this field.
2829
+ # Corresponds to the JSON property `values`
2830
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2SearchResponseFacetFacetValue>]
2831
+ attr_accessor :values
2832
+
2833
+ def initialize(**args)
2834
+ update!(**args)
2835
+ end
2836
+
2837
+ # Update properties of this object
2838
+ def update!(**args)
2839
+ @dynamic_facet = args[:dynamic_facet] if args.key?(:dynamic_facet)
2840
+ @key = args[:key] if args.key?(:key)
2841
+ @values = args[:values] if args.key?(:values)
2842
+ end
2843
+ end
2844
+
2845
+ # A facet value which contains value names and their count.
2846
+ class GoogleCloudRetailV2SearchResponseFacetFacetValue
2847
+ include Google::Apis::Core::Hashable
2848
+
2849
+ # Number of items that have this facet value.
2850
+ # Corresponds to the JSON property `count`
2851
+ # @return [Fixnum]
2852
+ attr_accessor :count
2853
+
2854
+ # A floating point interval.
2855
+ # Corresponds to the JSON property `interval`
2856
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Interval]
2857
+ attr_accessor :interval
2858
+
2859
+ # Text value of a facet, such as "Black" for facet "colorFamilies".
2860
+ # Corresponds to the JSON property `value`
2861
+ # @return [String]
2862
+ attr_accessor :value
2863
+
2864
+ def initialize(**args)
2865
+ update!(**args)
2866
+ end
2867
+
2868
+ # Update properties of this object
2869
+ def update!(**args)
2870
+ @count = args[:count] if args.key?(:count)
2871
+ @interval = args[:interval] if args.key?(:interval)
2872
+ @value = args[:value] if args.key?(:value)
2873
+ end
2874
+ end
2875
+
2876
+ # Information describing query expansion including whether expansion has
2877
+ # occurred.
2878
+ class GoogleCloudRetailV2SearchResponseQueryExpansionInfo
2879
+ include Google::Apis::Core::Hashable
2880
+
2881
+ # Bool describing whether query expansion has occurred.
2882
+ # Corresponds to the JSON property `expandedQuery`
2883
+ # @return [Boolean]
2884
+ attr_accessor :expanded_query
2885
+ alias_method :expanded_query?, :expanded_query
2886
+
2887
+ # Number of pinned results. This field will only be set when expansion happens
2888
+ # and SearchRequest.query_expansion_spec.pin_unexpanded_results is set to true.
2889
+ # Corresponds to the JSON property `pinnedResultCount`
2890
+ # @return [Fixnum]
2891
+ attr_accessor :pinned_result_count
2892
+
2893
+ def initialize(**args)
2894
+ update!(**args)
2895
+ end
2896
+
2897
+ # Update properties of this object
2898
+ def update!(**args)
2899
+ @expanded_query = args[:expanded_query] if args.key?(:expanded_query)
2900
+ @pinned_result_count = args[:pinned_result_count] if args.key?(:pinned_result_count)
2901
+ end
2902
+ end
2903
+
2904
+ # Represents the search results.
2905
+ class GoogleCloudRetailV2SearchResponseSearchResult
2906
+ include Google::Apis::Core::Hashable
2907
+
2908
+ # Product.id of the searched Product.
2909
+ # Corresponds to the JSON property `id`
2910
+ # @return [String]
2911
+ attr_accessor :id
2912
+
2913
+ # The count of matched variant Products.
2914
+ # Corresponds to the JSON property `matchingVariantCount`
2915
+ # @return [Fixnum]
2916
+ attr_accessor :matching_variant_count
2917
+
2918
+ # If a variant Product matches the search query, this map indicates which
2919
+ # Product fields are matched. The key is the Product.name, the value is a field
2920
+ # mask of the matched Product fields. If matched attributes cannot be determined,
2921
+ # this map will be empty. For example, a key "sku1" with field mask "products.
2922
+ # color_info" indicates there is a match between "sku1" ColorInfo and the query.
2923
+ # Corresponds to the JSON property `matchingVariantFields`
2924
+ # @return [Hash<String,String>]
2925
+ attr_accessor :matching_variant_fields
2926
+
2927
+ # Product captures all metadata information of items to be recommended or
2928
+ # searched.
2929
+ # Corresponds to the JSON property `product`
2930
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Product]
2931
+ attr_accessor :product
2932
+
2933
+ # The rollup matching variant Product attributes. The key is one of the
2934
+ # SearchRequest.variant_rollup_keys. The values are the merged and de-duplicated
2935
+ # Product attributes. Notice that the rollup values are respect filter. For
2936
+ # example, when filtering by "colorFamilies:ANY(\"red\")" and rollup "
2937
+ # colorFamilies", only "red" is returned. For textual and numerical attributes,
2938
+ # the rollup values is a list of string or double values with type google.
2939
+ # protobuf.ListValue. For example, if there are two variants with colors "red"
2940
+ # and "blue", the rollup values are ` key: "colorFamilies" value ` list_value `
2941
+ # values ` string_value: "red" ` values ` string_value: "blue" ` ` ` ` For
2942
+ # FulfillmentInfo, the rollup values is a double value with type google.protobuf.
2943
+ # Value. For example, ``key: "pickupInStore.store1" value ` number_value: 10 ```
2944
+ # means a there are 10 variants in this product are available in the store "
2945
+ # store1".
2946
+ # Corresponds to the JSON property `variantRollupValues`
2947
+ # @return [Hash<String,Object>]
2948
+ attr_accessor :variant_rollup_values
1284
2949
 
1285
2950
  def initialize(**args)
1286
2951
  update!(**args)
@@ -1288,21 +2953,31 @@ module Google
1288
2953
 
1289
2954
  # Update properties of this object
1290
2955
  def update!(**args)
1291
- @filter = args[:filter] if args.key?(:filter)
1292
- @force = args[:force] if args.key?(:force)
2956
+ @id = args[:id] if args.key?(:id)
2957
+ @matching_variant_count = args[:matching_variant_count] if args.key?(:matching_variant_count)
2958
+ @matching_variant_fields = args[:matching_variant_fields] if args.key?(:matching_variant_fields)
2959
+ @product = args[:product] if args.key?(:product)
2960
+ @variant_rollup_values = args[:variant_rollup_values] if args.key?(:variant_rollup_values)
1293
2961
  end
1294
2962
  end
1295
2963
 
1296
- # Response of the PurgeUserEventsRequest. If the long running operation is
1297
- # successfully done, then this message is returned by the google.longrunning.
1298
- # Operations.response field.
1299
- class GoogleCloudRetailV2PurgeUserEventsResponse
2964
+ # Request message to set a specified branch as new default_branch.
2965
+ class GoogleCloudRetailV2SetDefaultBranchRequest
1300
2966
  include Google::Apis::Core::Hashable
1301
2967
 
1302
- # The total count of events purged as a result of the operation.
1303
- # Corresponds to the JSON property `purgedEventsCount`
1304
- # @return [Fixnum]
1305
- attr_accessor :purged_events_count
2968
+ # The final component of the resource name of a branch. This field must be one
2969
+ # of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT error is returned.
2970
+ # Corresponds to the JSON property `branchId`
2971
+ # @return [String]
2972
+ attr_accessor :branch_id
2973
+
2974
+ # Some note on this request, this can be retrieved by CatalogService.
2975
+ # GetDefaultBranch before next valid default branch set occurs. This field must
2976
+ # be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise,
2977
+ # an INVALID_ARGUMENT error is returned.
2978
+ # Corresponds to the JSON property `note`
2979
+ # @return [String]
2980
+ attr_accessor :note
1306
2981
 
1307
2982
  def initialize(**args)
1308
2983
  update!(**args)
@@ -1310,12 +2985,15 @@ module Google
1310
2985
 
1311
2986
  # Update properties of this object
1312
2987
  def update!(**args)
1313
- @purged_events_count = args[:purged_events_count] if args.key?(:purged_events_count)
2988
+ @branch_id = args[:branch_id] if args.key?(:branch_id)
2989
+ @note = args[:note] if args.key?(:note)
1314
2990
  end
1315
2991
  end
1316
2992
 
1317
- # Metadata for RejoinUserEvents method.
1318
- class GoogleCloudRetailV2RejoinUserEventsMetadata
2993
+ # Metadata related to the progress of the SetInventory operation. Currently
2994
+ # empty because there is no meaningful metadata populated from the SetInventory
2995
+ # method.
2996
+ class GoogleCloudRetailV2SetInventoryMetadata
1319
2997
  include Google::Apis::Core::Hashable
1320
2998
 
1321
2999
  def initialize(**args)
@@ -1327,17 +3005,39 @@ module Google
1327
3005
  end
1328
3006
  end
1329
3007
 
1330
- # Request message for RejoinUserEvents method.
1331
- class GoogleCloudRetailV2RejoinUserEventsRequest
3008
+ # Request message for SetInventory method.
3009
+ class GoogleCloudRetailV2SetInventoryRequest
1332
3010
  include Google::Apis::Core::Hashable
1333
3011
 
1334
- # The type of the user event rejoin to define the scope and range of the user
1335
- # events to be rejoined with the latest product catalog. Defaults to
1336
- # USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an
1337
- # invalid integer value.
1338
- # Corresponds to the JSON property `userEventRejoinScope`
3012
+ # If set to true, and the Product with name Product.name is not found, the
3013
+ # inventory update will still be processed and retained for at most 1 day until
3014
+ # the Product is created. If set to false, an INVALID_ARGUMENT error is returned
3015
+ # if the Product is not found.
3016
+ # Corresponds to the JSON property `allowMissing`
3017
+ # @return [Boolean]
3018
+ attr_accessor :allow_missing
3019
+ alias_method :allow_missing?, :allow_missing
3020
+
3021
+ # Product captures all metadata information of items to be recommended or
3022
+ # searched.
3023
+ # Corresponds to the JSON property `inventory`
3024
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Product]
3025
+ attr_accessor :inventory
3026
+
3027
+ # Indicates which inventory fields in the provided Product to update. If not set
3028
+ # or set with empty paths, all inventory fields will be updated. If an
3029
+ # unsupported or unknown field is provided, an INVALID_ARGUMENT error is
3030
+ # returned and the entire update will be ignored.
3031
+ # Corresponds to the JSON property `setMask`
1339
3032
  # @return [String]
1340
- attr_accessor :user_event_rejoin_scope
3033
+ attr_accessor :set_mask
3034
+
3035
+ # The time when the request is issued, used to prevent out-of-order updates on
3036
+ # inventory fields with the last update time recorded. If not provided, the
3037
+ # internal system time will be used.
3038
+ # Corresponds to the JSON property `setTime`
3039
+ # @return [String]
3040
+ attr_accessor :set_time
1341
3041
 
1342
3042
  def initialize(**args)
1343
3043
  update!(**args)
@@ -1345,26 +3045,24 @@ module Google
1345
3045
 
1346
3046
  # Update properties of this object
1347
3047
  def update!(**args)
1348
- @user_event_rejoin_scope = args[:user_event_rejoin_scope] if args.key?(:user_event_rejoin_scope)
3048
+ @allow_missing = args[:allow_missing] if args.key?(:allow_missing)
3049
+ @inventory = args[:inventory] if args.key?(:inventory)
3050
+ @set_mask = args[:set_mask] if args.key?(:set_mask)
3051
+ @set_time = args[:set_time] if args.key?(:set_time)
1349
3052
  end
1350
3053
  end
1351
3054
 
1352
- # Response message for RejoinUserEvents method.
1353
- class GoogleCloudRetailV2RejoinUserEventsResponse
3055
+ # Response of the SetInventoryRequest. Currently empty because there is no
3056
+ # meaningful response populated from the SetInventory method.
3057
+ class GoogleCloudRetailV2SetInventoryResponse
1354
3058
  include Google::Apis::Core::Hashable
1355
3059
 
1356
- # Number of user events that were joined with latest product catalog.
1357
- # Corresponds to the JSON property `rejoinedUserEventsCount`
1358
- # @return [Fixnum]
1359
- attr_accessor :rejoined_user_events_count
1360
-
1361
3060
  def initialize(**args)
1362
3061
  update!(**args)
1363
3062
  end
1364
3063
 
1365
3064
  # Update properties of this object
1366
3065
  def update!(**args)
1367
- @rejoined_user_events_count = args[:rejoined_user_events_count] if args.key?(:rejoined_user_events_count)
1368
3066
  end
1369
3067
  end
1370
3068
 
@@ -1386,13 +3084,14 @@ module Google
1386
3084
  # Highly recommended for user events that are the result of PredictionService.
1387
3085
  # Predict. This field enables accurate attribution of recommendation model
1388
3086
  # performance. The value must be a valid PredictResponse.attribution_token for
1389
- # user events that are the result of PredictionService.Predict. This token
1390
- # enables us to accurately attribute page view or purchase back to the event and
1391
- # the particular predict response containing this clicked/purchased product. If
1392
- # user clicks on product K in the recommendation results, pass PredictResponse.
1393
- # attribution_token as a URL parameter to product K's page. When recording
1394
- # events on product K's page, log the PredictResponse.attribution_token to this
1395
- # field.
3087
+ # user events that are the result of PredictionService.Predict. The value must
3088
+ # be a valid SearchResponse.attribution_token for user events that are the
3089
+ # result of SearchService.Search. This token enables us to accurately attribute
3090
+ # page view or purchase back to the event and the particular predict response
3091
+ # containing this clicked/purchased product. If user clicks on product K in the
3092
+ # recommendation results, pass PredictResponse.attribution_token as a URL
3093
+ # parameter to product K's page. When recording events on product K's page, log
3094
+ # the PredictResponse.attribution_token to this field.
1396
3095
  # Corresponds to the JSON property `attributionToken`
1397
3096
  # @return [String]
1398
3097
  attr_accessor :attribution_token
@@ -1405,6 +3104,12 @@ module Google
1405
3104
  # @return [String]
1406
3105
  attr_accessor :cart_id
1407
3106
 
3107
+ # Detailed completion information including completion attribution token and
3108
+ # clicked completion info.
3109
+ # Corresponds to the JSON property `completionDetail`
3110
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2CompletionDetail]
3111
+ attr_accessor :completion_detail
3112
+
1408
3113
  # Only required for UserEventService.ImportUserEvents method. Timestamp of when
1409
3114
  # the user event happened.
1410
3115
  # Corresponds to the JSON property `eventTime`
@@ -1431,6 +3136,34 @@ module Google
1431
3136
  # @return [Array<String>]
1432
3137
  attr_accessor :experiment_ids
1433
3138
 
3139
+ # The filter syntax consists of an expression language for constructing a
3140
+ # predicate from one or more fields of the products being filtered. See
3141
+ # SearchRequest.filter for definition and syntax. The value must be a UTF-8
3142
+ # encoded string with a length limit of 1,000 characters. Otherwise, an
3143
+ # INVALID_ARGUMENT error is returned.
3144
+ # Corresponds to the JSON property `filter`
3145
+ # @return [String]
3146
+ attr_accessor :filter
3147
+
3148
+ # An integer that specifies the current offset for pagination (the 0-indexed
3149
+ # starting location, amongst the products deemed by the API as relevant). See
3150
+ # SearchRequest.offset for definition. If this field is negative, an
3151
+ # INVALID_ARGUMENT is returned. This can only be set for `search` events. Other
3152
+ # event types should not set this field. Otherwise, an INVALID_ARGUMENT error is
3153
+ # returned.
3154
+ # Corresponds to the JSON property `offset`
3155
+ # @return [Fixnum]
3156
+ attr_accessor :offset
3157
+
3158
+ # The order in which products are returned. See SearchRequest.order_by for
3159
+ # definition and syntax. The value must be a UTF-8 encoded string with a length
3160
+ # limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
3161
+ # This can only be set for `search` events. Other event types should not set
3162
+ # this field. Otherwise, an INVALID_ARGUMENT error is returned.
3163
+ # Corresponds to the JSON property `orderBy`
3164
+ # @return [String]
3165
+ attr_accessor :order_by
3166
+
1434
3167
  # The categories associated with a category page. To represent full path of
1435
3168
  # category, use '>' sign to separate different hierarchies. If '>' is part of
1436
3169
  # the category name, please replace it with other character(s). Category pages
@@ -1479,15 +3212,24 @@ module Google
1479
3212
  # @return [String]
1480
3213
  attr_accessor :referrer_uri
1481
3214
 
1482
- # The user's search query. The value must be a UTF-8 encoded string with a
1483
- # length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is
1484
- # returned. At least one of search_query or page_categories is required for `
1485
- # search` events. Other event types should not set this field. Otherwise, an
1486
- # INVALID_ARGUMENT error is returned.
3215
+ # The user's search query. See SearchRequest.query for definition. The value
3216
+ # must be a UTF-8 encoded string with a length limit of 5,000 characters.
3217
+ # Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query
3218
+ # or page_categories is required for `search` events. Other event types should
3219
+ # not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
1487
3220
  # Corresponds to the JSON property `searchQuery`
1488
3221
  # @return [String]
1489
3222
  attr_accessor :search_query
1490
3223
 
3224
+ # A unique identifier for tracking a visitor session with a length limit of 128
3225
+ # bytes. A session is an aggregation of an end user behavior in a time span. A
3226
+ # general guideline to populate the sesion_id: 1. If user has no activity for 30
3227
+ # min, a new session_id should be assigned. 2. The session_id should be unique
3228
+ # across users, suggest use uuid or add visitor_id as prefix.
3229
+ # Corresponds to the JSON property `sessionId`
3230
+ # @return [String]
3231
+ attr_accessor :session_id
3232
+
1491
3233
  # Complete URL (window.location.href) of the user's current page. When using the
1492
3234
  # client side event reporting with JavaScript pixel and Google Tag Manager, this
1493
3235
  # value is filled in automatically. Maximum length 5,000 characters.
@@ -1521,15 +3263,20 @@ module Google
1521
3263
  @attributes = args[:attributes] if args.key?(:attributes)
1522
3264
  @attribution_token = args[:attribution_token] if args.key?(:attribution_token)
1523
3265
  @cart_id = args[:cart_id] if args.key?(:cart_id)
3266
+ @completion_detail = args[:completion_detail] if args.key?(:completion_detail)
1524
3267
  @event_time = args[:event_time] if args.key?(:event_time)
1525
3268
  @event_type = args[:event_type] if args.key?(:event_type)
1526
3269
  @experiment_ids = args[:experiment_ids] if args.key?(:experiment_ids)
3270
+ @filter = args[:filter] if args.key?(:filter)
3271
+ @offset = args[:offset] if args.key?(:offset)
3272
+ @order_by = args[:order_by] if args.key?(:order_by)
1527
3273
  @page_categories = args[:page_categories] if args.key?(:page_categories)
1528
3274
  @page_view_id = args[:page_view_id] if args.key?(:page_view_id)
1529
3275
  @product_details = args[:product_details] if args.key?(:product_details)
1530
3276
  @purchase_transaction = args[:purchase_transaction] if args.key?(:purchase_transaction)
1531
3277
  @referrer_uri = args[:referrer_uri] if args.key?(:referrer_uri)
1532
3278
  @search_query = args[:search_query] if args.key?(:search_query)
3279
+ @session_id = args[:session_id] if args.key?(:session_id)
1533
3280
  @uri = args[:uri] if args.key?(:uri)
1534
3281
  @user_info = args[:user_info] if args.key?(:user_info)
1535
3282
  @visitor_id = args[:visitor_id] if args.key?(:visitor_id)
@@ -1628,9 +3375,10 @@ module Google
1628
3375
  attr_accessor :direct_user_request
1629
3376
  alias_method :direct_user_request?, :direct_user_request
1630
3377
 
1631
- # The end user's IP address. This field is used to extract location information
1632
- # for personalization. This field must be either an IPv4 address (e.g. "104.133.
1633
- # 9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334").
3378
+ # The end user's IP address. Required for getting SearchResponse.
3379
+ # sponsored_results. This field is used to extract location information for
3380
+ # personalization. This field must be either an IPv4 address (e.g. "104.133.9.80"
3381
+ # ) or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334").
1634
3382
  # Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when
1635
3383
  # using the JavaScript tag in UserEventService.CollectUserEvent or if
1636
3384
  # direct_user_request is set.
@@ -1638,11 +3386,12 @@ module Google
1638
3386
  # @return [String]
1639
3387
  attr_accessor :ip_address
1640
3388
 
1641
- # User agent as included in the HTTP header. The field must be a UTF-8 encoded
1642
- # string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT
1643
- # error is returned. This should not be set when using the client side event
1644
- # reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or
1645
- # if direct_user_request is set.
3389
+ # User agent as included in the HTTP header. Required for getting SearchResponse.
3390
+ # sponsored_results. The field must be a UTF-8 encoded string with a length
3391
+ # limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
3392
+ # This should not be set when using the client side event reporting with GTM or
3393
+ # JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request
3394
+ # is set.
1646
3395
  # Corresponds to the JSON property `userAgent`
1647
3396
  # @return [String]
1648
3397
  attr_accessor :user_agent
@@ -1667,6 +3416,35 @@ module Google
1667
3416
  end
1668
3417
  end
1669
3418
 
3419
+ # Metadata related to the progress of the AddFulfillmentPlaces operation.
3420
+ # Currently empty because there is no meaningful metadata populated from the
3421
+ # AddFulfillmentPlaces method.
3422
+ class GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata
3423
+ include Google::Apis::Core::Hashable
3424
+
3425
+ def initialize(**args)
3426
+ update!(**args)
3427
+ end
3428
+
3429
+ # Update properties of this object
3430
+ def update!(**args)
3431
+ end
3432
+ end
3433
+
3434
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
3435
+ # is no meaningful response populated from the AddFulfillmentPlaces method.
3436
+ class GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse
3437
+ include Google::Apis::Core::Hashable
3438
+
3439
+ def initialize(**args)
3440
+ update!(**args)
3441
+ end
3442
+
3443
+ # Update properties of this object
3444
+ def update!(**args)
3445
+ end
3446
+ end
3447
+
1670
3448
  # Configuration of destination for Export related errors.
1671
3449
  class GoogleCloudRetailV2alphaExportErrorsConfig
1672
3450
  include Google::Apis::Core::Hashable
@@ -1769,6 +3547,27 @@ module Google
1769
3547
  end
1770
3548
  end
1771
3549
 
3550
+ # Response of the ImportCompletionDataRequest. If the long running operation is
3551
+ # done, this message is returned by the google.longrunning.Operations.response
3552
+ # field if the operation is successful.
3553
+ class GoogleCloudRetailV2alphaImportCompletionDataResponse
3554
+ include Google::Apis::Core::Hashable
3555
+
3556
+ # A sample of errors encountered while processing the request.
3557
+ # Corresponds to the JSON property `errorSamples`
3558
+ # @return [Array<Google::Apis::RetailV2::GoogleRpcStatus>]
3559
+ attr_accessor :error_samples
3560
+
3561
+ def initialize(**args)
3562
+ update!(**args)
3563
+ end
3564
+
3565
+ # Update properties of this object
3566
+ def update!(**args)
3567
+ @error_samples = args[:error_samples] if args.key?(:error_samples)
3568
+ end
3569
+ end
3570
+
1772
3571
  # Configuration of destination for Import related errors.
1773
3572
  class GoogleCloudRetailV2alphaImportErrorsConfig
1774
3573
  include Google::Apis::Core::Hashable
@@ -1805,6 +3604,20 @@ module Google
1805
3604
  # @return [Fixnum]
1806
3605
  attr_accessor :failure_count
1807
3606
 
3607
+ # Pub/Sub topic for receiving notification. If this field is set, when the
3608
+ # import is finished, a notification will be sent to specified Pub/Sub topic.
3609
+ # The message data will be JSON string of a Operation. Format of the Pub/Sub
3610
+ # topic is `projects/`project`/topics/`topic``.
3611
+ # Corresponds to the JSON property `notificationPubsubTopic`
3612
+ # @return [String]
3613
+ attr_accessor :notification_pubsub_topic
3614
+
3615
+ # Id of the request / operation. This is parroting back the requestId that was
3616
+ # passed in the request.
3617
+ # Corresponds to the JSON property `requestId`
3618
+ # @return [String]
3619
+ attr_accessor :request_id
3620
+
1808
3621
  # Count of entries that were processed successfully.
1809
3622
  # Corresponds to the JSON property `successCount`
1810
3623
  # @return [Fixnum]
@@ -1824,6 +3637,8 @@ module Google
1824
3637
  def update!(**args)
1825
3638
  @create_time = args[:create_time] if args.key?(:create_time)
1826
3639
  @failure_count = args[:failure_count] if args.key?(:failure_count)
3640
+ @notification_pubsub_topic = args[:notification_pubsub_topic] if args.key?(:notification_pubsub_topic)
3641
+ @request_id = args[:request_id] if args.key?(:request_id)
1827
3642
  @success_count = args[:success_count] if args.key?(:success_count)
1828
3643
  @update_time = args[:update_time] if args.key?(:update_time)
1829
3644
  end
@@ -1957,6 +3772,64 @@ module Google
1957
3772
  end
1958
3773
  end
1959
3774
 
3775
+ # Metadata related to the progress of the RemoveFulfillmentPlaces operation.
3776
+ # Currently empty because there is no meaningful metadata populated from the
3777
+ # RemoveFulfillmentPlaces method.
3778
+ class GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata
3779
+ include Google::Apis::Core::Hashable
3780
+
3781
+ def initialize(**args)
3782
+ update!(**args)
3783
+ end
3784
+
3785
+ # Update properties of this object
3786
+ def update!(**args)
3787
+ end
3788
+ end
3789
+
3790
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
3791
+ # is no meaningful response populated from the RemoveFulfillmentPlaces method.
3792
+ class GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse
3793
+ include Google::Apis::Core::Hashable
3794
+
3795
+ def initialize(**args)
3796
+ update!(**args)
3797
+ end
3798
+
3799
+ # Update properties of this object
3800
+ def update!(**args)
3801
+ end
3802
+ end
3803
+
3804
+ # Metadata related to the progress of the SetInventory operation. Currently
3805
+ # empty because there is no meaningful metadata populated from the SetInventory
3806
+ # method.
3807
+ class GoogleCloudRetailV2alphaSetInventoryMetadata
3808
+ include Google::Apis::Core::Hashable
3809
+
3810
+ def initialize(**args)
3811
+ update!(**args)
3812
+ end
3813
+
3814
+ # Update properties of this object
3815
+ def update!(**args)
3816
+ end
3817
+ end
3818
+
3819
+ # Response of the SetInventoryRequest. Currently empty because there is no
3820
+ # meaningful response populated from the SetInventory method.
3821
+ class GoogleCloudRetailV2alphaSetInventoryResponse
3822
+ include Google::Apis::Core::Hashable
3823
+
3824
+ def initialize(**args)
3825
+ update!(**args)
3826
+ end
3827
+
3828
+ # Update properties of this object
3829
+ def update!(**args)
3830
+ end
3831
+ end
3832
+
1960
3833
  # A summary of import result. The UserEventImportSummary summarizes the import
1961
3834
  # status for user events.
1962
3835
  class GoogleCloudRetailV2alphaUserEventImportSummary
@@ -1984,6 +3857,35 @@ module Google
1984
3857
  end
1985
3858
  end
1986
3859
 
3860
+ # Metadata related to the progress of the AddFulfillmentPlaces operation.
3861
+ # Currently empty because there is no meaningful metadata populated from the
3862
+ # AddFulfillmentPlaces method.
3863
+ class GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata
3864
+ include Google::Apis::Core::Hashable
3865
+
3866
+ def initialize(**args)
3867
+ update!(**args)
3868
+ end
3869
+
3870
+ # Update properties of this object
3871
+ def update!(**args)
3872
+ end
3873
+ end
3874
+
3875
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
3876
+ # is no meaningful response populated from the AddFulfillmentPlaces method.
3877
+ class GoogleCloudRetailV2betaAddFulfillmentPlacesResponse
3878
+ include Google::Apis::Core::Hashable
3879
+
3880
+ def initialize(**args)
3881
+ update!(**args)
3882
+ end
3883
+
3884
+ # Update properties of this object
3885
+ def update!(**args)
3886
+ end
3887
+ end
3888
+
1987
3889
  # Configuration of destination for Export related errors.
1988
3890
  class GoogleCloudRetailV2betaExportErrorsConfig
1989
3891
  include Google::Apis::Core::Hashable
@@ -2086,6 +3988,27 @@ module Google
2086
3988
  end
2087
3989
  end
2088
3990
 
3991
+ # Response of the ImportCompletionDataRequest. If the long running operation is
3992
+ # done, this message is returned by the google.longrunning.Operations.response
3993
+ # field if the operation is successful.
3994
+ class GoogleCloudRetailV2betaImportCompletionDataResponse
3995
+ include Google::Apis::Core::Hashable
3996
+
3997
+ # A sample of errors encountered while processing the request.
3998
+ # Corresponds to the JSON property `errorSamples`
3999
+ # @return [Array<Google::Apis::RetailV2::GoogleRpcStatus>]
4000
+ attr_accessor :error_samples
4001
+
4002
+ def initialize(**args)
4003
+ update!(**args)
4004
+ end
4005
+
4006
+ # Update properties of this object
4007
+ def update!(**args)
4008
+ @error_samples = args[:error_samples] if args.key?(:error_samples)
4009
+ end
4010
+ end
4011
+
2089
4012
  # Configuration of destination for Import related errors.
2090
4013
  class GoogleCloudRetailV2betaImportErrorsConfig
2091
4014
  include Google::Apis::Core::Hashable
@@ -2122,6 +4045,20 @@ module Google
2122
4045
  # @return [Fixnum]
2123
4046
  attr_accessor :failure_count
2124
4047
 
4048
+ # Pub/Sub topic for receiving notification. If this field is set, when the
4049
+ # import is finished, a notification will be sent to specified Pub/Sub topic.
4050
+ # The message data will be JSON string of a Operation. Format of the Pub/Sub
4051
+ # topic is `projects/`project`/topics/`topic``.
4052
+ # Corresponds to the JSON property `notificationPubsubTopic`
4053
+ # @return [String]
4054
+ attr_accessor :notification_pubsub_topic
4055
+
4056
+ # Id of the request / operation. This is parroting back the requestId that was
4057
+ # passed in the request.
4058
+ # Corresponds to the JSON property `requestId`
4059
+ # @return [String]
4060
+ attr_accessor :request_id
4061
+
2125
4062
  # Count of entries that were processed successfully.
2126
4063
  # Corresponds to the JSON property `successCount`
2127
4064
  # @return [Fixnum]
@@ -2141,6 +4078,8 @@ module Google
2141
4078
  def update!(**args)
2142
4079
  @create_time = args[:create_time] if args.key?(:create_time)
2143
4080
  @failure_count = args[:failure_count] if args.key?(:failure_count)
4081
+ @notification_pubsub_topic = args[:notification_pubsub_topic] if args.key?(:notification_pubsub_topic)
4082
+ @request_id = args[:request_id] if args.key?(:request_id)
2144
4083
  @success_count = args[:success_count] if args.key?(:success_count)
2145
4084
  @update_time = args[:update_time] if args.key?(:update_time)
2146
4085
  end
@@ -2274,6 +4213,64 @@ module Google
2274
4213
  end
2275
4214
  end
2276
4215
 
4216
+ # Metadata related to the progress of the RemoveFulfillmentPlaces operation.
4217
+ # Currently empty because there is no meaningful metadata populated from the
4218
+ # RemoveFulfillmentPlaces method.
4219
+ class GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata
4220
+ include Google::Apis::Core::Hashable
4221
+
4222
+ def initialize(**args)
4223
+ update!(**args)
4224
+ end
4225
+
4226
+ # Update properties of this object
4227
+ def update!(**args)
4228
+ end
4229
+ end
4230
+
4231
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
4232
+ # is no meaningful response populated from the RemoveFulfillmentPlaces method.
4233
+ class GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse
4234
+ include Google::Apis::Core::Hashable
4235
+
4236
+ def initialize(**args)
4237
+ update!(**args)
4238
+ end
4239
+
4240
+ # Update properties of this object
4241
+ def update!(**args)
4242
+ end
4243
+ end
4244
+
4245
+ # Metadata related to the progress of the SetInventory operation. Currently
4246
+ # empty because there is no meaningful metadata populated from the SetInventory
4247
+ # method.
4248
+ class GoogleCloudRetailV2betaSetInventoryMetadata
4249
+ include Google::Apis::Core::Hashable
4250
+
4251
+ def initialize(**args)
4252
+ update!(**args)
4253
+ end
4254
+
4255
+ # Update properties of this object
4256
+ def update!(**args)
4257
+ end
4258
+ end
4259
+
4260
+ # Response of the SetInventoryRequest. Currently empty because there is no
4261
+ # meaningful response populated from the SetInventory method.
4262
+ class GoogleCloudRetailV2betaSetInventoryResponse
4263
+ include Google::Apis::Core::Hashable
4264
+
4265
+ def initialize(**args)
4266
+ update!(**args)
4267
+ end
4268
+
4269
+ # Update properties of this object
4270
+ def update!(**args)
4271
+ end
4272
+ end
4273
+
2277
4274
  # A summary of import result. The UserEventImportSummary summarizes the import
2278
4275
  # status for user events.
2279
4276
  class GoogleCloudRetailV2betaUserEventImportSummary
@@ -2443,6 +4440,47 @@ module Google
2443
4440
  @message = args[:message] if args.key?(:message)
2444
4441
  end
2445
4442
  end
4443
+
4444
+ # Represents a whole or partial calendar date, such as a birthday. The time of
4445
+ # day and time zone are either specified elsewhere or are insignificant. The
4446
+ # date is relative to the Gregorian Calendar. This can represent one of the
4447
+ # following: * A full date, with non-zero year, month, and day values * A month
4448
+ # and day value, with a zero year, such as an anniversary * A year on its own,
4449
+ # with zero month and day values * A year and month value, with a zero day, such
4450
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
4451
+ # google.protobuf.Timestamp`.
4452
+ class GoogleTypeDate
4453
+ include Google::Apis::Core::Hashable
4454
+
4455
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
4456
+ # specify a year by itself or a year and month where the day isn't significant.
4457
+ # Corresponds to the JSON property `day`
4458
+ # @return [Fixnum]
4459
+ attr_accessor :day
4460
+
4461
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
4462
+ # and day.
4463
+ # Corresponds to the JSON property `month`
4464
+ # @return [Fixnum]
4465
+ attr_accessor :month
4466
+
4467
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
4468
+ # year.
4469
+ # Corresponds to the JSON property `year`
4470
+ # @return [Fixnum]
4471
+ attr_accessor :year
4472
+
4473
+ def initialize(**args)
4474
+ update!(**args)
4475
+ end
4476
+
4477
+ # Update properties of this object
4478
+ def update!(**args)
4479
+ @day = args[:day] if args.key?(:day)
4480
+ @month = args[:month] if args.key?(:month)
4481
+ @year = args[:year] if args.key?(:year)
4482
+ end
4483
+ end
2446
4484
  end
2447
4485
  end
2448
4486
  end