google-apis-retail_v2 0.9.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3b9ba89704344d0ac7e22976f2415f0f8ebd0cb30425378877b75a8c6b844b55
4
- data.tar.gz: ec0ecc44209e24548a45685d055b2bbecc9a66ae4648a164a0a71da54958d8c7
3
+ metadata.gz: cdb7c0eb8bb1e34af731dc9c2cc6278adf50c4078145d26955c297cb1af319bb
4
+ data.tar.gz: 36511591af34c0e42ae138fa4a15c52db3baaacc218dcd1f7fc120dae39d6428
5
5
  SHA512:
6
- metadata.gz: 79292fb1c6c548ea462cef33db84ff080e607b7ec1be5713a49a3202643d7e2b5634430a39d19c663b026e2e1602ab80673f96ffe2eb00364867df39ec06bbbc
7
- data.tar.gz: 8b778d4e5e329fee2255659771f2819221b778d07ffbe5048801eab593552ce50b64ca739ec6acd120e5026ba110650207b4feb6cf917a15b2111afcb96ed4aa
6
+ metadata.gz: c5520b6c4f4bce9be5f29edf57ad9d5a2231f8902481733028db14b0b7af059c1c71b3fa595d545708c9f8ad8e7741fc32c4de7bf9228da3ac85bfe620162e97
7
+ data.tar.gz: 4f84841618475978f80ae865f9bdd2ec21093dbec09343f84c4e4908fb97cd427e28751c022066e619251296c3b1ce9749f7a2e6600e80dd2ebc69eaadbe3dda
data/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Release history for google-apis-retail_v2
2
2
 
3
+ ### v0.13.0 (2021-07-24)
4
+
5
+ * Regenerated from discovery document revision 20210723
6
+
7
+ ### v0.12.0 (2021-07-14)
8
+
9
+ * Regenerated from discovery document revision 20210702
10
+
11
+ ### v0.11.0 (2021-07-03)
12
+
13
+ * Regenerated from discovery document revision 20210625
14
+ * Regenerated using generator version 0.4.0
15
+
16
+ ### v0.10.0 (2021-06-24)
17
+
18
+ * Regenerated from discovery document revision 20210614
19
+
3
20
  ### v0.9.0 (2021-06-07)
4
21
 
5
22
  * Regenerated from discovery document revision 20210528
@@ -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. This field is a restricted feature.
565
+ # Contact Retail Support (retail-search-support@google.com) if you are
566
+ # 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
@@ -741,7 +1295,14 @@ module Google
741
1295
  # being clicked/purchased given the user's context and history. * `
742
1296
  # strictFiltering`: Boolean. True by default. If set to false, the service will
743
1297
  # return generic (unfiltered) popular products instead of empty if your filter
744
- # blocks all prediction results.
1298
+ # blocks all prediction results. * `priceRerankLevel`: String. Default empty. If
1299
+ # set to be non-empty, then it needs to be one of `'no-price-reranking', 'low-
1300
+ # price-reranking', 'medium-price-reranking', 'high-price-reranking'`. This
1301
+ # gives request-level control and adjusts prediction results based on product
1302
+ # price. * `diversityLevel`: String. Default empty. If set to be non-empty, then
1303
+ # it needs to be one of `'no-diversity', 'low-diversity', 'medium-diversity', '
1304
+ # high-diversity', 'auto-diversity'`. This gives request-level control and
1305
+ # adjusts prediction results based on product category.
745
1306
  # Corresponds to the JSON property `params`
746
1307
  # @return [Hash<String,Object>]
747
1308
  attr_accessor :params
@@ -859,7 +1420,9 @@ module Google
859
1420
 
860
1421
  # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-
861
1422
  # currency-codes.html). If this field is an unrecognizable currency code, an
862
- # 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.
863
1426
  # Corresponds to the JSON property `currencyCode`
864
1427
  # @return [String]
865
1428
  attr_accessor :currency_code
@@ -877,6 +1440,29 @@ module Google
877
1440
  # @return [Float]
878
1441
  attr_accessor :price
879
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
+
880
1466
  def initialize(**args)
881
1467
  update!(**args)
882
1468
  end
@@ -887,6 +1473,35 @@ module Google
887
1473
  @currency_code = args[:currency_code] if args.key?(:currency_code)
888
1474
  @original_price = args[:original_price] if args.key?(:original_price)
889
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)
890
1505
  end
891
1506
  end
892
1507
 
@@ -907,11 +1522,19 @@ module Google
907
1522
  # :[8.1, 6.4]` ``. This field needs to pass all below criteria, otherwise an
908
1523
  # INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100
909
1524
  # for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit
910
- # of 128 characters.
1525
+ # of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.
1526
+ # VARIANT. * Max searchable entries count: 30. * For indexable attribute, the
1527
+ # key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or
1528
+ # KEY_1_LIKE_THIS.
911
1529
  # Corresponds to the JSON property `attributes`
912
1530
  # @return [Hash<String,Google::Apis::RetailV2::GoogleCloudRetailV2CustomAttribute>]
913
1531
  attr_accessor :attributes
914
1532
 
1533
+ # An intended audience of the Product for whom it's sold.
1534
+ # Corresponds to the JSON property `audience`
1535
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Audience]
1536
+ attr_accessor :audience
1537
+
915
1538
  # The online availability of the Product. Default to Availability.IN_STOCK.
916
1539
  # Google Merchant Center Property [availability](https://support.google.com/
917
1540
  # merchants/answer/6324448). Schema.org Property [Offer.availability](https://
@@ -925,11 +1548,20 @@ module Google
925
1548
  # @return [Fixnum]
926
1549
  attr_accessor :available_quantity
927
1550
 
928
- # The timestamp when this Product becomes available for recommendation.
1551
+ # The timestamp when this Product becomes available for SearchService.Search.
929
1552
  # Corresponds to the JSON property `availableTime`
930
1553
  # @return [String]
931
1554
  attr_accessor :available_time
932
1555
 
1556
+ # The brands of the product. A maximum of 30 brands are allowed. Each brand must
1557
+ # be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise,
1558
+ # an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](
1559
+ # https://support.google.com/merchants/answer/6324351). Schema.org property [
1560
+ # Product.brand](https://schema.org/brand).
1561
+ # Corresponds to the JSON property `brands`
1562
+ # @return [Array<String>]
1563
+ attr_accessor :brands
1564
+
933
1565
  # Product categories. This field is repeated for supporting one product
934
1566
  # belonging to several parallel categories. Strongly recommended using the full
935
1567
  # path for better search / recommendation quality. To represent full path of
@@ -950,6 +1582,29 @@ module Google
950
1582
  # @return [Array<String>]
951
1583
  attr_accessor :categories
952
1584
 
1585
+ # The id of the collection members when type is Type.COLLECTION. Should not set
1586
+ # it for other types. A maximum of 1000 values are allowed. Otherwise, an
1587
+ # INVALID_ARGUMENT error is return.
1588
+ # Corresponds to the JSON property `collectionMemberIds`
1589
+ # @return [Array<String>]
1590
+ attr_accessor :collection_member_ids
1591
+
1592
+ # The color information of a Product.
1593
+ # Corresponds to the JSON property `colorInfo`
1594
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2ColorInfo]
1595
+ attr_accessor :color_info
1596
+
1597
+ # The condition of the product. Strongly encouraged to use the standard values: "
1598
+ # new", "refurbished", "used". A maximum of 5 values are allowed per Product.
1599
+ # Each value must be a UTF-8 encoded string with a length limit of 128
1600
+ # characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant
1601
+ # Center property [condition](https://support.google.com/merchants/answer/
1602
+ # 6324469). Schema.org property [Offer.itemCondition](https://schema.org/
1603
+ # itemCondition).
1604
+ # Corresponds to the JSON property `conditions`
1605
+ # @return [Array<String>]
1606
+ attr_accessor :conditions
1607
+
953
1608
  # Product description. This field must be a UTF-8 encoded string with a length
954
1609
  # limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
955
1610
  # Google Merchant Center property [description](https://support.google.com/
@@ -959,6 +1614,34 @@ module Google
959
1614
  # @return [String]
960
1615
  attr_accessor :description
961
1616
 
1617
+ # The timestamp when this product becomes unavailable for SearchService.Search.
1618
+ # If it is set, the Product is not available for SearchService.Search after
1619
+ # expire_time. However, the product can still be retrieved by ProductService.
1620
+ # GetProduct and ProductService.ListProducts. Google Merchant Center property [
1621
+ # expiration_date](https://support.google.com/merchants/answer/6324499).
1622
+ # Corresponds to the JSON property `expireTime`
1623
+ # @return [String]
1624
+ attr_accessor :expire_time
1625
+
1626
+ # Fulfillment information, such as the store IDs for in-store pickup or region
1627
+ # IDs for different shipping methods. All the elements must have distinct
1628
+ # FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.
1629
+ # Corresponds to the JSON property `fulfillmentInfo`
1630
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2FulfillmentInfo>]
1631
+ attr_accessor :fulfillment_info
1632
+
1633
+ # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8
1634
+ # encoded string with a length limit of 128 characters. Otherwise, an
1635
+ # INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](
1636
+ # https://support.google.com/merchants/answer/6324461). Schema.org property [
1637
+ # Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/
1638
+ # gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](
1639
+ # https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If
1640
+ # the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.
1641
+ # Corresponds to the JSON property `gtin`
1642
+ # @return [String]
1643
+ attr_accessor :gtin
1644
+
962
1645
  # Immutable. Product identifier, which is the final component of name. For
963
1646
  # example, this field is "id_1", if name is `projects/*/locations/global/
964
1647
  # catalogs/default_catalog/branches/default_branch/products/id_1`. This field
@@ -978,6 +1661,26 @@ module Google
978
1661
  # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2Image>]
979
1662
  attr_accessor :images
980
1663
 
1664
+ # Language of the title/description and other string attributes. Use language
1665
+ # tags defined by BCP 47. For product prediction, this field is ignored and the
1666
+ # model automatically detects the text language. The Product can include text in
1667
+ # different languages, but duplicating Products to provide text in multiple
1668
+ # languages can result in degraded model performance. For product search this
1669
+ # field is in use. It defaults to "en-US" if unset.
1670
+ # Corresponds to the JSON property `languageCode`
1671
+ # @return [String]
1672
+ attr_accessor :language_code
1673
+
1674
+ # The material of the product. For example, "leather", "wooden". A maximum of 5
1675
+ # values are allowed. Each value must be a UTF-8 encoded string with a length
1676
+ # limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
1677
+ # Google Merchant Center property [material](https://support.google.com/
1678
+ # merchants/answer/6324410). Schema.org property [Product.material](https://
1679
+ # schema.org/material).
1680
+ # Corresponds to the JSON property `materials`
1681
+ # @return [Array<String>]
1682
+ attr_accessor :materials
1683
+
981
1684
  # Immutable. Full resource name of the product, such as `projects/*/locations/
982
1685
  # global/catalogs/default_catalog/branches/default_branch/products/product_id`.
983
1686
  # The branch ID must be "default_branch".
@@ -985,6 +1688,16 @@ module Google
985
1688
  # @return [String]
986
1689
  attr_accessor :name
987
1690
 
1691
+ # The pattern or graphic print of the product. For example, "striped", "polka
1692
+ # dot", "paisley". A maximum of 5 values are allowed per Product. Each value
1693
+ # must be a UTF-8 encoded string with a length limit of 128 characters.
1694
+ # Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center
1695
+ # property [pattern](https://support.google.com/merchants/answer/6324483).
1696
+ # Schema.org property [Product.pattern](https://schema.org/pattern).
1697
+ # Corresponds to the JSON property `patterns`
1698
+ # @return [Array<String>]
1699
+ attr_accessor :patterns
1700
+
988
1701
  # The price information of a Product.
989
1702
  # Corresponds to the JSON property `priceInfo`
990
1703
  # @return [Google::Apis::RetailV2::GoogleCloudRetailV2PriceInfo]
@@ -1003,6 +1716,57 @@ module Google
1003
1716
  # @return [String]
1004
1717
  attr_accessor :primary_product_id
1005
1718
 
1719
+ # The promotions applied to the product. A maximum of 10 values are allowed per
1720
+ # Product.
1721
+ # Corresponds to the JSON property `promotions`
1722
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2Promotion>]
1723
+ attr_accessor :promotions
1724
+
1725
+ # The timestamp when the product is published by the retailer for the first time,
1726
+ # which indicates the freshness of the products. Note that this field is
1727
+ # different from available_time, given it purely describes product freshness
1728
+ # regardless of when it is available on search and recommendation.
1729
+ # Corresponds to the JSON property `publishTime`
1730
+ # @return [String]
1731
+ attr_accessor :publish_time
1732
+
1733
+ # The rating of a Product.
1734
+ # Corresponds to the JSON property `rating`
1735
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Rating]
1736
+ attr_accessor :rating
1737
+
1738
+ # Indicates which fields in the Products are returned in SearchResponse.
1739
+ # Supported fields for all types: * audience * availability * brands *
1740
+ # color_info * conditions * gtin * materials * name * patterns * price_info *
1741
+ # rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.
1742
+ # COLLECTION: * categories * description * images Supported fields only for Type.
1743
+ # VARIANT: * Only the first image in images To mark attributes as retrievable,
1744
+ # include paths of the form "attributes.key" where "key" is the key of a custom
1745
+ # attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION,
1746
+ # the following fields are always returned in SearchResponse by default: * name
1747
+ # For Type.VARIANT, the following fields are always returned in by default: *
1748
+ # name * color_info Maximum number of paths is 20. Otherwise, an
1749
+ # INVALID_ARGUMENT error is returned.
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
+
1006
1770
  # Custom tags associated with the product. At most 250 values are allowed per
1007
1771
  # Product. This value must be a UTF-8 encoded string with a length limit of 1,
1008
1772
  # 000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can
@@ -1022,6 +1786,16 @@ module Google
1022
1786
  # @return [String]
1023
1787
  attr_accessor :title
1024
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
+
1025
1799
  # Immutable. The type of the product. Default to Catalog.product_level_config.
1026
1800
  # ingestion_product_type if unset.
1027
1801
  # Corresponds to the JSON property `type`
@@ -1039,6 +1813,15 @@ module Google
1039
1813
  # @return [String]
1040
1814
  attr_accessor :uri
1041
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
+
1042
1825
  def initialize(**args)
1043
1826
  update!(**args)
1044
1827
  end
@@ -1046,20 +1829,38 @@ module Google
1046
1829
  # Update properties of this object
1047
1830
  def update!(**args)
1048
1831
  @attributes = args[:attributes] if args.key?(:attributes)
1832
+ @audience = args[:audience] if args.key?(:audience)
1049
1833
  @availability = args[:availability] if args.key?(:availability)
1050
1834
  @available_quantity = args[:available_quantity] if args.key?(:available_quantity)
1051
1835
  @available_time = args[:available_time] if args.key?(:available_time)
1836
+ @brands = args[:brands] if args.key?(:brands)
1052
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)
1053
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)
1054
1845
  @id = args[:id] if args.key?(:id)
1055
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)
1056
1849
  @name = args[:name] if args.key?(:name)
1850
+ @patterns = args[:patterns] if args.key?(:patterns)
1057
1851
  @price_info = args[:price_info] if args.key?(:price_info)
1058
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)
1059
1858
  @tags = args[:tags] if args.key?(:tags)
1060
1859
  @title = args[:title] if args.key?(:title)
1860
+ @ttl = args[:ttl] if args.key?(:ttl)
1061
1861
  @type = args[:type] if args.key?(:type)
1062
1862
  @uri = args[:uri] if args.key?(:uri)
1863
+ @variants = args[:variants] if args.key?(:variants)
1063
1864
  end
1064
1865
  end
1065
1866
 
@@ -1097,7 +1898,7 @@ module Google
1097
1898
  include Google::Apis::Core::Hashable
1098
1899
 
1099
1900
  # Required. A list of products to update/create. Each product must have a valid
1100
- # Product.id. Recommended max of 10k items.
1901
+ # Product.id. Recommended max of 100 items.
1101
1902
  # Corresponds to the JSON property `products`
1102
1903
  # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2Product>]
1103
1904
  attr_accessor :products
@@ -1187,6 +1988,29 @@ module Google
1187
1988
  end
1188
1989
  end
1189
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
+
1190
2014
  # A transaction represents the entire purchase transaction.
1191
2015
  class GoogleCloudRetailV2PurchaseTransaction
1192
2016
  include Google::Apis::Core::Hashable
@@ -1268,12 +2092,864 @@ module Google
1268
2092
  # @return [String]
1269
2093
  attr_accessor :filter
1270
2094
 
1271
- # Actually perform the purge. If `force` is set to false, the method will return
1272
- # the expected purge count without deleting any user events.
1273
- # Corresponds to the JSON property `force`
1274
- # @return [Boolean]
1275
- attr_accessor :force
1276
- 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 Product.fulfillment_info, a
2419
+ # fulfillment type and a fulfillment ID must be provided in the format of "
2420
+ # fulfillmentType.filfillmentId". E.g., in "pickupInStore.store123", "
2421
+ # pickupInStore" is fulfillment type and "store123" is the store ID. Supported
2422
+ # keys are: * colorFamilies * price * originalPrice * discount * attributes.key,
2423
+ # where key is any key in the Product.attributes map. * pickupInStore.id, where
2424
+ # id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.PICKUP_IN_STORE. *
2425
+ # shipToStore.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.
2426
+ # Type.SHIP_TO_STORE. * sameDayDelivery.id, where id is any FulfillmentInfo.ids
2427
+ # for type FulfillmentInfo.Type.SAME_DAY_DELIVERY. * nextDayDelivery.id, where
2428
+ # id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.NEXT_DAY_DELIVERY.
2429
+ # * customFulfillment1.id, where id is any FulfillmentInfo.ids for type
2430
+ # FulfillmentInfo.Type.CUSTOM_TYPE_1. * customFulfillment2.id, where id is any
2431
+ # FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_2. *
2432
+ # customFulfillment3.id, where id is any FulfillmentInfo.ids for type
2433
+ # FulfillmentInfo.Type.CUSTOM_TYPE_3. * customFulfillment4.id, where id is any
2434
+ # FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_4. *
2435
+ # customFulfillment5.id, where id is any FulfillmentInfo.ids for type
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 = *# The
2644
+ # Product.brands. * "brands"; *# The Product.categories. * "categories"; *# The
2645
+ # Audience.genders. * | "genders"; *# The Audience.age_groups. * | "ageGroups"; *
2646
+ # # The Product.availability. Value is one of * *# "IN_STOCK", "OUT_OF_STOCK",
2647
+ # PREORDER", "BACKORDER". * | "availability"; *# The ColorInfo.color_families. *
2648
+ # | "colorFamilies"; *# The ColorInfo.colors. * | "colors"; *# The Product.sizes.
2649
+ # * | "sizes"; *# The Product.materials. * | "materials"; *# The Product.
2650
+ # patterns. * | "patterns"; *# The Product.conditions. * | "conditions"; *# The
2651
+ # textual custom attribute in Product object. Key can * *# be any key in the
2652
+ # Product.attributes map * *# if the attribute values are textual. * *# map. * |
2653
+ # "attributes.key"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.
2654
+ # PICKUP_IN_STORE. * | "pickupInStore"; *# The FulfillmentInfo.ids for type *#
2655
+ # FulfillmentInfo.Type.SHIP_TO_STORE. * | "shipToStore"; *# The FulfillmentInfo.
2656
+ # ids for type *# FulfillmentInfo.Type.SAME_DAY_DELIVERY. * | "sameDayDelivery";
2657
+ # *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.NEXT_DAY_DELIVERY.
2658
+ # * | "nextDayDelivery"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.
2659
+ # Type.CUSTOM_TYPE_1. * | "customFulfillment1"; *# The FulfillmentInfo.ids for
2660
+ # type *# FulfillmentInfo.Type.CUSTOM_TYPE_2. * | "customFulfillment2"; *# The
2661
+ # FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_3. * | "
2662
+ # customFulfillment3"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.
2663
+ # Type.CUSTOM_TYPE_4. * | "customFulfillment4"; *# The FulfillmentInfo.ids for
2664
+ # type *# FulfillmentInfo.Type.CUSTOM_TYPE_5. * | "customFulfillment5"; *
2665
+ # numerical_field = *# The PriceInfo.price. * "price"; *# The discount. Computed
2666
+ # by (original_price-price)/price * "discount"; *# The Rating.average_rating. * "
2667
+ # rating"; *# The Rating.rating_count. * "ratingCount"; *# The numerical custom
2668
+ # attribute in Product object. Key can * *# be any key in the Product.attributes
2669
+ # map * *# if the attribute values are numerical. * | "attributes.key";
2670
+ # Corresponds to the JSON property `key`
2671
+ # @return [String]
2672
+ attr_accessor :key
2673
+
2674
+ # The order in which Facet.values are returned. Allowed values are: * "count
2675
+ # desc", which means order by Facet.FacetValue.count descending. * "value desc",
2676
+ # which means order by Facet.FacetValue.value descending. Only applies to
2677
+ # textual facets. If not set, textual values are sorted in [natural order](https:
2678
+ # //en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in
2679
+ # the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.ids are
2680
+ # sorted in the order given by FacetSpec.FacetKey.restricted_values.
2681
+ # Corresponds to the JSON property `orderBy`
2682
+ # @return [String]
2683
+ attr_accessor :order_by
2684
+
2685
+ # Only get facet values that start with the given string prefix. For example,
2686
+ # suppose "categories" has three values "Women > Shoe", "Women > Dress" and "Men
2687
+ # > Shoe". If set "prefixes" to "Women", the "categories" facet will give only "
2688
+ # Women > Shoe" and "Women > Dress". Only supported on textual fields. Maximum
2689
+ # is 10.
2690
+ # Corresponds to the JSON property `prefixes`
2691
+ # @return [Array<String>]
2692
+ attr_accessor :prefixes
2693
+
2694
+ # The query that is used to compute facet for the given facet key. When provided,
2695
+ # it will override the default behavior of facet computation. The query syntax
2696
+ # is the same as a filter expression. See SearchRequest.filter for detail syntax
2697
+ # and limitations. Notice that there is no limitation on FacetKey.key when query
2698
+ # is specified. In the response, FacetValue.value will be always "1" and
2699
+ # FacetValue.count will be the number of results that matches the query. For
2700
+ # example, you can set a customized facet for "shipToStore", where FacetKey.key
2701
+ # is "customizedShipToStore", and FacetKey.query is "availability: ANY(\"
2702
+ # IN_STOCK\") AND shipToStore: ANY(\"123\")". Then the facet will count the
2703
+ # products that are both in stock and ship to store "123".
2704
+ # Corresponds to the JSON property `query`
2705
+ # @return [String]
2706
+ attr_accessor :query
2707
+
2708
+ # Only get facet for the given restricted values. For example, when using "
2709
+ # pickupInStore" as key and set restricted values to ["store123", "store456"],
2710
+ # only facets for "store123" and "store456" are returned. Only supported on
2711
+ # textual fields and fulfillments. Maximum is 20. Must be set for the
2712
+ # fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery *
2713
+ # nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3
2714
+ # * customFulfillment4 * customFulfillment5
2715
+ # Corresponds to the JSON property `restrictedValues`
2716
+ # @return [Array<String>]
2717
+ attr_accessor :restricted_values
2718
+
2719
+ def initialize(**args)
2720
+ update!(**args)
2721
+ end
2722
+
2723
+ # Update properties of this object
2724
+ def update!(**args)
2725
+ @contains = args[:contains] if args.key?(:contains)
2726
+ @intervals = args[:intervals] if args.key?(:intervals)
2727
+ @key = args[:key] if args.key?(:key)
2728
+ @order_by = args[:order_by] if args.key?(:order_by)
2729
+ @prefixes = args[:prefixes] if args.key?(:prefixes)
2730
+ @query = args[:query] if args.key?(:query)
2731
+ @restricted_values = args[:restricted_values] if args.key?(:restricted_values)
2732
+ end
2733
+ end
2734
+
2735
+ # Specification to determine under which conditions query expansion should occur.
2736
+ class GoogleCloudRetailV2SearchRequestQueryExpansionSpec
2737
+ include Google::Apis::Core::Hashable
2738
+
2739
+ # The condition under which query expansion should occur. Default to Condition.
2740
+ # DISABLED.
2741
+ # Corresponds to the JSON property `condition`
2742
+ # @return [String]
2743
+ attr_accessor :condition
2744
+
2745
+ def initialize(**args)
2746
+ update!(**args)
2747
+ end
2748
+
2749
+ # Update properties of this object
2750
+ def update!(**args)
2751
+ @condition = args[:condition] if args.key?(:condition)
2752
+ end
2753
+ end
2754
+
2755
+ # Response message for SearchService.Search method.
2756
+ class GoogleCloudRetailV2SearchResponse
2757
+ include Google::Apis::Core::Hashable
2758
+
2759
+ # A unique search token. This should be included in the UserEvent logs resulting
2760
+ # from this search, which enables accurate attribution of search model
2761
+ # performance.
2762
+ # Corresponds to the JSON property `attributionToken`
2763
+ # @return [String]
2764
+ attr_accessor :attribution_token
2765
+
2766
+ # If spell correction applies, the corrected query. Otherwise, empty.
2767
+ # Corresponds to the JSON property `correctedQuery`
2768
+ # @return [String]
2769
+ attr_accessor :corrected_query
2770
+
2771
+ # Results of facets requested by user.
2772
+ # Corresponds to the JSON property `facets`
2773
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2SearchResponseFacet>]
2774
+ attr_accessor :facets
2775
+
2776
+ # A token that can be sent as SearchRequest.page_token to retrieve the next page.
2777
+ # If this field is omitted, there are no subsequent pages.
2778
+ # Corresponds to the JSON property `nextPageToken`
2779
+ # @return [String]
2780
+ attr_accessor :next_page_token
2781
+
2782
+ # Information describing query expansion including whether expansion has
2783
+ # occurred.
2784
+ # Corresponds to the JSON property `queryExpansionInfo`
2785
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2SearchResponseQueryExpansionInfo]
2786
+ attr_accessor :query_expansion_info
2787
+
2788
+ # The URI of a customer-defined redirect page. If redirect action is triggered,
2789
+ # no search will be performed, and only redirect_uri and attribution_token will
2790
+ # be set in the response.
2791
+ # Corresponds to the JSON property `redirectUri`
2792
+ # @return [String]
2793
+ attr_accessor :redirect_uri
2794
+
2795
+ # A list of matched items. The order represents the ranking.
2796
+ # Corresponds to the JSON property `results`
2797
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2SearchResponseSearchResult>]
2798
+ attr_accessor :results
2799
+
2800
+ # The estimated total count of matched items irrespective of pagination. The
2801
+ # count of results returned by pagination may be less than the total_size that
2802
+ # matches.
2803
+ # Corresponds to the JSON property `totalSize`
2804
+ # @return [Fixnum]
2805
+ attr_accessor :total_size
2806
+
2807
+ def initialize(**args)
2808
+ update!(**args)
2809
+ end
2810
+
2811
+ # Update properties of this object
2812
+ def update!(**args)
2813
+ @attribution_token = args[:attribution_token] if args.key?(:attribution_token)
2814
+ @corrected_query = args[:corrected_query] if args.key?(:corrected_query)
2815
+ @facets = args[:facets] if args.key?(:facets)
2816
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2817
+ @query_expansion_info = args[:query_expansion_info] if args.key?(:query_expansion_info)
2818
+ @redirect_uri = args[:redirect_uri] if args.key?(:redirect_uri)
2819
+ @results = args[:results] if args.key?(:results)
2820
+ @total_size = args[:total_size] if args.key?(:total_size)
2821
+ end
2822
+ end
2823
+
2824
+ # A facet result.
2825
+ class GoogleCloudRetailV2SearchResponseFacet
2826
+ include Google::Apis::Core::Hashable
2827
+
2828
+ # Whether the facet is dynamically generated.
2829
+ # Corresponds to the JSON property `dynamicFacet`
2830
+ # @return [Boolean]
2831
+ attr_accessor :dynamic_facet
2832
+ alias_method :dynamic_facet?, :dynamic_facet
2833
+
2834
+ # The key for this facet. E.g., "colorFamilies" or "price" or "attributes.attr1".
2835
+ # Corresponds to the JSON property `key`
2836
+ # @return [String]
2837
+ attr_accessor :key
2838
+
2839
+ # The facet values for this field.
2840
+ # Corresponds to the JSON property `values`
2841
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2SearchResponseFacetFacetValue>]
2842
+ attr_accessor :values
2843
+
2844
+ def initialize(**args)
2845
+ update!(**args)
2846
+ end
2847
+
2848
+ # Update properties of this object
2849
+ def update!(**args)
2850
+ @dynamic_facet = args[:dynamic_facet] if args.key?(:dynamic_facet)
2851
+ @key = args[:key] if args.key?(:key)
2852
+ @values = args[:values] if args.key?(:values)
2853
+ end
2854
+ end
2855
+
2856
+ # A facet value which contains value names and their count.
2857
+ class GoogleCloudRetailV2SearchResponseFacetFacetValue
2858
+ include Google::Apis::Core::Hashable
2859
+
2860
+ # Number of items that have this facet value.
2861
+ # Corresponds to the JSON property `count`
2862
+ # @return [Fixnum]
2863
+ attr_accessor :count
2864
+
2865
+ # A floating point interval.
2866
+ # Corresponds to the JSON property `interval`
2867
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Interval]
2868
+ attr_accessor :interval
2869
+
2870
+ # Text value of a facet, such as "Black" for facet "colorFamilies".
2871
+ # Corresponds to the JSON property `value`
2872
+ # @return [String]
2873
+ attr_accessor :value
2874
+
2875
+ def initialize(**args)
2876
+ update!(**args)
2877
+ end
2878
+
2879
+ # Update properties of this object
2880
+ def update!(**args)
2881
+ @count = args[:count] if args.key?(:count)
2882
+ @interval = args[:interval] if args.key?(:interval)
2883
+ @value = args[:value] if args.key?(:value)
2884
+ end
2885
+ end
2886
+
2887
+ # Information describing query expansion including whether expansion has
2888
+ # occurred.
2889
+ class GoogleCloudRetailV2SearchResponseQueryExpansionInfo
2890
+ include Google::Apis::Core::Hashable
2891
+
2892
+ # Bool describing whether query expansion has occurred.
2893
+ # Corresponds to the JSON property `expandedQuery`
2894
+ # @return [Boolean]
2895
+ attr_accessor :expanded_query
2896
+ alias_method :expanded_query?, :expanded_query
2897
+
2898
+ def initialize(**args)
2899
+ update!(**args)
2900
+ end
2901
+
2902
+ # Update properties of this object
2903
+ def update!(**args)
2904
+ @expanded_query = args[:expanded_query] if args.key?(:expanded_query)
2905
+ end
2906
+ end
2907
+
2908
+ # Represents the search results.
2909
+ class GoogleCloudRetailV2SearchResponseSearchResult
2910
+ include Google::Apis::Core::Hashable
2911
+
2912
+ # Product.id of the searched Product.
2913
+ # Corresponds to the JSON property `id`
2914
+ # @return [String]
2915
+ attr_accessor :id
2916
+
2917
+ # The count of matched variant Products.
2918
+ # Corresponds to the JSON property `matchingVariantCount`
2919
+ # @return [Fixnum]
2920
+ attr_accessor :matching_variant_count
2921
+
2922
+ # If a variant Product matches the search query, this map indicates which
2923
+ # Product fields are matched. The key is the Product.name, the value is a field
2924
+ # mask of the matched Product fields. If matched attributes cannot be determined,
2925
+ # this map will be empty. For example, a key "sku1" with field mask "products.
2926
+ # color_info" indicates there is a match between "sku1" ColorInfo and the query.
2927
+ # Corresponds to the JSON property `matchingVariantFields`
2928
+ # @return [Hash<String,String>]
2929
+ attr_accessor :matching_variant_fields
2930
+
2931
+ # Product captures all metadata information of items to be recommended or
2932
+ # searched.
2933
+ # Corresponds to the JSON property `product`
2934
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Product]
2935
+ attr_accessor :product
2936
+
2937
+ # The rollup matching variant Product attributes. The key is one of the
2938
+ # SearchRequest.variant_rollup_keys. The values are the merged and de-duplicated
2939
+ # Product attributes. Notice that the rollup values are respect filter. For
2940
+ # example, when filtering by "colorFamilies:ANY(\"red\")" and rollup "
2941
+ # colorFamilies", only "red" is returned. For textual and numerical attributes,
2942
+ # the rollup values is a list of string or double values with type google.
2943
+ # protobuf.ListValue. For example, if there are two variants with colors "red"
2944
+ # and "blue", the rollup values are ` key: "colorFamilies" value ` list_value `
2945
+ # values ` string_value: "red" ` values ` string_value: "blue" ` ` ` ` For
2946
+ # Product.fulfillment_info, the rollup values is a double value with type google.
2947
+ # protobuf.Value. For example, `key: "pickupInStore.store1" value ` number_value:
2948
+ # 10 `` means a there are 10 variants in this product are available in the
2949
+ # store "store1".
2950
+ # Corresponds to the JSON property `variantRollupValues`
2951
+ # @return [Hash<String,Object>]
2952
+ attr_accessor :variant_rollup_values
1277
2953
 
1278
2954
  def initialize(**args)
1279
2955
  update!(**args)
@@ -1281,21 +2957,31 @@ module Google
1281
2957
 
1282
2958
  # Update properties of this object
1283
2959
  def update!(**args)
1284
- @filter = args[:filter] if args.key?(:filter)
1285
- @force = args[:force] if args.key?(:force)
2960
+ @id = args[:id] if args.key?(:id)
2961
+ @matching_variant_count = args[:matching_variant_count] if args.key?(:matching_variant_count)
2962
+ @matching_variant_fields = args[:matching_variant_fields] if args.key?(:matching_variant_fields)
2963
+ @product = args[:product] if args.key?(:product)
2964
+ @variant_rollup_values = args[:variant_rollup_values] if args.key?(:variant_rollup_values)
1286
2965
  end
1287
2966
  end
1288
2967
 
1289
- # Response of the PurgeUserEventsRequest. If the long running operation is
1290
- # successfully done, then this message is returned by the google.longrunning.
1291
- # Operations.response field.
1292
- class GoogleCloudRetailV2PurgeUserEventsResponse
2968
+ # Request message to set a specified branch as new default_branch.
2969
+ class GoogleCloudRetailV2SetDefaultBranchRequest
1293
2970
  include Google::Apis::Core::Hashable
1294
2971
 
1295
- # The total count of events purged as a result of the operation.
1296
- # Corresponds to the JSON property `purgedEventsCount`
1297
- # @return [Fixnum]
1298
- attr_accessor :purged_events_count
2972
+ # The final component of the resource name of a branch. This field must be one
2973
+ # of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT error is returned.
2974
+ # Corresponds to the JSON property `branchId`
2975
+ # @return [String]
2976
+ attr_accessor :branch_id
2977
+
2978
+ # Some note on this request, this can be retrieved by CatalogService.
2979
+ # GetDefaultBranch before next valid default branch set occurs. This field must
2980
+ # be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise,
2981
+ # an INVALID_ARGUMENT error is returned.
2982
+ # Corresponds to the JSON property `note`
2983
+ # @return [String]
2984
+ attr_accessor :note
1299
2985
 
1300
2986
  def initialize(**args)
1301
2987
  update!(**args)
@@ -1303,12 +2989,15 @@ module Google
1303
2989
 
1304
2990
  # Update properties of this object
1305
2991
  def update!(**args)
1306
- @purged_events_count = args[:purged_events_count] if args.key?(:purged_events_count)
2992
+ @branch_id = args[:branch_id] if args.key?(:branch_id)
2993
+ @note = args[:note] if args.key?(:note)
1307
2994
  end
1308
2995
  end
1309
2996
 
1310
- # Metadata for RejoinUserEvents method.
1311
- class GoogleCloudRetailV2RejoinUserEventsMetadata
2997
+ # Metadata related to the progress of the SetInventory operation. Currently
2998
+ # empty because there is no meaningful metadata populated from the SetInventory
2999
+ # method.
3000
+ class GoogleCloudRetailV2SetInventoryMetadata
1312
3001
  include Google::Apis::Core::Hashable
1313
3002
 
1314
3003
  def initialize(**args)
@@ -1320,17 +3009,39 @@ module Google
1320
3009
  end
1321
3010
  end
1322
3011
 
1323
- # Request message for RejoinUserEvents method.
1324
- class GoogleCloudRetailV2RejoinUserEventsRequest
3012
+ # Request message for SetInventory method.
3013
+ class GoogleCloudRetailV2SetInventoryRequest
1325
3014
  include Google::Apis::Core::Hashable
1326
3015
 
1327
- # The type of the user event rejoin to define the scope and range of the user
1328
- # events to be rejoined with the latest product catalog. Defaults to
1329
- # USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an
1330
- # invalid integer value.
1331
- # Corresponds to the JSON property `userEventRejoinScope`
3016
+ # If set to true, and the Product with name Product.name is not found, the
3017
+ # inventory update will still be processed and retained for at most 1 day until
3018
+ # the Product is created. If set to false, an INVALID_ARGUMENT error is returned
3019
+ # if the Product is not found.
3020
+ # Corresponds to the JSON property `allowMissing`
3021
+ # @return [Boolean]
3022
+ attr_accessor :allow_missing
3023
+ alias_method :allow_missing?, :allow_missing
3024
+
3025
+ # Product captures all metadata information of items to be recommended or
3026
+ # searched.
3027
+ # Corresponds to the JSON property `inventory`
3028
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Product]
3029
+ attr_accessor :inventory
3030
+
3031
+ # Indicates which inventory fields in the provided Product to update. If not set
3032
+ # or set with empty paths, all inventory fields will be updated. If an
3033
+ # unsupported or unknown field is provided, an INVALID_ARGUMENT error is
3034
+ # returned and the entire update will be ignored.
3035
+ # Corresponds to the JSON property `setMask`
1332
3036
  # @return [String]
1333
- attr_accessor :user_event_rejoin_scope
3037
+ attr_accessor :set_mask
3038
+
3039
+ # The time when the request is issued, used to prevent out-of-order updates on
3040
+ # inventory fields with the last update time recorded. If not provided, the
3041
+ # internal system time will be used.
3042
+ # Corresponds to the JSON property `setTime`
3043
+ # @return [String]
3044
+ attr_accessor :set_time
1334
3045
 
1335
3046
  def initialize(**args)
1336
3047
  update!(**args)
@@ -1338,26 +3049,24 @@ module Google
1338
3049
 
1339
3050
  # Update properties of this object
1340
3051
  def update!(**args)
1341
- @user_event_rejoin_scope = args[:user_event_rejoin_scope] if args.key?(:user_event_rejoin_scope)
3052
+ @allow_missing = args[:allow_missing] if args.key?(:allow_missing)
3053
+ @inventory = args[:inventory] if args.key?(:inventory)
3054
+ @set_mask = args[:set_mask] if args.key?(:set_mask)
3055
+ @set_time = args[:set_time] if args.key?(:set_time)
1342
3056
  end
1343
3057
  end
1344
3058
 
1345
- # Response message for RejoinUserEvents method.
1346
- class GoogleCloudRetailV2RejoinUserEventsResponse
3059
+ # Response of the SetInventoryRequest. Currently empty because there is no
3060
+ # meaningful response populated from the SetInventory method.
3061
+ class GoogleCloudRetailV2SetInventoryResponse
1347
3062
  include Google::Apis::Core::Hashable
1348
3063
 
1349
- # Number of user events that were joined with latest product catalog.
1350
- # Corresponds to the JSON property `rejoinedUserEventsCount`
1351
- # @return [Fixnum]
1352
- attr_accessor :rejoined_user_events_count
1353
-
1354
3064
  def initialize(**args)
1355
3065
  update!(**args)
1356
3066
  end
1357
3067
 
1358
3068
  # Update properties of this object
1359
3069
  def update!(**args)
1360
- @rejoined_user_events_count = args[:rejoined_user_events_count] if args.key?(:rejoined_user_events_count)
1361
3070
  end
1362
3071
  end
1363
3072
 
@@ -1379,13 +3088,14 @@ module Google
1379
3088
  # Highly recommended for user events that are the result of PredictionService.
1380
3089
  # Predict. This field enables accurate attribution of recommendation model
1381
3090
  # performance. The value must be a valid PredictResponse.attribution_token for
1382
- # user events that are the result of PredictionService.Predict. This token
1383
- # enables us to accurately attribute page view or purchase back to the event and
1384
- # the particular predict response containing this clicked/purchased product. If
1385
- # user clicks on product K in the recommendation results, pass PredictResponse.
1386
- # attribution_token as a URL parameter to product K's page. When recording
1387
- # events on product K's page, log the PredictResponse.attribution_token to this
1388
- # field.
3091
+ # user events that are the result of PredictionService.Predict. The value must
3092
+ # be a valid SearchResponse.attribution_token for user events that are the
3093
+ # result of SearchService.Search. This token enables us to accurately attribute
3094
+ # page view or purchase back to the event and the particular predict response
3095
+ # containing this clicked/purchased product. If user clicks on product K in the
3096
+ # recommendation results, pass PredictResponse.attribution_token as a URL
3097
+ # parameter to product K's page. When recording events on product K's page, log
3098
+ # the PredictResponse.attribution_token to this field.
1389
3099
  # Corresponds to the JSON property `attributionToken`
1390
3100
  # @return [String]
1391
3101
  attr_accessor :attribution_token
@@ -1398,6 +3108,12 @@ module Google
1398
3108
  # @return [String]
1399
3109
  attr_accessor :cart_id
1400
3110
 
3111
+ # Detailed completion information including completion attribution token and
3112
+ # clicked completion info.
3113
+ # Corresponds to the JSON property `completionDetail`
3114
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2CompletionDetail]
3115
+ attr_accessor :completion_detail
3116
+
1401
3117
  # Only required for UserEventService.ImportUserEvents method. Timestamp of when
1402
3118
  # the user event happened.
1403
3119
  # Corresponds to the JSON property `eventTime`
@@ -1424,6 +3140,34 @@ module Google
1424
3140
  # @return [Array<String>]
1425
3141
  attr_accessor :experiment_ids
1426
3142
 
3143
+ # The filter syntax consists of an expression language for constructing a
3144
+ # predicate from one or more fields of the products being filtered. See
3145
+ # SearchRequest.filter for definition and syntax. The value must be a UTF-8
3146
+ # encoded string with a length limit of 1,000 characters. Otherwise, an
3147
+ # INVALID_ARGUMENT error is returned.
3148
+ # Corresponds to the JSON property `filter`
3149
+ # @return [String]
3150
+ attr_accessor :filter
3151
+
3152
+ # An integer that specifies the current offset for pagination (the 0-indexed
3153
+ # starting location, amongst the products deemed by the API as relevant). See
3154
+ # SearchRequest.offset for definition. If this field is negative, an
3155
+ # INVALID_ARGUMENT is returned. This can only be set for `search` events. Other
3156
+ # event types should not set this field. Otherwise, an INVALID_ARGUMENT error is
3157
+ # returned.
3158
+ # Corresponds to the JSON property `offset`
3159
+ # @return [Fixnum]
3160
+ attr_accessor :offset
3161
+
3162
+ # The order in which products are returned. See SearchRequest.order_by for
3163
+ # definition and syntax. The value must be a UTF-8 encoded string with a length
3164
+ # limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
3165
+ # This can only be set for `search` events. Other event types should not set
3166
+ # this field. Otherwise, an INVALID_ARGUMENT error is returned.
3167
+ # Corresponds to the JSON property `orderBy`
3168
+ # @return [String]
3169
+ attr_accessor :order_by
3170
+
1427
3171
  # The categories associated with a category page. To represent full path of
1428
3172
  # category, use '>' sign to separate different hierarchies. If '>' is part of
1429
3173
  # the category name, please replace it with other character(s). Category pages
@@ -1472,15 +3216,24 @@ module Google
1472
3216
  # @return [String]
1473
3217
  attr_accessor :referrer_uri
1474
3218
 
1475
- # The user's search query. The value must be a UTF-8 encoded string with a
1476
- # length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is
1477
- # returned. At least one of search_query or page_categories is required for `
1478
- # search` events. Other event types should not set this field. Otherwise, an
1479
- # INVALID_ARGUMENT error is returned.
3219
+ # The user's search query. See SearchRequest.query for definition. The value
3220
+ # must be a UTF-8 encoded string with a length limit of 5,000 characters.
3221
+ # Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query
3222
+ # or page_categories is required for `search` events. Other event types should
3223
+ # not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
1480
3224
  # Corresponds to the JSON property `searchQuery`
1481
3225
  # @return [String]
1482
3226
  attr_accessor :search_query
1483
3227
 
3228
+ # A unique identifier for tracking a visitor session with a length limit of 128
3229
+ # bytes. A session is an aggregation of an end user behavior in a time span. A
3230
+ # general guideline to populate the sesion_id: 1. If user has no activity for 30
3231
+ # min, a new session_id should be assigned. 2. The session_id should be unique
3232
+ # across users, suggest use uuid or add visitor_id as prefix.
3233
+ # Corresponds to the JSON property `sessionId`
3234
+ # @return [String]
3235
+ attr_accessor :session_id
3236
+
1484
3237
  # Complete URL (window.location.href) of the user's current page. When using the
1485
3238
  # client side event reporting with JavaScript pixel and Google Tag Manager, this
1486
3239
  # value is filled in automatically. Maximum length 5,000 characters.
@@ -1514,15 +3267,20 @@ module Google
1514
3267
  @attributes = args[:attributes] if args.key?(:attributes)
1515
3268
  @attribution_token = args[:attribution_token] if args.key?(:attribution_token)
1516
3269
  @cart_id = args[:cart_id] if args.key?(:cart_id)
3270
+ @completion_detail = args[:completion_detail] if args.key?(:completion_detail)
1517
3271
  @event_time = args[:event_time] if args.key?(:event_time)
1518
3272
  @event_type = args[:event_type] if args.key?(:event_type)
1519
3273
  @experiment_ids = args[:experiment_ids] if args.key?(:experiment_ids)
3274
+ @filter = args[:filter] if args.key?(:filter)
3275
+ @offset = args[:offset] if args.key?(:offset)
3276
+ @order_by = args[:order_by] if args.key?(:order_by)
1520
3277
  @page_categories = args[:page_categories] if args.key?(:page_categories)
1521
3278
  @page_view_id = args[:page_view_id] if args.key?(:page_view_id)
1522
3279
  @product_details = args[:product_details] if args.key?(:product_details)
1523
3280
  @purchase_transaction = args[:purchase_transaction] if args.key?(:purchase_transaction)
1524
3281
  @referrer_uri = args[:referrer_uri] if args.key?(:referrer_uri)
1525
3282
  @search_query = args[:search_query] if args.key?(:search_query)
3283
+ @session_id = args[:session_id] if args.key?(:session_id)
1526
3284
  @uri = args[:uri] if args.key?(:uri)
1527
3285
  @user_info = args[:user_info] if args.key?(:user_info)
1528
3286
  @visitor_id = args[:visitor_id] if args.key?(:visitor_id)
@@ -1621,9 +3379,10 @@ module Google
1621
3379
  attr_accessor :direct_user_request
1622
3380
  alias_method :direct_user_request?, :direct_user_request
1623
3381
 
1624
- # The end user's IP address. This field is used to extract location information
1625
- # for personalization. This field must be either an IPv4 address (e.g. "104.133.
1626
- # 9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334").
3382
+ # The end user's IP address. Required for getting SearchResponse.
3383
+ # sponsored_results. This field is used to extract location information for
3384
+ # personalization. This field must be either an IPv4 address (e.g. "104.133.9.80"
3385
+ # ) or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334").
1627
3386
  # Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when
1628
3387
  # using the JavaScript tag in UserEventService.CollectUserEvent or if
1629
3388
  # direct_user_request is set.
@@ -1631,11 +3390,12 @@ module Google
1631
3390
  # @return [String]
1632
3391
  attr_accessor :ip_address
1633
3392
 
1634
- # User agent as included in the HTTP header. The field must be a UTF-8 encoded
1635
- # string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT
1636
- # error is returned. This should not be set when using the client side event
1637
- # reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or
1638
- # if direct_user_request is set.
3393
+ # User agent as included in the HTTP header. Required for getting SearchResponse.
3394
+ # sponsored_results. The field must be a UTF-8 encoded string with a length
3395
+ # limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
3396
+ # This should not be set when using the client side event reporting with GTM or
3397
+ # JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request
3398
+ # is set.
1639
3399
  # Corresponds to the JSON property `userAgent`
1640
3400
  # @return [String]
1641
3401
  attr_accessor :user_agent
@@ -1660,6 +3420,35 @@ module Google
1660
3420
  end
1661
3421
  end
1662
3422
 
3423
+ # Metadata related to the progress of the AddFulfillmentPlaces operation.
3424
+ # Currently empty because there is no meaningful metadata populated from the
3425
+ # AddFulfillmentPlaces method.
3426
+ class GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata
3427
+ include Google::Apis::Core::Hashable
3428
+
3429
+ def initialize(**args)
3430
+ update!(**args)
3431
+ end
3432
+
3433
+ # Update properties of this object
3434
+ def update!(**args)
3435
+ end
3436
+ end
3437
+
3438
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
3439
+ # is no meaningful response populated from the AddFulfillmentPlaces method.
3440
+ class GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse
3441
+ include Google::Apis::Core::Hashable
3442
+
3443
+ def initialize(**args)
3444
+ update!(**args)
3445
+ end
3446
+
3447
+ # Update properties of this object
3448
+ def update!(**args)
3449
+ end
3450
+ end
3451
+
1663
3452
  # Configuration of destination for Export related errors.
1664
3453
  class GoogleCloudRetailV2alphaExportErrorsConfig
1665
3454
  include Google::Apis::Core::Hashable
@@ -1762,6 +3551,27 @@ module Google
1762
3551
  end
1763
3552
  end
1764
3553
 
3554
+ # Response of the ImportCompletionDataRequest. If the long running operation is
3555
+ # done, this message is returned by the google.longrunning.Operations.response
3556
+ # field if the operation is successful.
3557
+ class GoogleCloudRetailV2alphaImportCompletionDataResponse
3558
+ include Google::Apis::Core::Hashable
3559
+
3560
+ # A sample of errors encountered while processing the request.
3561
+ # Corresponds to the JSON property `errorSamples`
3562
+ # @return [Array<Google::Apis::RetailV2::GoogleRpcStatus>]
3563
+ attr_accessor :error_samples
3564
+
3565
+ def initialize(**args)
3566
+ update!(**args)
3567
+ end
3568
+
3569
+ # Update properties of this object
3570
+ def update!(**args)
3571
+ @error_samples = args[:error_samples] if args.key?(:error_samples)
3572
+ end
3573
+ end
3574
+
1765
3575
  # Configuration of destination for Import related errors.
1766
3576
  class GoogleCloudRetailV2alphaImportErrorsConfig
1767
3577
  include Google::Apis::Core::Hashable
@@ -1798,6 +3608,20 @@ module Google
1798
3608
  # @return [Fixnum]
1799
3609
  attr_accessor :failure_count
1800
3610
 
3611
+ # Pub/Sub topic for receiving notification. If this field is set, when the
3612
+ # import is finished, a notification will be sent to specified Pub/Sub topic.
3613
+ # The message data will be JSON string of a Operation. Format of the Pub/Sub
3614
+ # topic is `projects/`project`/topics/`topic``.
3615
+ # Corresponds to the JSON property `notificationPubsubTopic`
3616
+ # @return [String]
3617
+ attr_accessor :notification_pubsub_topic
3618
+
3619
+ # Id of the request / operation. This is parroting back the requestId that was
3620
+ # passed in the request.
3621
+ # Corresponds to the JSON property `requestId`
3622
+ # @return [String]
3623
+ attr_accessor :request_id
3624
+
1801
3625
  # Count of entries that were processed successfully.
1802
3626
  # Corresponds to the JSON property `successCount`
1803
3627
  # @return [Fixnum]
@@ -1817,6 +3641,8 @@ module Google
1817
3641
  def update!(**args)
1818
3642
  @create_time = args[:create_time] if args.key?(:create_time)
1819
3643
  @failure_count = args[:failure_count] if args.key?(:failure_count)
3644
+ @notification_pubsub_topic = args[:notification_pubsub_topic] if args.key?(:notification_pubsub_topic)
3645
+ @request_id = args[:request_id] if args.key?(:request_id)
1820
3646
  @success_count = args[:success_count] if args.key?(:success_count)
1821
3647
  @update_time = args[:update_time] if args.key?(:update_time)
1822
3648
  end
@@ -1950,6 +3776,64 @@ module Google
1950
3776
  end
1951
3777
  end
1952
3778
 
3779
+ # Metadata related to the progress of the RemoveFulfillmentPlaces operation.
3780
+ # Currently empty because there is no meaningful metadata populated from the
3781
+ # RemoveFulfillmentPlaces method.
3782
+ class GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata
3783
+ include Google::Apis::Core::Hashable
3784
+
3785
+ def initialize(**args)
3786
+ update!(**args)
3787
+ end
3788
+
3789
+ # Update properties of this object
3790
+ def update!(**args)
3791
+ end
3792
+ end
3793
+
3794
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
3795
+ # is no meaningful response populated from the RemoveFulfillmentPlaces method.
3796
+ class GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse
3797
+ include Google::Apis::Core::Hashable
3798
+
3799
+ def initialize(**args)
3800
+ update!(**args)
3801
+ end
3802
+
3803
+ # Update properties of this object
3804
+ def update!(**args)
3805
+ end
3806
+ end
3807
+
3808
+ # Metadata related to the progress of the SetInventory operation. Currently
3809
+ # empty because there is no meaningful metadata populated from the SetInventory
3810
+ # method.
3811
+ class GoogleCloudRetailV2alphaSetInventoryMetadata
3812
+ include Google::Apis::Core::Hashable
3813
+
3814
+ def initialize(**args)
3815
+ update!(**args)
3816
+ end
3817
+
3818
+ # Update properties of this object
3819
+ def update!(**args)
3820
+ end
3821
+ end
3822
+
3823
+ # Response of the SetInventoryRequest. Currently empty because there is no
3824
+ # meaningful response populated from the SetInventory method.
3825
+ class GoogleCloudRetailV2alphaSetInventoryResponse
3826
+ include Google::Apis::Core::Hashable
3827
+
3828
+ def initialize(**args)
3829
+ update!(**args)
3830
+ end
3831
+
3832
+ # Update properties of this object
3833
+ def update!(**args)
3834
+ end
3835
+ end
3836
+
1953
3837
  # A summary of import result. The UserEventImportSummary summarizes the import
1954
3838
  # status for user events.
1955
3839
  class GoogleCloudRetailV2alphaUserEventImportSummary
@@ -1977,6 +3861,35 @@ module Google
1977
3861
  end
1978
3862
  end
1979
3863
 
3864
+ # Metadata related to the progress of the AddFulfillmentPlaces operation.
3865
+ # Currently empty because there is no meaningful metadata populated from the
3866
+ # AddFulfillmentPlaces method.
3867
+ class GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata
3868
+ include Google::Apis::Core::Hashable
3869
+
3870
+ def initialize(**args)
3871
+ update!(**args)
3872
+ end
3873
+
3874
+ # Update properties of this object
3875
+ def update!(**args)
3876
+ end
3877
+ end
3878
+
3879
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
3880
+ # is no meaningful response populated from the AddFulfillmentPlaces method.
3881
+ class GoogleCloudRetailV2betaAddFulfillmentPlacesResponse
3882
+ include Google::Apis::Core::Hashable
3883
+
3884
+ def initialize(**args)
3885
+ update!(**args)
3886
+ end
3887
+
3888
+ # Update properties of this object
3889
+ def update!(**args)
3890
+ end
3891
+ end
3892
+
1980
3893
  # Configuration of destination for Export related errors.
1981
3894
  class GoogleCloudRetailV2betaExportErrorsConfig
1982
3895
  include Google::Apis::Core::Hashable
@@ -2079,6 +3992,27 @@ module Google
2079
3992
  end
2080
3993
  end
2081
3994
 
3995
+ # Response of the ImportCompletionDataRequest. If the long running operation is
3996
+ # done, this message is returned by the google.longrunning.Operations.response
3997
+ # field if the operation is successful.
3998
+ class GoogleCloudRetailV2betaImportCompletionDataResponse
3999
+ include Google::Apis::Core::Hashable
4000
+
4001
+ # A sample of errors encountered while processing the request.
4002
+ # Corresponds to the JSON property `errorSamples`
4003
+ # @return [Array<Google::Apis::RetailV2::GoogleRpcStatus>]
4004
+ attr_accessor :error_samples
4005
+
4006
+ def initialize(**args)
4007
+ update!(**args)
4008
+ end
4009
+
4010
+ # Update properties of this object
4011
+ def update!(**args)
4012
+ @error_samples = args[:error_samples] if args.key?(:error_samples)
4013
+ end
4014
+ end
4015
+
2082
4016
  # Configuration of destination for Import related errors.
2083
4017
  class GoogleCloudRetailV2betaImportErrorsConfig
2084
4018
  include Google::Apis::Core::Hashable
@@ -2115,6 +4049,20 @@ module Google
2115
4049
  # @return [Fixnum]
2116
4050
  attr_accessor :failure_count
2117
4051
 
4052
+ # Pub/Sub topic for receiving notification. If this field is set, when the
4053
+ # import is finished, a notification will be sent to specified Pub/Sub topic.
4054
+ # The message data will be JSON string of a Operation. Format of the Pub/Sub
4055
+ # topic is `projects/`project`/topics/`topic``.
4056
+ # Corresponds to the JSON property `notificationPubsubTopic`
4057
+ # @return [String]
4058
+ attr_accessor :notification_pubsub_topic
4059
+
4060
+ # Id of the request / operation. This is parroting back the requestId that was
4061
+ # passed in the request.
4062
+ # Corresponds to the JSON property `requestId`
4063
+ # @return [String]
4064
+ attr_accessor :request_id
4065
+
2118
4066
  # Count of entries that were processed successfully.
2119
4067
  # Corresponds to the JSON property `successCount`
2120
4068
  # @return [Fixnum]
@@ -2134,6 +4082,8 @@ module Google
2134
4082
  def update!(**args)
2135
4083
  @create_time = args[:create_time] if args.key?(:create_time)
2136
4084
  @failure_count = args[:failure_count] if args.key?(:failure_count)
4085
+ @notification_pubsub_topic = args[:notification_pubsub_topic] if args.key?(:notification_pubsub_topic)
4086
+ @request_id = args[:request_id] if args.key?(:request_id)
2137
4087
  @success_count = args[:success_count] if args.key?(:success_count)
2138
4088
  @update_time = args[:update_time] if args.key?(:update_time)
2139
4089
  end
@@ -2267,6 +4217,64 @@ module Google
2267
4217
  end
2268
4218
  end
2269
4219
 
4220
+ # Metadata related to the progress of the RemoveFulfillmentPlaces operation.
4221
+ # Currently empty because there is no meaningful metadata populated from the
4222
+ # RemoveFulfillmentPlaces method.
4223
+ class GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata
4224
+ include Google::Apis::Core::Hashable
4225
+
4226
+ def initialize(**args)
4227
+ update!(**args)
4228
+ end
4229
+
4230
+ # Update properties of this object
4231
+ def update!(**args)
4232
+ end
4233
+ end
4234
+
4235
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
4236
+ # is no meaningful response populated from the RemoveFulfillmentPlaces method.
4237
+ class GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse
4238
+ include Google::Apis::Core::Hashable
4239
+
4240
+ def initialize(**args)
4241
+ update!(**args)
4242
+ end
4243
+
4244
+ # Update properties of this object
4245
+ def update!(**args)
4246
+ end
4247
+ end
4248
+
4249
+ # Metadata related to the progress of the SetInventory operation. Currently
4250
+ # empty because there is no meaningful metadata populated from the SetInventory
4251
+ # method.
4252
+ class GoogleCloudRetailV2betaSetInventoryMetadata
4253
+ include Google::Apis::Core::Hashable
4254
+
4255
+ def initialize(**args)
4256
+ update!(**args)
4257
+ end
4258
+
4259
+ # Update properties of this object
4260
+ def update!(**args)
4261
+ end
4262
+ end
4263
+
4264
+ # Response of the SetInventoryRequest. Currently empty because there is no
4265
+ # meaningful response populated from the SetInventory method.
4266
+ class GoogleCloudRetailV2betaSetInventoryResponse
4267
+ include Google::Apis::Core::Hashable
4268
+
4269
+ def initialize(**args)
4270
+ update!(**args)
4271
+ end
4272
+
4273
+ # Update properties of this object
4274
+ def update!(**args)
4275
+ end
4276
+ end
4277
+
2270
4278
  # A summary of import result. The UserEventImportSummary summarizes the import
2271
4279
  # status for user events.
2272
4280
  class GoogleCloudRetailV2betaUserEventImportSummary
@@ -2436,6 +4444,47 @@ module Google
2436
4444
  @message = args[:message] if args.key?(:message)
2437
4445
  end
2438
4446
  end
4447
+
4448
+ # Represents a whole or partial calendar date, such as a birthday. The time of
4449
+ # day and time zone are either specified elsewhere or are insignificant. The
4450
+ # date is relative to the Gregorian Calendar. This can represent one of the
4451
+ # following: * A full date, with non-zero year, month, and day values * A month
4452
+ # and day value, with a zero year, such as an anniversary * A year on its own,
4453
+ # with zero month and day values * A year and month value, with a zero day, such
4454
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
4455
+ # google.protobuf.Timestamp`.
4456
+ class GoogleTypeDate
4457
+ include Google::Apis::Core::Hashable
4458
+
4459
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
4460
+ # specify a year by itself or a year and month where the day isn't significant.
4461
+ # Corresponds to the JSON property `day`
4462
+ # @return [Fixnum]
4463
+ attr_accessor :day
4464
+
4465
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
4466
+ # and day.
4467
+ # Corresponds to the JSON property `month`
4468
+ # @return [Fixnum]
4469
+ attr_accessor :month
4470
+
4471
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
4472
+ # year.
4473
+ # Corresponds to the JSON property `year`
4474
+ # @return [Fixnum]
4475
+ attr_accessor :year
4476
+
4477
+ def initialize(**args)
4478
+ update!(**args)
4479
+ end
4480
+
4481
+ # Update properties of this object
4482
+ def update!(**args)
4483
+ @day = args[:day] if args.key?(:day)
4484
+ @month = args[:month] if args.key?(:month)
4485
+ @year = args[:year] if args.key?(:year)
4486
+ end
4487
+ end
2439
4488
  end
2440
4489
  end
2441
4490
  end