google-apis-retail_v2 0.12.0 → 0.16.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.
@@ -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 25 colors are allowed. Each value must be a UTF-
528
+ # 8 encoded string with a length limit of 128 characters. Otherwise, an
529
+ # INVALID_ARGUMENT error is returned. Google Merchant Center property [color](
530
+ # https://support.google.com/merchants/answer/6324487). Schema.org property [
531
+ # Product.color](https://schema.org/color).
532
+ # Corresponds to the JSON property `colors`
533
+ # @return [Array<String>]
534
+ attr_accessor :colors
535
+
536
+ def initialize(**args)
537
+ update!(**args)
538
+ end
539
+
540
+ # Update properties of this object
541
+ def update!(**args)
542
+ @color_families = args[:color_families] if args.key?(:color_families)
543
+ @colors = args[:colors] if args.key?(:colors)
544
+ end
545
+ end
546
+
547
+ # Response of the auto-complete query.
548
+ class GoogleCloudRetailV2CompleteQueryResponse
549
+ include Google::Apis::Core::Hashable
550
+
551
+ # A unique complete token. This should be included in the SearchRequest
552
+ # resulting from this completion, which enables accurate attribution of complete
553
+ # model performance.
554
+ # Corresponds to the JSON property `attributionToken`
555
+ # @return [String]
556
+ attr_accessor :attribution_token
557
+
558
+ # Results of the matching suggestions. The result list is ordered and the first
559
+ # result is top suggestion.
560
+ # Corresponds to the JSON property `completionResults`
561
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2CompleteQueryResponseCompletionResult>]
562
+ attr_accessor :completion_results
563
+
564
+ # Matched recent searches of this user. The maximum number of recent searches is
565
+ # 10. This field is a restricted feature. Contact Retail Search support team if
566
+ # you are interested in enabling it. This feature is only available when
567
+ # CompleteQueryRequest.visitor_id field is set and UserEvent is imported. The
568
+ # recent searches satisfy the follow rules: * They are ordered from latest to
569
+ # oldest. * They are matched with CompleteQueryRequest.query case insensitively.
570
+ # * They are transformed to lower cases. * They are UTF-8 safe. Recent searches
571
+ # are deduplicated. More recent searches will be reserved when duplication
572
+ # happens.
573
+ # Corresponds to the JSON property `recentSearchResults`
574
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2CompleteQueryResponseRecentSearchResult>]
575
+ attr_accessor :recent_search_results
576
+
577
+ def initialize(**args)
578
+ update!(**args)
579
+ end
580
+
581
+ # Update properties of this object
582
+ def update!(**args)
583
+ @attribution_token = args[:attribution_token] if args.key?(:attribution_token)
584
+ @completion_results = args[:completion_results] if args.key?(:completion_results)
585
+ @recent_search_results = args[:recent_search_results] if args.key?(:recent_search_results)
586
+ end
587
+ end
588
+
589
+ # Resource that represents completion results.
590
+ class GoogleCloudRetailV2CompleteQueryResponseCompletionResult
591
+ include Google::Apis::Core::Hashable
592
+
593
+ # Additional custom attributes ingested through BigQuery.
594
+ # Corresponds to the JSON property `attributes`
595
+ # @return [Hash<String,Google::Apis::RetailV2::GoogleCloudRetailV2CustomAttribute>]
596
+ attr_accessor :attributes
597
+
598
+ # The suggestion for the query.
599
+ # Corresponds to the JSON property `suggestion`
600
+ # @return [String]
601
+ attr_accessor :suggestion
602
+
603
+ def initialize(**args)
604
+ update!(**args)
605
+ end
606
+
607
+ # Update properties of this object
608
+ def update!(**args)
609
+ @attributes = args[:attributes] if args.key?(:attributes)
610
+ @suggestion = args[:suggestion] if args.key?(:suggestion)
611
+ end
612
+ end
613
+
614
+ # Recent search of this user.
615
+ class GoogleCloudRetailV2CompleteQueryResponseRecentSearchResult
616
+ include Google::Apis::Core::Hashable
617
+
618
+ # The recent search query.
619
+ # Corresponds to the JSON property `recentSearch`
620
+ # @return [String]
621
+ attr_accessor :recent_search
622
+
623
+ def initialize(**args)
624
+ update!(**args)
625
+ end
626
+
627
+ # Update properties of this object
628
+ def update!(**args)
629
+ @recent_search = args[:recent_search] if args.key?(:recent_search)
630
+ end
631
+ end
632
+
633
+ # The input config source for completion data.
634
+ class GoogleCloudRetailV2CompletionDataInputConfig
635
+ include Google::Apis::Core::Hashable
636
+
637
+ # BigQuery source import data from.
638
+ # Corresponds to the JSON property `bigQuerySource`
639
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2BigQuerySource]
640
+ attr_accessor :big_query_source
641
+
642
+ def initialize(**args)
643
+ update!(**args)
644
+ end
645
+
646
+ # Update properties of this object
647
+ def update!(**args)
648
+ @big_query_source = args[:big_query_source] if args.key?(:big_query_source)
649
+ end
650
+ end
651
+
652
+ # Detailed completion information including completion attribution token and
653
+ # clicked completion info.
654
+ class GoogleCloudRetailV2CompletionDetail
655
+ include Google::Apis::Core::Hashable
656
+
657
+ # Completion attribution token in CompleteQueryResponse.attribution_token.
658
+ # Corresponds to the JSON property `completionAttributionToken`
659
+ # @return [String]
660
+ attr_accessor :completion_attribution_token
661
+
662
+ # End user selected CompleteQueryResponse.CompletionResult.suggestion position,
663
+ # starting from 0.
664
+ # Corresponds to the JSON property `selectedPosition`
665
+ # @return [Fixnum]
666
+ attr_accessor :selected_position
667
+
668
+ # End user selected CompleteQueryResponse.CompletionResult.suggestion.
669
+ # Corresponds to the JSON property `selectedSuggestion`
670
+ # @return [String]
671
+ attr_accessor :selected_suggestion
672
+
673
+ def initialize(**args)
674
+ update!(**args)
675
+ end
676
+
677
+ # Update properties of this object
678
+ def update!(**args)
679
+ @completion_attribution_token = args[:completion_attribution_token] if args.key?(:completion_attribution_token)
680
+ @selected_position = args[:selected_position] if args.key?(:selected_position)
681
+ @selected_suggestion = args[:selected_suggestion] if args.key?(:selected_suggestion)
682
+ end
683
+ end
684
+
372
685
  # A custom attribute that is not explicitly modeled in Product.
373
686
  class GoogleCloudRetailV2CustomAttribute
374
687
  include Google::Apis::Core::Hashable
375
688
 
689
+ # If true, custom attribute values are indexed, so that it can be filtered,
690
+ # faceted or boosted in SearchService.Search. This field is ignored in a
691
+ # UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and
692
+ # SearchRequest.boost_spec for more details.
693
+ # Corresponds to the JSON property `indexable`
694
+ # @return [Boolean]
695
+ attr_accessor :indexable
696
+ alias_method :indexable?, :indexable
697
+
376
698
  # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when
377
699
  # the key is "lengths_cm". At most 400 values are allowed.Otherwise, an
378
700
  # INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be
@@ -381,6 +703,14 @@ module Google
381
703
  # @return [Array<Float>]
382
704
  attr_accessor :numbers
383
705
 
706
+ # If true, custom attribute values are searchable by text queries in
707
+ # SearchService.Search. This field is ignored in a UserEvent. Only set if type
708
+ # text is set. Otherwise, a INVALID_ARGUMENT error is returned.
709
+ # Corresponds to the JSON property `searchable`
710
+ # @return [Boolean]
711
+ attr_accessor :searchable
712
+ alias_method :searchable?, :searchable
713
+
384
714
  # The textual values of this custom attribute. For example, `["yellow", "green"]`
385
715
  # when the key is "color". At most 400 values are allowed. Empty values are not
386
716
  # allowed. Each value must be a UTF-8 encoded string with a length limit of 256
@@ -397,11 +727,49 @@ module Google
397
727
 
398
728
  # Update properties of this object
399
729
  def update!(**args)
730
+ @indexable = args[:indexable] if args.key?(:indexable)
400
731
  @numbers = args[:numbers] if args.key?(:numbers)
732
+ @searchable = args[:searchable] if args.key?(:searchable)
401
733
  @text = args[:text] if args.key?(:text)
402
734
  end
403
735
  end
404
736
 
737
+ # Fulfillment information, such as the store IDs for in-store pickup or region
738
+ # IDs for different shipping methods.
739
+ class GoogleCloudRetailV2FulfillmentInfo
740
+ include Google::Apis::Core::Hashable
741
+
742
+ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-
743
+ # in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A
744
+ # maximum of 3000 values are allowed. Each value must be a string with a length
745
+ # limit of 30 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,8 +1209,34 @@ module Google
681
1209
  end
682
1210
  end
683
1211
 
684
- # Request message for Predict method.
685
- class GoogleCloudRetailV2PredictRequest
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
+
1238
+ # Request message for Predict method.
1239
+ class GoogleCloudRetailV2PredictRequest
686
1240
  include Google::Apis::Core::Hashable
687
1241
 
688
1242
  # Filter for restricting prediction results with a length limit of 5,000
@@ -866,7 +1420,9 @@ module Google
866
1420
 
867
1421
  # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-
868
1422
  # currency-codes.html). If this field is an unrecognizable currency code, an
869
- # INVALID_ARGUMENT error is returned.
1423
+ # INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the
1424
+ # same Product.primary_product_id must share the same currency_code. Otherwise,
1425
+ # a FAILED_PRECONDITION error is returned.
870
1426
  # Corresponds to the JSON property `currencyCode`
871
1427
  # @return [String]
872
1428
  attr_accessor :currency_code
@@ -884,6 +1440,29 @@ module Google
884
1440
  # @return [Float]
885
1441
  attr_accessor :price
886
1442
 
1443
+ # The timestamp when the price starts to be effective. This can be set as a
1444
+ # future timestamp, and the price is only used for search after
1445
+ # price_effective_time. If so, the original_price must be set and original_price
1446
+ # is used before price_effective_time. Do not set if price is always effective
1447
+ # because it will cause additional latency during search.
1448
+ # Corresponds to the JSON property `priceEffectiveTime`
1449
+ # @return [String]
1450
+ attr_accessor :price_effective_time
1451
+
1452
+ # The timestamp when the price stops to be effective. The price is used for
1453
+ # search before price_expire_time. If this field is set, the original_price must
1454
+ # be set and original_price is used after price_expire_time. Do not set if price
1455
+ # is always effective because it will cause additional latency during search.
1456
+ # Corresponds to the JSON property `priceExpireTime`
1457
+ # @return [String]
1458
+ attr_accessor :price_expire_time
1459
+
1460
+ # The price range of all variant Product having the same Product.
1461
+ # primary_product_id.
1462
+ # Corresponds to the JSON property `priceRange`
1463
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2PriceInfoPriceRange]
1464
+ attr_accessor :price_range
1465
+
887
1466
  def initialize(**args)
888
1467
  update!(**args)
889
1468
  end
@@ -894,6 +1473,35 @@ module Google
894
1473
  @currency_code = args[:currency_code] if args.key?(:currency_code)
895
1474
  @original_price = args[:original_price] if args.key?(:original_price)
896
1475
  @price = args[:price] if args.key?(:price)
1476
+ @price_effective_time = args[:price_effective_time] if args.key?(:price_effective_time)
1477
+ @price_expire_time = args[:price_expire_time] if args.key?(:price_expire_time)
1478
+ @price_range = args[:price_range] if args.key?(:price_range)
1479
+ end
1480
+ end
1481
+
1482
+ # The price range of all variant Product having the same Product.
1483
+ # primary_product_id.
1484
+ class GoogleCloudRetailV2PriceInfoPriceRange
1485
+ include Google::Apis::Core::Hashable
1486
+
1487
+ # A floating point interval.
1488
+ # Corresponds to the JSON property `originalPrice`
1489
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Interval]
1490
+ attr_accessor :original_price
1491
+
1492
+ # A floating point interval.
1493
+ # Corresponds to the JSON property `price`
1494
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Interval]
1495
+ attr_accessor :price
1496
+
1497
+ def initialize(**args)
1498
+ update!(**args)
1499
+ end
1500
+
1501
+ # Update properties of this object
1502
+ def update!(**args)
1503
+ @original_price = args[:original_price] if args.key?(:original_price)
1504
+ @price = args[:price] if args.key?(:price)
897
1505
  end
898
1506
  end
899
1507
 
@@ -912,13 +1520,19 @@ module Google
912
1520
  # product, or age of a customer. For example: `` "vendor": `"text": ["vendor123",
913
1521
  # "vendor456"]`, "lengths_cm": `"numbers":[2.3, 15.4]`, "heights_cm": `"numbers"
914
1522
  # :[8.1, 6.4]` ``. This field needs to pass all below criteria, otherwise an
915
- # INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100
916
- # for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit
917
- # of 128 characters.
1523
+ # INVALID_ARGUMENT error is returned: * Max entries count: 200. * The key must
1524
+ # be a UTF-8 encoded string with a length limit of 128 characters. * For
1525
+ # indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example,
1526
+ # key0LikeThis or KEY_1_LIKE_THIS.
918
1527
  # Corresponds to the JSON property `attributes`
919
1528
  # @return [Hash<String,Google::Apis::RetailV2::GoogleCloudRetailV2CustomAttribute>]
920
1529
  attr_accessor :attributes
921
1530
 
1531
+ # An intended audience of the Product for whom it's sold.
1532
+ # Corresponds to the JSON property `audience`
1533
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Audience]
1534
+ attr_accessor :audience
1535
+
922
1536
  # The online availability of the Product. Default to Availability.IN_STOCK.
923
1537
  # Google Merchant Center Property [availability](https://support.google.com/
924
1538
  # merchants/answer/6324448). Schema.org Property [Offer.availability](https://
@@ -932,11 +1546,20 @@ module Google
932
1546
  # @return [Fixnum]
933
1547
  attr_accessor :available_quantity
934
1548
 
935
- # The timestamp when this Product becomes available for recommendation.
1549
+ # The timestamp when this Product becomes available for SearchService.Search.
936
1550
  # Corresponds to the JSON property `availableTime`
937
1551
  # @return [String]
938
1552
  attr_accessor :available_time
939
1553
 
1554
+ # The brands of the product. A maximum of 30 brands are allowed. Each brand must
1555
+ # be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise,
1556
+ # an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](
1557
+ # https://support.google.com/merchants/answer/6324351). Schema.org property [
1558
+ # Product.brand](https://schema.org/brand).
1559
+ # Corresponds to the JSON property `brands`
1560
+ # @return [Array<String>]
1561
+ attr_accessor :brands
1562
+
940
1563
  # Product categories. This field is repeated for supporting one product
941
1564
  # belonging to several parallel categories. Strongly recommended using the full
942
1565
  # path for better search / recommendation quality. To represent full path of
@@ -957,6 +1580,29 @@ module Google
957
1580
  # @return [Array<String>]
958
1581
  attr_accessor :categories
959
1582
 
1583
+ # The id of the collection members when type is Type.COLLECTION. Should not set
1584
+ # it for other types. A maximum of 1000 values are allowed. Otherwise, an
1585
+ # INVALID_ARGUMENT error is return.
1586
+ # Corresponds to the JSON property `collectionMemberIds`
1587
+ # @return [Array<String>]
1588
+ attr_accessor :collection_member_ids
1589
+
1590
+ # The color information of a Product.
1591
+ # Corresponds to the JSON property `colorInfo`
1592
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2ColorInfo]
1593
+ attr_accessor :color_info
1594
+
1595
+ # The condition of the product. Strongly encouraged to use the standard values: "
1596
+ # new", "refurbished", "used". A maximum of 5 values are allowed per Product.
1597
+ # Each value must be a UTF-8 encoded string with a length limit of 128
1598
+ # characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant
1599
+ # Center property [condition](https://support.google.com/merchants/answer/
1600
+ # 6324469). Schema.org property [Offer.itemCondition](https://schema.org/
1601
+ # itemCondition).
1602
+ # Corresponds to the JSON property `conditions`
1603
+ # @return [Array<String>]
1604
+ attr_accessor :conditions
1605
+
960
1606
  # Product description. This field must be a UTF-8 encoded string with a length
961
1607
  # limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
962
1608
  # Google Merchant Center property [description](https://support.google.com/
@@ -966,6 +1612,35 @@ module Google
966
1612
  # @return [String]
967
1613
  attr_accessor :description
968
1614
 
1615
+ # The timestamp when this product becomes unavailable for SearchService.Search.
1616
+ # If it is set, the Product is not available for SearchService.Search after
1617
+ # expire_time. However, the product can still be retrieved by ProductService.
1618
+ # GetProduct and ProductService.ListProducts. Google Merchant Center property [
1619
+ # expiration_date](https://support.google.com/merchants/answer/6324499).
1620
+ # Corresponds to the JSON property `expireTime`
1621
+ # @return [String]
1622
+ attr_accessor :expire_time
1623
+
1624
+ # Fulfillment information, such as the store IDs for in-store pickup or region
1625
+ # IDs for different shipping methods. All the elements must have distinct
1626
+ # FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.
1627
+ # Corresponds to the JSON property `fulfillmentInfo`
1628
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2FulfillmentInfo>]
1629
+ attr_accessor :fulfillment_info
1630
+
1631
+ # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8
1632
+ # encoded string with a length limit of 128 characters. Otherwise, an
1633
+ # INVALID_ARGUMENT error is returned. This field must be a Unigram. Otherwise,
1634
+ # an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](
1635
+ # https://support.google.com/merchants/answer/6324461). Schema.org property [
1636
+ # Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/
1637
+ # gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](
1638
+ # https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If
1639
+ # the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.
1640
+ # Corresponds to the JSON property `gtin`
1641
+ # @return [String]
1642
+ attr_accessor :gtin
1643
+
969
1644
  # Immutable. Product identifier, which is the final component of name. For
970
1645
  # example, this field is "id_1", if name is `projects/*/locations/global/
971
1646
  # catalogs/default_catalog/branches/default_branch/products/id_1`. This field
@@ -985,13 +1660,42 @@ module Google
985
1660
  # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2Image>]
986
1661
  attr_accessor :images
987
1662
 
1663
+ # Language of the title/description and other string attributes. Use language
1664
+ # tags defined by BCP 47. For product prediction, this field is ignored and the
1665
+ # model automatically detects the text language. The Product can include text in
1666
+ # different languages, but duplicating Products to provide text in multiple
1667
+ # languages can result in degraded model performance. For product search this
1668
+ # field is in use. It defaults to "en-US" if unset.
1669
+ # Corresponds to the JSON property `languageCode`
1670
+ # @return [String]
1671
+ attr_accessor :language_code
1672
+
1673
+ # The material of the product. For example, "leather", "wooden". A maximum of 20
1674
+ # values are allowed. Each value must be a UTF-8 encoded string with a length
1675
+ # limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
1676
+ # Google Merchant Center property [material](https://support.google.com/
1677
+ # merchants/answer/6324410). Schema.org property [Product.material](https://
1678
+ # schema.org/material).
1679
+ # Corresponds to the JSON property `materials`
1680
+ # @return [Array<String>]
1681
+ attr_accessor :materials
1682
+
988
1683
  # Immutable. Full resource name of the product, such as `projects/*/locations/
989
1684
  # global/catalogs/default_catalog/branches/default_branch/products/product_id`.
990
- # The branch ID must be "default_branch".
991
1685
  # Corresponds to the JSON property `name`
992
1686
  # @return [String]
993
1687
  attr_accessor :name
994
1688
 
1689
+ # The pattern or graphic print of the product. For example, "striped", "polka
1690
+ # dot", "paisley". A maximum of 20 values are allowed per Product. Each value
1691
+ # must be a UTF-8 encoded string with a length limit of 128 characters.
1692
+ # Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center
1693
+ # property [pattern](https://support.google.com/merchants/answer/6324483).
1694
+ # Schema.org property [Product.pattern](https://schema.org/pattern).
1695
+ # Corresponds to the JSON property `patterns`
1696
+ # @return [Array<String>]
1697
+ attr_accessor :patterns
1698
+
995
1699
  # The price information of a Product.
996
1700
  # Corresponds to the JSON property `priceInfo`
997
1701
  # @return [Google::Apis::RetailV2::GoogleCloudRetailV2PriceInfo]
@@ -1010,6 +1714,58 @@ module Google
1010
1714
  # @return [String]
1011
1715
  attr_accessor :primary_product_id
1012
1716
 
1717
+ # The promotions applied to the product. A maximum of 10 values are allowed per
1718
+ # Product.
1719
+ # Corresponds to the JSON property `promotions`
1720
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2Promotion>]
1721
+ attr_accessor :promotions
1722
+
1723
+ # The timestamp when the product is published by the retailer for the first time,
1724
+ # which indicates the freshness of the products. Note that this field is
1725
+ # different from available_time, given it purely describes product freshness
1726
+ # regardless of when it is available on search and recommendation.
1727
+ # Corresponds to the JSON property `publishTime`
1728
+ # @return [String]
1729
+ attr_accessor :publish_time
1730
+
1731
+ # The rating of a Product.
1732
+ # Corresponds to the JSON property `rating`
1733
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Rating]
1734
+ attr_accessor :rating
1735
+
1736
+ # Indicates which fields in the Products are returned in SearchResponse.
1737
+ # Supported fields for all types: * audience * availability * brands *
1738
+ # color_info * conditions * gtin * materials * name * patterns * price_info *
1739
+ # rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.
1740
+ # COLLECTION: * categories * description * images Supported fields only for Type.
1741
+ # VARIANT: * Only the first image in images To mark attributes as retrievable,
1742
+ # include paths of the form "attributes.key" where "key" is the key of a custom
1743
+ # attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION,
1744
+ # the following fields are always returned in SearchResponse by default: * name
1745
+ # For Type.VARIANT, the following fields are always returned in by default: *
1746
+ # name * color_info Maximum number of paths is 30. Otherwise, an
1747
+ # INVALID_ARGUMENT error is returned. Note: Returning more fields in
1748
+ # SearchResponse may increase response payload size and serving latency.
1749
+ # Corresponds to the JSON property `retrievableFields`
1750
+ # @return [String]
1751
+ attr_accessor :retrievable_fields
1752
+
1753
+ # The size of the product. To represent different size systems or size types,
1754
+ # consider using this format: [[[size_system:]size_type:]size_value]. For
1755
+ # example, in "US:MENS:M", "US" represents size system; "MENS" represents size
1756
+ # type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS"
1757
+ # represents size type; "27" represents size value. In "32 inches", both size
1758
+ # system and size type are empty, while size value is "32 inches". A maximum of
1759
+ # 20 values are allowed per Product. Each value must be a UTF-8 encoded string
1760
+ # with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is
1761
+ # returned. Google Merchant Center property [size](https://support.google.com/
1762
+ # merchants/answer/6324492), [size_type](https://support.google.com/merchants/
1763
+ # answer/6324497) and [size_system](https://support.google.com/merchants/answer/
1764
+ # 6324502). Schema.org property [Product.size](https://schema.org/size).
1765
+ # Corresponds to the JSON property `sizes`
1766
+ # @return [Array<String>]
1767
+ attr_accessor :sizes
1768
+
1013
1769
  # Custom tags associated with the product. At most 250 values are allowed per
1014
1770
  # Product. This value must be a UTF-8 encoded string with a length limit of 1,
1015
1771
  # 000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can
@@ -1029,6 +1785,16 @@ module Google
1029
1785
  # @return [String]
1030
1786
  attr_accessor :title
1031
1787
 
1788
+ # Input only. The TTL (time to live) of the product. If it is set, expire_time
1789
+ # is set as current timestamp plus ttl. The derived expire_time is returned in
1790
+ # the output and ttl is left blank when retrieving the Product. If it is set,
1791
+ # the product is not available for SearchService.Search after current timestamp
1792
+ # plus ttl. However, the product can still be retrieved by ProductService.
1793
+ # GetProduct and ProductService.ListProducts.
1794
+ # Corresponds to the JSON property `ttl`
1795
+ # @return [String]
1796
+ attr_accessor :ttl
1797
+
1032
1798
  # Immutable. The type of the product. Default to Catalog.product_level_config.
1033
1799
  # ingestion_product_type if unset.
1034
1800
  # Corresponds to the JSON property `type`
@@ -1046,6 +1812,15 @@ module Google
1046
1812
  # @return [String]
1047
1813
  attr_accessor :uri
1048
1814
 
1815
+ # Output only. Product variants grouped together on primary product which share
1816
+ # similar product attributes. It's automatically grouped by primary_product_id
1817
+ # for all the product variants. Only populated for Type.PRIMARY Products. Note:
1818
+ # This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field
1819
+ # in API requests.
1820
+ # Corresponds to the JSON property `variants`
1821
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2Product>]
1822
+ attr_accessor :variants
1823
+
1049
1824
  def initialize(**args)
1050
1825
  update!(**args)
1051
1826
  end
@@ -1053,20 +1828,38 @@ module Google
1053
1828
  # Update properties of this object
1054
1829
  def update!(**args)
1055
1830
  @attributes = args[:attributes] if args.key?(:attributes)
1831
+ @audience = args[:audience] if args.key?(:audience)
1056
1832
  @availability = args[:availability] if args.key?(:availability)
1057
1833
  @available_quantity = args[:available_quantity] if args.key?(:available_quantity)
1058
1834
  @available_time = args[:available_time] if args.key?(:available_time)
1835
+ @brands = args[:brands] if args.key?(:brands)
1059
1836
  @categories = args[:categories] if args.key?(:categories)
1837
+ @collection_member_ids = args[:collection_member_ids] if args.key?(:collection_member_ids)
1838
+ @color_info = args[:color_info] if args.key?(:color_info)
1839
+ @conditions = args[:conditions] if args.key?(:conditions)
1060
1840
  @description = args[:description] if args.key?(:description)
1841
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
1842
+ @fulfillment_info = args[:fulfillment_info] if args.key?(:fulfillment_info)
1843
+ @gtin = args[:gtin] if args.key?(:gtin)
1061
1844
  @id = args[:id] if args.key?(:id)
1062
1845
  @images = args[:images] if args.key?(:images)
1846
+ @language_code = args[:language_code] if args.key?(:language_code)
1847
+ @materials = args[:materials] if args.key?(:materials)
1063
1848
  @name = args[:name] if args.key?(:name)
1849
+ @patterns = args[:patterns] if args.key?(:patterns)
1064
1850
  @price_info = args[:price_info] if args.key?(:price_info)
1065
1851
  @primary_product_id = args[:primary_product_id] if args.key?(:primary_product_id)
1852
+ @promotions = args[:promotions] if args.key?(:promotions)
1853
+ @publish_time = args[:publish_time] if args.key?(:publish_time)
1854
+ @rating = args[:rating] if args.key?(:rating)
1855
+ @retrievable_fields = args[:retrievable_fields] if args.key?(:retrievable_fields)
1856
+ @sizes = args[:sizes] if args.key?(:sizes)
1066
1857
  @tags = args[:tags] if args.key?(:tags)
1067
1858
  @title = args[:title] if args.key?(:title)
1859
+ @ttl = args[:ttl] if args.key?(:ttl)
1068
1860
  @type = args[:type] if args.key?(:type)
1069
1861
  @uri = args[:uri] if args.key?(:uri)
1862
+ @variants = args[:variants] if args.key?(:variants)
1070
1863
  end
1071
1864
  end
1072
1865
 
@@ -1194,6 +1987,29 @@ module Google
1194
1987
  end
1195
1988
  end
1196
1989
 
1990
+ # Promotion information.
1991
+ class GoogleCloudRetailV2Promotion
1992
+ include Google::Apis::Core::Hashable
1993
+
1994
+ # ID of the promotion. For example, "free gift". The value value must be a UTF-8
1995
+ # encoded string with a length limit of 128 characters, and match the pattern: a-
1996
+ # zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an
1997
+ # INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion]
1998
+ # (https://support.google.com/merchants/answer/7050148).
1999
+ # Corresponds to the JSON property `promotionId`
2000
+ # @return [String]
2001
+ attr_accessor :promotion_id
2002
+
2003
+ def initialize(**args)
2004
+ update!(**args)
2005
+ end
2006
+
2007
+ # Update properties of this object
2008
+ def update!(**args)
2009
+ @promotion_id = args[:promotion_id] if args.key?(:promotion_id)
2010
+ end
2011
+ end
2012
+
1197
2013
  # A transaction represents the entire purchase transaction.
1198
2014
  class GoogleCloudRetailV2PurchaseTransaction
1199
2015
  include Google::Apis::Core::Hashable
@@ -1299,10 +2115,868 @@ module Google
1299
2115
  class GoogleCloudRetailV2PurgeUserEventsResponse
1300
2116
  include Google::Apis::Core::Hashable
1301
2117
 
1302
- # The total count of events purged as a result of the operation.
1303
- # Corresponds to the JSON property `purgedEventsCount`
1304
- # @return [Fixnum]
1305
- attr_accessor :purged_events_count
2118
+ # The total count of events purged as a result of the operation.
2119
+ # Corresponds to the JSON property `purgedEventsCount`
2120
+ # @return [Fixnum]
2121
+ attr_accessor :purged_events_count
2122
+
2123
+ def initialize(**args)
2124
+ update!(**args)
2125
+ end
2126
+
2127
+ # Update properties of this object
2128
+ def update!(**args)
2129
+ @purged_events_count = args[:purged_events_count] if args.key?(:purged_events_count)
2130
+ end
2131
+ end
2132
+
2133
+ # The rating of a Product.
2134
+ class GoogleCloudRetailV2Rating
2135
+ include Google::Apis::Core::Hashable
2136
+
2137
+ # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an
2138
+ # INVALID_ARGUMENT error is returned.
2139
+ # Corresponds to the JSON property `averageRating`
2140
+ # @return [Float]
2141
+ attr_accessor :average_rating
2142
+
2143
+ # The total number of ratings. This value is independent of the value of
2144
+ # rating_histogram. This value must be nonnegative. Otherwise, an
2145
+ # INVALID_ARGUMENT error is returned.
2146
+ # Corresponds to the JSON property `ratingCount`
2147
+ # @return [Fixnum]
2148
+ attr_accessor :rating_count
2149
+
2150
+ # List of rating counts per rating value (index = rating - 1). The list is empty
2151
+ # if there is no rating. If the list is non-empty, its size is always 5.
2152
+ # Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47,
2153
+ # 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2
2154
+ # star, and so on.
2155
+ # Corresponds to the JSON property `ratingHistogram`
2156
+ # @return [Array<Fixnum>]
2157
+ attr_accessor :rating_histogram
2158
+
2159
+ def initialize(**args)
2160
+ update!(**args)
2161
+ end
2162
+
2163
+ # Update properties of this object
2164
+ def update!(**args)
2165
+ @average_rating = args[:average_rating] if args.key?(:average_rating)
2166
+ @rating_count = args[:rating_count] if args.key?(:rating_count)
2167
+ @rating_histogram = args[:rating_histogram] if args.key?(:rating_histogram)
2168
+ end
2169
+ end
2170
+
2171
+ # Metadata for RejoinUserEvents method.
2172
+ class GoogleCloudRetailV2RejoinUserEventsMetadata
2173
+ include Google::Apis::Core::Hashable
2174
+
2175
+ def initialize(**args)
2176
+ update!(**args)
2177
+ end
2178
+
2179
+ # Update properties of this object
2180
+ def update!(**args)
2181
+ end
2182
+ end
2183
+
2184
+ # Request message for RejoinUserEvents method.
2185
+ class GoogleCloudRetailV2RejoinUserEventsRequest
2186
+ include Google::Apis::Core::Hashable
2187
+
2188
+ # The type of the user event rejoin to define the scope and range of the user
2189
+ # events to be rejoined with the latest product catalog. Defaults to
2190
+ # USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an
2191
+ # invalid integer value.
2192
+ # Corresponds to the JSON property `userEventRejoinScope`
2193
+ # @return [String]
2194
+ attr_accessor :user_event_rejoin_scope
2195
+
2196
+ def initialize(**args)
2197
+ update!(**args)
2198
+ end
2199
+
2200
+ # Update properties of this object
2201
+ def update!(**args)
2202
+ @user_event_rejoin_scope = args[:user_event_rejoin_scope] if args.key?(:user_event_rejoin_scope)
2203
+ end
2204
+ end
2205
+
2206
+ # Response message for RejoinUserEvents method.
2207
+ class GoogleCloudRetailV2RejoinUserEventsResponse
2208
+ include Google::Apis::Core::Hashable
2209
+
2210
+ # Number of user events that were joined with latest product catalog.
2211
+ # Corresponds to the JSON property `rejoinedUserEventsCount`
2212
+ # @return [Fixnum]
2213
+ attr_accessor :rejoined_user_events_count
2214
+
2215
+ def initialize(**args)
2216
+ update!(**args)
2217
+ end
2218
+
2219
+ # Update properties of this object
2220
+ def update!(**args)
2221
+ @rejoined_user_events_count = args[:rejoined_user_events_count] if args.key?(:rejoined_user_events_count)
2222
+ end
2223
+ end
2224
+
2225
+ # Metadata related to the progress of the RemoveFulfillmentPlaces operation.
2226
+ # Currently empty because there is no meaningful metadata populated from the
2227
+ # RemoveFulfillmentPlaces method.
2228
+ class GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata
2229
+ include Google::Apis::Core::Hashable
2230
+
2231
+ def initialize(**args)
2232
+ update!(**args)
2233
+ end
2234
+
2235
+ # Update properties of this object
2236
+ def update!(**args)
2237
+ end
2238
+ end
2239
+
2240
+ # Request message for RemoveFulfillmentPlaces method.
2241
+ class GoogleCloudRetailV2RemoveFulfillmentPlacesRequest
2242
+ include Google::Apis::Core::Hashable
2243
+
2244
+ # If set to true, and the Product is not found, the fulfillment information will
2245
+ # still be processed and retained for at most 1 day and processed once the
2246
+ # Product is created. If set to false, an INVALID_ARGUMENT error is returned if
2247
+ # the Product is not found.
2248
+ # Corresponds to the JSON property `allowMissing`
2249
+ # @return [Boolean]
2250
+ attr_accessor :allow_missing
2251
+ alias_method :allow_missing?, :allow_missing
2252
+
2253
+ # Required. The IDs for this type, such as the store IDs for "pickup-in-store"
2254
+ # or the region IDs for "same-day-delivery", to be removed for this type. At
2255
+ # least 1 value is required, and a maximum of 2000 values are allowed. Each
2256
+ # value must be a string with a length limit of 10 characters, matching the
2257
+ # pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an
2258
+ # INVALID_ARGUMENT error is returned.
2259
+ # Corresponds to the JSON property `placeIds`
2260
+ # @return [Array<String>]
2261
+ attr_accessor :place_ids
2262
+
2263
+ # The time when the fulfillment updates are issued, used to prevent out-of-order
2264
+ # updates on fulfillment information. If not provided, the internal system time
2265
+ # will be used.
2266
+ # Corresponds to the JSON property `removeTime`
2267
+ # @return [String]
2268
+ attr_accessor :remove_time
2269
+
2270
+ # Required. The fulfillment type, including commonly used types (such as pickup
2271
+ # in store and same day delivery), and custom types. Supported values: * "pickup-
2272
+ # in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "
2273
+ # custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-
2274
+ # type-5" If this field is set to an invalid value other than these, an
2275
+ # INVALID_ARGUMENT error is returned. This field directly corresponds to Product.
2276
+ # fulfillment_info.type.
2277
+ # Corresponds to the JSON property `type`
2278
+ # @return [String]
2279
+ attr_accessor :type
2280
+
2281
+ def initialize(**args)
2282
+ update!(**args)
2283
+ end
2284
+
2285
+ # Update properties of this object
2286
+ def update!(**args)
2287
+ @allow_missing = args[:allow_missing] if args.key?(:allow_missing)
2288
+ @place_ids = args[:place_ids] if args.key?(:place_ids)
2289
+ @remove_time = args[:remove_time] if args.key?(:remove_time)
2290
+ @type = args[:type] if args.key?(:type)
2291
+ end
2292
+ end
2293
+
2294
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
2295
+ # is no meaningful response populated from the RemoveFulfillmentPlaces method.
2296
+ class GoogleCloudRetailV2RemoveFulfillmentPlacesResponse
2297
+ include Google::Apis::Core::Hashable
2298
+
2299
+ def initialize(**args)
2300
+ update!(**args)
2301
+ end
2302
+
2303
+ # Update properties of this object
2304
+ def update!(**args)
2305
+ end
2306
+ end
2307
+
2308
+ # Request message for SearchService.Search method.
2309
+ class GoogleCloudRetailV2SearchRequest
2310
+ include Google::Apis::Core::Hashable
2311
+
2312
+ # Boost specification to boost certain items.
2313
+ # Corresponds to the JSON property `boostSpec`
2314
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2SearchRequestBoostSpec]
2315
+ attr_accessor :boost_spec
2316
+
2317
+ # The branch resource name, such as `projects/*/locations/global/catalogs/
2318
+ # default_catalog/branches/0`. Use "default_branch" as the branch ID or leave
2319
+ # this field empty, to search products under the default branch.
2320
+ # Corresponds to the JSON property `branch`
2321
+ # @return [String]
2322
+ attr_accessor :branch
2323
+
2324
+ # The filter applied to every search request when quality improvement such as
2325
+ # query expansion is needed. For example, if a query does not have enough
2326
+ # results, an expanded query with SearchRequest.canonical_filter will be
2327
+ # returned as a supplement of the original query. This field is strongly
2328
+ # recommended to achieve high search quality. See SearchRequest.filter for more
2329
+ # details about filter syntax.
2330
+ # Corresponds to the JSON property `canonicalFilter`
2331
+ # @return [String]
2332
+ attr_accessor :canonical_filter
2333
+
2334
+ # The specifications of dynamically generated facets.
2335
+ # Corresponds to the JSON property `dynamicFacetSpec`
2336
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2SearchRequestDynamicFacetSpec]
2337
+ attr_accessor :dynamic_facet_spec
2338
+
2339
+ # Facet specifications for faceted search. If empty, no facets are returned. A
2340
+ # maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is
2341
+ # returned.
2342
+ # Corresponds to the JSON property `facetSpecs`
2343
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2SearchRequestFacetSpec>]
2344
+ attr_accessor :facet_specs
2345
+
2346
+ # The filter syntax consists of an expression language for constructing a
2347
+ # predicate from one or more fields of the products being filtered. Filter
2348
+ # expression is case-sensitive. See more details at this [user guide](https://
2349
+ # cloud.google.com/retail/docs/filter-and-order#filter). If this field is
2350
+ # unrecognizable, an INVALID_ARGUMENT is returned.
2351
+ # Corresponds to the JSON property `filter`
2352
+ # @return [String]
2353
+ attr_accessor :filter
2354
+
2355
+ # A 0-indexed integer that specifies the current offset (that is, starting
2356
+ # result location, amongst the Products deemed by the API as relevant) in search
2357
+ # results. This field is only considered if page_token is unset. If this field
2358
+ # is negative, an INVALID_ARGUMENT is returned.
2359
+ # Corresponds to the JSON property `offset`
2360
+ # @return [Fixnum]
2361
+ attr_accessor :offset
2362
+
2363
+ # The order in which products are returned. Products can be ordered by a field
2364
+ # in an Product object. Leave it unset if ordered by relevance. OrderBy
2365
+ # expression is case-sensitive. See more details at this [user guide](https://
2366
+ # cloud.google.com/retail/docs/filter-and-order#order). If this field is
2367
+ # unrecognizable, an INVALID_ARGUMENT is returned.
2368
+ # Corresponds to the JSON property `orderBy`
2369
+ # @return [String]
2370
+ attr_accessor :order_by
2371
+
2372
+ # The categories associated with a category page. Required for category
2373
+ # navigation queries to achieve good search quality. The format should be the
2374
+ # same as UserEvent.page_categories; To represent full path of category, use '>'
2375
+ # sign to separate different hierarchies. If '>' is part of the category name,
2376
+ # please replace it with other character(s). Category pages include special
2377
+ # pages such as sales or promotions. For instance, a special sale page may have
2378
+ # the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"].
2379
+ # Corresponds to the JSON property `pageCategories`
2380
+ # @return [Array<String>]
2381
+ attr_accessor :page_categories
2382
+
2383
+ # Maximum number of Products to return. If unspecified, defaults to a reasonable
2384
+ # value. The maximum allowed value is 120. Values above 120 will be coerced to
2385
+ # 120. If this field is negative, an INVALID_ARGUMENT is returned.
2386
+ # Corresponds to the JSON property `pageSize`
2387
+ # @return [Fixnum]
2388
+ attr_accessor :page_size
2389
+
2390
+ # A page token SearchResponse.next_page_token, received from a previous
2391
+ # SearchService.Search call. Provide this to retrieve the subsequent page. When
2392
+ # paginating, all other parameters provided to SearchService.Search must match
2393
+ # the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is
2394
+ # returned.
2395
+ # Corresponds to the JSON property `pageToken`
2396
+ # @return [String]
2397
+ attr_accessor :page_token
2398
+
2399
+ # Raw search query.
2400
+ # Corresponds to the JSON property `query`
2401
+ # @return [String]
2402
+ attr_accessor :query
2403
+
2404
+ # Specification to determine under which conditions query expansion should occur.
2405
+ # Corresponds to the JSON property `queryExpansionSpec`
2406
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2SearchRequestQueryExpansionSpec]
2407
+ attr_accessor :query_expansion_spec
2408
+
2409
+ # Information of an end user.
2410
+ # Corresponds to the JSON property `userInfo`
2411
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2UserInfo]
2412
+ attr_accessor :user_info
2413
+
2414
+ # The keys to fetch and rollup the matching variant Products attributes. The
2415
+ # attributes from all the matching variant Products are merged and de-duplicated.
2416
+ # Notice that rollup variant Products attributes will lead to extra query
2417
+ # latency. Maximum number of keys is 10. For FulfillmentInfo, a fulfillment type
2418
+ # and a fulfillment ID must be provided in the format of "fulfillmentType.
2419
+ # fulfillmentId". E.g., in "pickupInStore.store123", "pickupInStore" is
2420
+ # fulfillment type and "store123" is the store ID. Supported keys are: *
2421
+ # colorFamilies * price * originalPrice * discount * attributes.key, where key
2422
+ # is any key in the Product.attributes map. * pickupInStore.id, where id is any
2423
+ # FulfillmentInfo.place_ids for FulfillmentInfo.type "pickup-in-store". *
2424
+ # shipToStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.
2425
+ # type "ship-to-store". * sameDayDelivery.id, where id is any FulfillmentInfo.
2426
+ # place_ids for FulfillmentInfo.type "same-day-delivery". * nextDayDelivery.id,
2427
+ # where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "next-day-
2428
+ # delivery". * customFulfillment1.id, where id is any FulfillmentInfo.place_ids
2429
+ # for FulfillmentInfo.type "custom-type-1". * customFulfillment2.id, where id is
2430
+ # any FulfillmentInfo.place_ids for FulfillmentInfo.type "custom-type-2". *
2431
+ # customFulfillment3.id, where id is any FulfillmentInfo.place_ids for
2432
+ # FulfillmentInfo.type "custom-type-3". * customFulfillment4.id, where id is any
2433
+ # FulfillmentInfo.place_ids for FulfillmentInfo.type "custom-type-4". *
2434
+ # customFulfillment5.id, where id is any FulfillmentInfo.place_ids for
2435
+ # FulfillmentInfo.type "custom-type-5". If this field is set to an invalid value
2436
+ # other than these, an INVALID_ARGUMENT error is returned.
2437
+ # Corresponds to the JSON property `variantRollupKeys`
2438
+ # @return [Array<String>]
2439
+ attr_accessor :variant_rollup_keys
2440
+
2441
+ # Required. A unique identifier for tracking visitors. For example, this could
2442
+ # be implemented with an HTTP cookie, which should be able to uniquely identify
2443
+ # a visitor on a single device. This unique identifier should not change if the
2444
+ # visitor logs in or out of the website. The field must be a UTF-8 encoded
2445
+ # string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT
2446
+ # error is returned.
2447
+ # Corresponds to the JSON property `visitorId`
2448
+ # @return [String]
2449
+ attr_accessor :visitor_id
2450
+
2451
+ def initialize(**args)
2452
+ update!(**args)
2453
+ end
2454
+
2455
+ # Update properties of this object
2456
+ def update!(**args)
2457
+ @boost_spec = args[:boost_spec] if args.key?(:boost_spec)
2458
+ @branch = args[:branch] if args.key?(:branch)
2459
+ @canonical_filter = args[:canonical_filter] if args.key?(:canonical_filter)
2460
+ @dynamic_facet_spec = args[:dynamic_facet_spec] if args.key?(:dynamic_facet_spec)
2461
+ @facet_specs = args[:facet_specs] if args.key?(:facet_specs)
2462
+ @filter = args[:filter] if args.key?(:filter)
2463
+ @offset = args[:offset] if args.key?(:offset)
2464
+ @order_by = args[:order_by] if args.key?(:order_by)
2465
+ @page_categories = args[:page_categories] if args.key?(:page_categories)
2466
+ @page_size = args[:page_size] if args.key?(:page_size)
2467
+ @page_token = args[:page_token] if args.key?(:page_token)
2468
+ @query = args[:query] if args.key?(:query)
2469
+ @query_expansion_spec = args[:query_expansion_spec] if args.key?(:query_expansion_spec)
2470
+ @user_info = args[:user_info] if args.key?(:user_info)
2471
+ @variant_rollup_keys = args[:variant_rollup_keys] if args.key?(:variant_rollup_keys)
2472
+ @visitor_id = args[:visitor_id] if args.key?(:visitor_id)
2473
+ end
2474
+ end
2475
+
2476
+ # Boost specification to boost certain items.
2477
+ class GoogleCloudRetailV2SearchRequestBoostSpec
2478
+ include Google::Apis::Core::Hashable
2479
+
2480
+ # Condition boost specifications. If a product matches multiple conditions in
2481
+ # the specifictions, boost scores from these specifications are all applied and
2482
+ # combined in a non-linear way. Maximum number of specifications is 10.
2483
+ # Corresponds to the JSON property `conditionBoostSpecs`
2484
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2SearchRequestBoostSpecConditionBoostSpec>]
2485
+ attr_accessor :condition_boost_specs
2486
+
2487
+ def initialize(**args)
2488
+ update!(**args)
2489
+ end
2490
+
2491
+ # Update properties of this object
2492
+ def update!(**args)
2493
+ @condition_boost_specs = args[:condition_boost_specs] if args.key?(:condition_boost_specs)
2494
+ end
2495
+ end
2496
+
2497
+ # Boost applies to products which match a condition.
2498
+ class GoogleCloudRetailV2SearchRequestBoostSpecConditionBoostSpec
2499
+ include Google::Apis::Core::Hashable
2500
+
2501
+ # Strength of the condition boost, which should be in [-1, 1]. Negative boost
2502
+ # means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion.
2503
+ # However, it does not necessarily mean that the boosted item will be the top
2504
+ # result at all times, nor that other items will be excluded. Results could
2505
+ # still be shown even when none of them matches the condition. And results that
2506
+ # are significantly more relevant to the search query can still trump your
2507
+ # heavily favored but irrelevant items. Setting to -1.0 gives the item a big
2508
+ # demotion. However, results that are deeply relevant might still be shown. The
2509
+ # item will have an upstream battle to get a fairly high ranking, but it is not
2510
+ # blocked out completely. Setting to 0.0 means no boost applied. The boosting
2511
+ # condition is ignored.
2512
+ # Corresponds to the JSON property `boost`
2513
+ # @return [Float]
2514
+ attr_accessor :boost
2515
+
2516
+ # An expression which specifies a boost condition. The syntax and supported
2517
+ # fields are the same as a filter expression. See SearchRequest.filter for
2518
+ # detail syntax and limitations. Examples: * To boost products with product ID "
2519
+ # product_1" or "product_2", and color "Red" or "Blue": * (id: ANY("product_1", "
2520
+ # product_2")) AND (colorFamilies: ANY("Red","Blue"))
2521
+ # Corresponds to the JSON property `condition`
2522
+ # @return [String]
2523
+ attr_accessor :condition
2524
+
2525
+ def initialize(**args)
2526
+ update!(**args)
2527
+ end
2528
+
2529
+ # Update properties of this object
2530
+ def update!(**args)
2531
+ @boost = args[:boost] if args.key?(:boost)
2532
+ @condition = args[:condition] if args.key?(:condition)
2533
+ end
2534
+ end
2535
+
2536
+ # The specifications of dynamically generated facets.
2537
+ class GoogleCloudRetailV2SearchRequestDynamicFacetSpec
2538
+ include Google::Apis::Core::Hashable
2539
+
2540
+ # Mode of the DynamicFacet feature. Defaults to Mode.DISABLED if it's unset.
2541
+ # Corresponds to the JSON property `mode`
2542
+ # @return [String]
2543
+ attr_accessor :mode
2544
+
2545
+ def initialize(**args)
2546
+ update!(**args)
2547
+ end
2548
+
2549
+ # Update properties of this object
2550
+ def update!(**args)
2551
+ @mode = args[:mode] if args.key?(:mode)
2552
+ end
2553
+ end
2554
+
2555
+ # A facet specification to perform faceted search.
2556
+ class GoogleCloudRetailV2SearchRequestFacetSpec
2557
+ include Google::Apis::Core::Hashable
2558
+
2559
+ # Enables dynamic position for this facet. If set to true, the position of this
2560
+ # facet among all facets in the response is determined by Google Retail Search.
2561
+ # It will be ordered together with dynamic facets if dynamic facets is enabled.
2562
+ # If set to false, the position of this facet in the response will be the same
2563
+ # as in the request, and it will be ranked before the facets with dynamic
2564
+ # position enable and all dynamic facets. For example, you may always want to
2565
+ # have rating facet returned in the response, but it's not necessarily to always
2566
+ # display the rating facet at the top. In that case, you can set
2567
+ # enable_dynamic_position to true so that the position of rating facet in
2568
+ # response will be determined by Google Retail Search. Another example, assuming
2569
+ # you have the following facets in the request: * "rating",
2570
+ # enable_dynamic_position = true * "price", enable_dynamic_position = false * "
2571
+ # brands", enable_dynamic_position = false And also you have a dynamic facets
2572
+ # enable, which will generate a facet 'gender'. Then the final order of the
2573
+ # facets in the response can be ("price", "brands", "rating", "gender") or ("
2574
+ # price", "brands", "gender", "rating") depends on how Google Retail Search
2575
+ # orders "gender" and "rating" facets. However, notice that "price" and "brands"
2576
+ # will always be ranked at 1st and 2nd position since their
2577
+ # enable_dynamic_position are false.
2578
+ # Corresponds to the JSON property `enableDynamicPosition`
2579
+ # @return [Boolean]
2580
+ attr_accessor :enable_dynamic_position
2581
+ alias_method :enable_dynamic_position?, :enable_dynamic_position
2582
+
2583
+ # List of keys to exclude when faceting. By default, FacetKey.key is not
2584
+ # excluded from the filter unless it is listed in this field. For example,
2585
+ # suppose there are 100 products with color facet "Red" and 200 products with
2586
+ # color facet "Blue". A query containing the filter "colorFamilies:ANY("Red")"
2587
+ # and have "colorFamilies" as FacetKey.key will by default return the "Red" with
2588
+ # count 100. If this field contains "colorFamilies", then the query returns both
2589
+ # the "Red" with count 100 and "Blue" with count 200, because the "colorFamilies"
2590
+ # key is now excluded from the filter. A maximum of 100 values are allowed.
2591
+ # Otherwise, an INVALID_ARGUMENT error is returned.
2592
+ # Corresponds to the JSON property `excludedFilterKeys`
2593
+ # @return [Array<String>]
2594
+ attr_accessor :excluded_filter_keys
2595
+
2596
+ # Specifies how a facet is computed.
2597
+ # Corresponds to the JSON property `facetKey`
2598
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2SearchRequestFacetSpecFacetKey]
2599
+ attr_accessor :facet_key
2600
+
2601
+ # Maximum of facet values that should be returned for this facet. If unspecified,
2602
+ # defaults to 20. The maximum allowed value is 300. Values above 300 will be
2603
+ # coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned.
2604
+ # Corresponds to the JSON property `limit`
2605
+ # @return [Fixnum]
2606
+ attr_accessor :limit
2607
+
2608
+ def initialize(**args)
2609
+ update!(**args)
2610
+ end
2611
+
2612
+ # Update properties of this object
2613
+ def update!(**args)
2614
+ @enable_dynamic_position = args[:enable_dynamic_position] if args.key?(:enable_dynamic_position)
2615
+ @excluded_filter_keys = args[:excluded_filter_keys] if args.key?(:excluded_filter_keys)
2616
+ @facet_key = args[:facet_key] if args.key?(:facet_key)
2617
+ @limit = args[:limit] if args.key?(:limit)
2618
+ end
2619
+ end
2620
+
2621
+ # Specifies how a facet is computed.
2622
+ class GoogleCloudRetailV2SearchRequestFacetSpecFacetKey
2623
+ include Google::Apis::Core::Hashable
2624
+
2625
+ # Only get facet values that contains the given strings. For example, suppose "
2626
+ # categories" has three values "Women > Shoe", "Women > Dress" and "Men > Shoe".
2627
+ # If set "contains" to "Shoe", the "categories" facet will give only "Women >
2628
+ # Shoe" and "Men > Shoe". Only supported on textual fields. Maximum is 10.
2629
+ # Corresponds to the JSON property `contains`
2630
+ # @return [Array<String>]
2631
+ attr_accessor :contains
2632
+
2633
+ # Set only if values should be bucketized into intervals. Must be set for facets
2634
+ # with numerical values. Must not be set for facet with text values. Maximum
2635
+ # number of intervals is 30.
2636
+ # Corresponds to the JSON property `intervals`
2637
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2Interval>]
2638
+ attr_accessor :intervals
2639
+
2640
+ # Required. Supported textual and numerical facet keys in Product object, over
2641
+ # which the facet values are computed. Facet key is case-sensitive. Allowed
2642
+ # facet keys when FacetKey.query is not specified: * textual_field = * "brands" *
2643
+ # "categories" * "genders" * "ageGroups" * "availability" * "colorFamilies" * "
2644
+ # colors" * "sizes" * "materials" * "patterns" * "conditions" * "attributes.key"
2645
+ # * "pickupInStore" * "shipToStore" * "sameDayDelivery" * "nextDayDelivery" * "
2646
+ # customFulfillment1" * "customFulfillment2" * "customFulfillment3" * "
2647
+ # customFulfillment4" * "customFulfillment5" * numerical_field = * "price" * "
2648
+ # discount" * "rating" * "ratingCount" * "attributes.key"
2649
+ # Corresponds to the JSON property `key`
2650
+ # @return [String]
2651
+ attr_accessor :key
2652
+
2653
+ # The order in which Facet.values are returned. Allowed values are: * "count
2654
+ # desc", which means order by Facet.FacetValue.count descending. * "value desc",
2655
+ # which means order by Facet.FacetValue.value descending. Only applies to
2656
+ # textual facets. If not set, textual values are sorted in [natural order](https:
2657
+ # //en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in
2658
+ # the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.place_ids are
2659
+ # sorted in the order given by FacetSpec.FacetKey.restricted_values.
2660
+ # Corresponds to the JSON property `orderBy`
2661
+ # @return [String]
2662
+ attr_accessor :order_by
2663
+
2664
+ # Only get facet values that start with the given string prefix. For example,
2665
+ # suppose "categories" has three values "Women > Shoe", "Women > Dress" and "Men
2666
+ # > Shoe". If set "prefixes" to "Women", the "categories" facet will give only "
2667
+ # Women > Shoe" and "Women > Dress". Only supported on textual fields. Maximum
2668
+ # is 10.
2669
+ # Corresponds to the JSON property `prefixes`
2670
+ # @return [Array<String>]
2671
+ attr_accessor :prefixes
2672
+
2673
+ # The query that is used to compute facet for the given facet key. When provided,
2674
+ # it will override the default behavior of facet computation. The query syntax
2675
+ # is the same as a filter expression. See SearchRequest.filter for detail syntax
2676
+ # and limitations. Notice that there is no limitation on FacetKey.key when query
2677
+ # is specified. In the response, FacetValue.value will be always "1" and
2678
+ # FacetValue.count will be the number of results that matches the query. For
2679
+ # example, you can set a customized facet for "shipToStore", where FacetKey.key
2680
+ # is "customizedShipToStore", and FacetKey.query is "availability: ANY(\"
2681
+ # IN_STOCK\") AND shipToStore: ANY(\"123\")". Then the facet will count the
2682
+ # products that are both in stock and ship to store "123".
2683
+ # Corresponds to the JSON property `query`
2684
+ # @return [String]
2685
+ attr_accessor :query
2686
+
2687
+ # Only get facet for the given restricted values. For example, when using "
2688
+ # pickupInStore" as key and set restricted values to ["store123", "store456"],
2689
+ # only facets for "store123" and "store456" are returned. Only supported on
2690
+ # textual fields and fulfillments. Maximum is 20. Must be set for the
2691
+ # fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery *
2692
+ # nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3
2693
+ # * customFulfillment4 * customFulfillment5
2694
+ # Corresponds to the JSON property `restrictedValues`
2695
+ # @return [Array<String>]
2696
+ attr_accessor :restricted_values
2697
+
2698
+ def initialize(**args)
2699
+ update!(**args)
2700
+ end
2701
+
2702
+ # Update properties of this object
2703
+ def update!(**args)
2704
+ @contains = args[:contains] if args.key?(:contains)
2705
+ @intervals = args[:intervals] if args.key?(:intervals)
2706
+ @key = args[:key] if args.key?(:key)
2707
+ @order_by = args[:order_by] if args.key?(:order_by)
2708
+ @prefixes = args[:prefixes] if args.key?(:prefixes)
2709
+ @query = args[:query] if args.key?(:query)
2710
+ @restricted_values = args[:restricted_values] if args.key?(:restricted_values)
2711
+ end
2712
+ end
2713
+
2714
+ # Specification to determine under which conditions query expansion should occur.
2715
+ class GoogleCloudRetailV2SearchRequestQueryExpansionSpec
2716
+ include Google::Apis::Core::Hashable
2717
+
2718
+ # The condition under which query expansion should occur. Default to Condition.
2719
+ # DISABLED.
2720
+ # Corresponds to the JSON property `condition`
2721
+ # @return [String]
2722
+ attr_accessor :condition
2723
+
2724
+ # Whether to pin unexpanded results. If this field is set to true, unexpanded
2725
+ # products are always at the top of the search results, followed by the expanded
2726
+ # results.
2727
+ # Corresponds to the JSON property `pinUnexpandedResults`
2728
+ # @return [Boolean]
2729
+ attr_accessor :pin_unexpanded_results
2730
+ alias_method :pin_unexpanded_results?, :pin_unexpanded_results
2731
+
2732
+ def initialize(**args)
2733
+ update!(**args)
2734
+ end
2735
+
2736
+ # Update properties of this object
2737
+ def update!(**args)
2738
+ @condition = args[:condition] if args.key?(:condition)
2739
+ @pin_unexpanded_results = args[:pin_unexpanded_results] if args.key?(:pin_unexpanded_results)
2740
+ end
2741
+ end
2742
+
2743
+ # Response message for SearchService.Search method.
2744
+ class GoogleCloudRetailV2SearchResponse
2745
+ include Google::Apis::Core::Hashable
2746
+
2747
+ # A unique search token. This should be included in the UserEvent logs resulting
2748
+ # from this search, which enables accurate attribution of search model
2749
+ # performance.
2750
+ # Corresponds to the JSON property `attributionToken`
2751
+ # @return [String]
2752
+ attr_accessor :attribution_token
2753
+
2754
+ # If spell correction applies, the corrected query. Otherwise, empty.
2755
+ # Corresponds to the JSON property `correctedQuery`
2756
+ # @return [String]
2757
+ attr_accessor :corrected_query
2758
+
2759
+ # Results of facets requested by user.
2760
+ # Corresponds to the JSON property `facets`
2761
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2SearchResponseFacet>]
2762
+ attr_accessor :facets
2763
+
2764
+ # A token that can be sent as SearchRequest.page_token to retrieve the next page.
2765
+ # If this field is omitted, there are no subsequent pages.
2766
+ # Corresponds to the JSON property `nextPageToken`
2767
+ # @return [String]
2768
+ attr_accessor :next_page_token
2769
+
2770
+ # Information describing query expansion including whether expansion has
2771
+ # occurred.
2772
+ # Corresponds to the JSON property `queryExpansionInfo`
2773
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2SearchResponseQueryExpansionInfo]
2774
+ attr_accessor :query_expansion_info
2775
+
2776
+ # The URI of a customer-defined redirect page. If redirect action is triggered,
2777
+ # no search will be performed, and only redirect_uri and attribution_token will
2778
+ # be set in the response.
2779
+ # Corresponds to the JSON property `redirectUri`
2780
+ # @return [String]
2781
+ attr_accessor :redirect_uri
2782
+
2783
+ # A list of matched items. The order represents the ranking.
2784
+ # Corresponds to the JSON property `results`
2785
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2SearchResponseSearchResult>]
2786
+ attr_accessor :results
2787
+
2788
+ # The estimated total count of matched items irrespective of pagination. The
2789
+ # count of results returned by pagination may be less than the total_size that
2790
+ # matches.
2791
+ # Corresponds to the JSON property `totalSize`
2792
+ # @return [Fixnum]
2793
+ attr_accessor :total_size
2794
+
2795
+ def initialize(**args)
2796
+ update!(**args)
2797
+ end
2798
+
2799
+ # Update properties of this object
2800
+ def update!(**args)
2801
+ @attribution_token = args[:attribution_token] if args.key?(:attribution_token)
2802
+ @corrected_query = args[:corrected_query] if args.key?(:corrected_query)
2803
+ @facets = args[:facets] if args.key?(:facets)
2804
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2805
+ @query_expansion_info = args[:query_expansion_info] if args.key?(:query_expansion_info)
2806
+ @redirect_uri = args[:redirect_uri] if args.key?(:redirect_uri)
2807
+ @results = args[:results] if args.key?(:results)
2808
+ @total_size = args[:total_size] if args.key?(:total_size)
2809
+ end
2810
+ end
2811
+
2812
+ # A facet result.
2813
+ class GoogleCloudRetailV2SearchResponseFacet
2814
+ include Google::Apis::Core::Hashable
2815
+
2816
+ # Whether the facet is dynamically generated.
2817
+ # Corresponds to the JSON property `dynamicFacet`
2818
+ # @return [Boolean]
2819
+ attr_accessor :dynamic_facet
2820
+ alias_method :dynamic_facet?, :dynamic_facet
2821
+
2822
+ # The key for this facet. E.g., "colorFamilies" or "price" or "attributes.attr1".
2823
+ # Corresponds to the JSON property `key`
2824
+ # @return [String]
2825
+ attr_accessor :key
2826
+
2827
+ # The facet values for this field.
2828
+ # Corresponds to the JSON property `values`
2829
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2SearchResponseFacetFacetValue>]
2830
+ attr_accessor :values
2831
+
2832
+ def initialize(**args)
2833
+ update!(**args)
2834
+ end
2835
+
2836
+ # Update properties of this object
2837
+ def update!(**args)
2838
+ @dynamic_facet = args[:dynamic_facet] if args.key?(:dynamic_facet)
2839
+ @key = args[:key] if args.key?(:key)
2840
+ @values = args[:values] if args.key?(:values)
2841
+ end
2842
+ end
2843
+
2844
+ # A facet value which contains value names and their count.
2845
+ class GoogleCloudRetailV2SearchResponseFacetFacetValue
2846
+ include Google::Apis::Core::Hashable
2847
+
2848
+ # Number of items that have this facet value.
2849
+ # Corresponds to the JSON property `count`
2850
+ # @return [Fixnum]
2851
+ attr_accessor :count
2852
+
2853
+ # A floating point interval.
2854
+ # Corresponds to the JSON property `interval`
2855
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Interval]
2856
+ attr_accessor :interval
2857
+
2858
+ # Text value of a facet, such as "Black" for facet "colorFamilies".
2859
+ # Corresponds to the JSON property `value`
2860
+ # @return [String]
2861
+ attr_accessor :value
2862
+
2863
+ def initialize(**args)
2864
+ update!(**args)
2865
+ end
2866
+
2867
+ # Update properties of this object
2868
+ def update!(**args)
2869
+ @count = args[:count] if args.key?(:count)
2870
+ @interval = args[:interval] if args.key?(:interval)
2871
+ @value = args[:value] if args.key?(:value)
2872
+ end
2873
+ end
2874
+
2875
+ # Information describing query expansion including whether expansion has
2876
+ # occurred.
2877
+ class GoogleCloudRetailV2SearchResponseQueryExpansionInfo
2878
+ include Google::Apis::Core::Hashable
2879
+
2880
+ # Bool describing whether query expansion has occurred.
2881
+ # Corresponds to the JSON property `expandedQuery`
2882
+ # @return [Boolean]
2883
+ attr_accessor :expanded_query
2884
+ alias_method :expanded_query?, :expanded_query
2885
+
2886
+ # Number of pinned results. This field will only be set when expansion happens
2887
+ # and SearchRequest.QueryExpansionSpec.pin_unexpanded_results is set to true.
2888
+ # Corresponds to the JSON property `pinnedResultCount`
2889
+ # @return [Fixnum]
2890
+ attr_accessor :pinned_result_count
2891
+
2892
+ def initialize(**args)
2893
+ update!(**args)
2894
+ end
2895
+
2896
+ # Update properties of this object
2897
+ def update!(**args)
2898
+ @expanded_query = args[:expanded_query] if args.key?(:expanded_query)
2899
+ @pinned_result_count = args[:pinned_result_count] if args.key?(:pinned_result_count)
2900
+ end
2901
+ end
2902
+
2903
+ # Represents the search results.
2904
+ class GoogleCloudRetailV2SearchResponseSearchResult
2905
+ include Google::Apis::Core::Hashable
2906
+
2907
+ # Product.id of the searched Product.
2908
+ # Corresponds to the JSON property `id`
2909
+ # @return [String]
2910
+ attr_accessor :id
2911
+
2912
+ # The count of matched variant Products.
2913
+ # Corresponds to the JSON property `matchingVariantCount`
2914
+ # @return [Fixnum]
2915
+ attr_accessor :matching_variant_count
2916
+
2917
+ # If a variant Product matches the search query, this map indicates which
2918
+ # Product fields are matched. The key is the Product.name, the value is a field
2919
+ # mask of the matched Product fields. If matched attributes cannot be determined,
2920
+ # this map will be empty. For example, a key "sku1" with field mask "products.
2921
+ # color_info" indicates there is a match between "sku1" ColorInfo and the query.
2922
+ # Corresponds to the JSON property `matchingVariantFields`
2923
+ # @return [Hash<String,String>]
2924
+ attr_accessor :matching_variant_fields
2925
+
2926
+ # Product captures all metadata information of items to be recommended or
2927
+ # searched.
2928
+ # Corresponds to the JSON property `product`
2929
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Product]
2930
+ attr_accessor :product
2931
+
2932
+ # The rollup matching variant Product attributes. The key is one of the
2933
+ # SearchRequest.variant_rollup_keys. The values are the merged and de-duplicated
2934
+ # Product attributes. Notice that the rollup values are respect filter. For
2935
+ # example, when filtering by "colorFamilies:ANY(\"red\")" and rollup "
2936
+ # colorFamilies", only "red" is returned. For textual and numerical attributes,
2937
+ # the rollup values is a list of string or double values with type google.
2938
+ # protobuf.ListValue. For example, if there are two variants with colors "red"
2939
+ # and "blue", the rollup values are ` key: "colorFamilies" value ` list_value `
2940
+ # values ` string_value: "red" ` values ` string_value: "blue" ` ` ` ` For
2941
+ # FulfillmentInfo, the rollup values is a double value with type google.protobuf.
2942
+ # Value. For example, ``key: "pickupInStore.store1" value ` number_value: 10 ```
2943
+ # means a there are 10 variants in this product are available in the store "
2944
+ # store1".
2945
+ # Corresponds to the JSON property `variantRollupValues`
2946
+ # @return [Hash<String,Object>]
2947
+ attr_accessor :variant_rollup_values
2948
+
2949
+ def initialize(**args)
2950
+ update!(**args)
2951
+ end
2952
+
2953
+ # Update properties of this object
2954
+ def update!(**args)
2955
+ @id = args[:id] if args.key?(:id)
2956
+ @matching_variant_count = args[:matching_variant_count] if args.key?(:matching_variant_count)
2957
+ @matching_variant_fields = args[:matching_variant_fields] if args.key?(:matching_variant_fields)
2958
+ @product = args[:product] if args.key?(:product)
2959
+ @variant_rollup_values = args[:variant_rollup_values] if args.key?(:variant_rollup_values)
2960
+ end
2961
+ end
2962
+
2963
+ # Request message to set a specified branch as new default_branch.
2964
+ class GoogleCloudRetailV2SetDefaultBranchRequest
2965
+ include Google::Apis::Core::Hashable
2966
+
2967
+ # The final component of the resource name of a branch. This field must be one
2968
+ # of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT error is returned.
2969
+ # Corresponds to the JSON property `branchId`
2970
+ # @return [String]
2971
+ attr_accessor :branch_id
2972
+
2973
+ # Some note on this request, this can be retrieved by CatalogService.
2974
+ # GetDefaultBranch before next valid default branch set occurs. This field must
2975
+ # be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise,
2976
+ # an INVALID_ARGUMENT error is returned.
2977
+ # Corresponds to the JSON property `note`
2978
+ # @return [String]
2979
+ attr_accessor :note
1306
2980
 
1307
2981
  def initialize(**args)
1308
2982
  update!(**args)
@@ -1310,12 +2984,15 @@ module Google
1310
2984
 
1311
2985
  # Update properties of this object
1312
2986
  def update!(**args)
1313
- @purged_events_count = args[:purged_events_count] if args.key?(:purged_events_count)
2987
+ @branch_id = args[:branch_id] if args.key?(:branch_id)
2988
+ @note = args[:note] if args.key?(:note)
1314
2989
  end
1315
2990
  end
1316
2991
 
1317
- # Metadata for RejoinUserEvents method.
1318
- class GoogleCloudRetailV2RejoinUserEventsMetadata
2992
+ # Metadata related to the progress of the SetInventory operation. Currently
2993
+ # empty because there is no meaningful metadata populated from the SetInventory
2994
+ # method.
2995
+ class GoogleCloudRetailV2SetInventoryMetadata
1319
2996
  include Google::Apis::Core::Hashable
1320
2997
 
1321
2998
  def initialize(**args)
@@ -1327,17 +3004,39 @@ module Google
1327
3004
  end
1328
3005
  end
1329
3006
 
1330
- # Request message for RejoinUserEvents method.
1331
- class GoogleCloudRetailV2RejoinUserEventsRequest
3007
+ # Request message for SetInventory method.
3008
+ class GoogleCloudRetailV2SetInventoryRequest
1332
3009
  include Google::Apis::Core::Hashable
1333
3010
 
1334
- # The type of the user event rejoin to define the scope and range of the user
1335
- # events to be rejoined with the latest product catalog. Defaults to
1336
- # USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an
1337
- # invalid integer value.
1338
- # Corresponds to the JSON property `userEventRejoinScope`
3011
+ # If set to true, and the Product with name Product.name is not found, the
3012
+ # inventory update will still be processed and retained for at most 1 day until
3013
+ # the Product is created. If set to false, an INVALID_ARGUMENT error is returned
3014
+ # if the Product is not found.
3015
+ # Corresponds to the JSON property `allowMissing`
3016
+ # @return [Boolean]
3017
+ attr_accessor :allow_missing
3018
+ alias_method :allow_missing?, :allow_missing
3019
+
3020
+ # Product captures all metadata information of items to be recommended or
3021
+ # searched.
3022
+ # Corresponds to the JSON property `inventory`
3023
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Product]
3024
+ attr_accessor :inventory
3025
+
3026
+ # Indicates which inventory fields in the provided Product to update. If not set
3027
+ # or set with empty paths, all inventory fields will be updated. If an
3028
+ # unsupported or unknown field is provided, an INVALID_ARGUMENT error is
3029
+ # returned and the entire update will be ignored.
3030
+ # Corresponds to the JSON property `setMask`
1339
3031
  # @return [String]
1340
- attr_accessor :user_event_rejoin_scope
3032
+ attr_accessor :set_mask
3033
+
3034
+ # The time when the request is issued, used to prevent out-of-order updates on
3035
+ # inventory fields with the last update time recorded. If not provided, the
3036
+ # internal system time will be used.
3037
+ # Corresponds to the JSON property `setTime`
3038
+ # @return [String]
3039
+ attr_accessor :set_time
1341
3040
 
1342
3041
  def initialize(**args)
1343
3042
  update!(**args)
@@ -1345,26 +3044,24 @@ module Google
1345
3044
 
1346
3045
  # Update properties of this object
1347
3046
  def update!(**args)
1348
- @user_event_rejoin_scope = args[:user_event_rejoin_scope] if args.key?(:user_event_rejoin_scope)
3047
+ @allow_missing = args[:allow_missing] if args.key?(:allow_missing)
3048
+ @inventory = args[:inventory] if args.key?(:inventory)
3049
+ @set_mask = args[:set_mask] if args.key?(:set_mask)
3050
+ @set_time = args[:set_time] if args.key?(:set_time)
1349
3051
  end
1350
3052
  end
1351
3053
 
1352
- # Response message for RejoinUserEvents method.
1353
- class GoogleCloudRetailV2RejoinUserEventsResponse
3054
+ # Response of the SetInventoryRequest. Currently empty because there is no
3055
+ # meaningful response populated from the SetInventory method.
3056
+ class GoogleCloudRetailV2SetInventoryResponse
1354
3057
  include Google::Apis::Core::Hashable
1355
3058
 
1356
- # Number of user events that were joined with latest product catalog.
1357
- # Corresponds to the JSON property `rejoinedUserEventsCount`
1358
- # @return [Fixnum]
1359
- attr_accessor :rejoined_user_events_count
1360
-
1361
3059
  def initialize(**args)
1362
3060
  update!(**args)
1363
3061
  end
1364
3062
 
1365
3063
  # Update properties of this object
1366
3064
  def update!(**args)
1367
- @rejoined_user_events_count = args[:rejoined_user_events_count] if args.key?(:rejoined_user_events_count)
1368
3065
  end
1369
3066
  end
1370
3067
 
@@ -1386,18 +3083,19 @@ module Google
1386
3083
  # Highly recommended for user events that are the result of PredictionService.
1387
3084
  # Predict. This field enables accurate attribution of recommendation model
1388
3085
  # performance. The value must be a valid PredictResponse.attribution_token for
1389
- # user events that are the result of PredictionService.Predict. This token
1390
- # enables us to accurately attribute page view or purchase back to the event and
1391
- # the particular predict response containing this clicked/purchased product. If
1392
- # user clicks on product K in the recommendation results, pass PredictResponse.
1393
- # attribution_token as a URL parameter to product K's page. When recording
1394
- # events on product K's page, log the PredictResponse.attribution_token to this
1395
- # field.
3086
+ # user events that are the result of PredictionService.Predict. The value must
3087
+ # be a valid SearchResponse.attribution_token for user events that are the
3088
+ # result of SearchService.Search. This token enables us to accurately attribute
3089
+ # page view or purchase back to the event and the particular predict response
3090
+ # containing this clicked/purchased product. If user clicks on product K in the
3091
+ # recommendation results, pass PredictResponse.attribution_token as a URL
3092
+ # parameter to product K's page. When recording events on product K's page, log
3093
+ # the PredictResponse.attribution_token to this field.
1396
3094
  # Corresponds to the JSON property `attributionToken`
1397
3095
  # @return [String]
1398
3096
  attr_accessor :attribution_token
1399
3097
 
1400
- # The id or name of the associated shopping cart. This id is used to associate
3098
+ # The ID or name of the associated shopping cart. This ID is used to associate
1401
3099
  # multiple items added or present in the cart before purchase. This can only be
1402
3100
  # set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view`
1403
3101
  # events.
@@ -1405,6 +3103,12 @@ module Google
1405
3103
  # @return [String]
1406
3104
  attr_accessor :cart_id
1407
3105
 
3106
+ # Detailed completion information including completion attribution token and
3107
+ # clicked completion info.
3108
+ # Corresponds to the JSON property `completionDetail`
3109
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2CompletionDetail]
3110
+ attr_accessor :completion_detail
3111
+
1408
3112
  # Only required for UserEventService.ImportUserEvents method. Timestamp of when
1409
3113
  # the user event happened.
1410
3114
  # Corresponds to the JSON property `eventTime`
@@ -1431,6 +3135,34 @@ module Google
1431
3135
  # @return [Array<String>]
1432
3136
  attr_accessor :experiment_ids
1433
3137
 
3138
+ # The filter syntax consists of an expression language for constructing a
3139
+ # predicate from one or more fields of the products being filtered. See
3140
+ # SearchRequest.filter for definition and syntax. The value must be a UTF-8
3141
+ # encoded string with a length limit of 1,000 characters. Otherwise, an
3142
+ # INVALID_ARGUMENT error is returned.
3143
+ # Corresponds to the JSON property `filter`
3144
+ # @return [String]
3145
+ attr_accessor :filter
3146
+
3147
+ # An integer that specifies the current offset for pagination (the 0-indexed
3148
+ # starting location, amongst the products deemed by the API as relevant). See
3149
+ # SearchRequest.offset for definition. If this field is negative, an
3150
+ # INVALID_ARGUMENT is returned. This can only be set for `search` events. Other
3151
+ # event types should not set this field. Otherwise, an INVALID_ARGUMENT error is
3152
+ # returned.
3153
+ # Corresponds to the JSON property `offset`
3154
+ # @return [Fixnum]
3155
+ attr_accessor :offset
3156
+
3157
+ # The order in which products are returned. See SearchRequest.order_by for
3158
+ # definition and syntax. The value must be a UTF-8 encoded string with a length
3159
+ # limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
3160
+ # This can only be set for `search` events. Other event types should not set
3161
+ # this field. Otherwise, an INVALID_ARGUMENT error is returned.
3162
+ # Corresponds to the JSON property `orderBy`
3163
+ # @return [String]
3164
+ attr_accessor :order_by
3165
+
1434
3166
  # The categories associated with a category page. To represent full path of
1435
3167
  # category, use '>' sign to separate different hierarchies. If '>' is part of
1436
3168
  # the category name, please replace it with other character(s). Category pages
@@ -1444,7 +3176,7 @@ module Google
1444
3176
  # @return [Array<String>]
1445
3177
  attr_accessor :page_categories
1446
3178
 
1447
- # A unique id of a web page view. This should be kept the same for all user
3179
+ # A unique ID of a web page view. This should be kept the same for all user
1448
3180
  # events triggered from the same pageview. For example, an item detail page view
1449
3181
  # could trigger multiple events as the user is browsing the page. The `
1450
3182
  # pageViewId` property should be kept the same for all these events so that they
@@ -1458,11 +3190,11 @@ module Google
1458
3190
  # The main product details related to the event. This field is required for the
1459
3191
  # following event types: * `add-to-cart` * `detail-page-view` * `purchase-
1460
3192
  # complete` In a `search` event, this field represents the products returned to
1461
- # the end user on the current page (the end user may have not finished broswing
3193
+ # the end user on the current page (the end user may have not finished browsing
1462
3194
  # the whole page yet). When a new page is returned to the end user, after
1463
3195
  # pagination/filtering/ordering even for the same query, a new `search` event
1464
3196
  # with different product_details is desired. The end user may have not finished
1465
- # broswing the whole page yet.
3197
+ # browsing the whole page yet.
1466
3198
  # Corresponds to the JSON property `productDetails`
1467
3199
  # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2ProductDetail>]
1468
3200
  attr_accessor :product_details
@@ -1479,15 +3211,24 @@ module Google
1479
3211
  # @return [String]
1480
3212
  attr_accessor :referrer_uri
1481
3213
 
1482
- # The user's search query. The value must be a UTF-8 encoded string with a
1483
- # length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is
1484
- # returned. At least one of search_query or page_categories is required for `
1485
- # search` events. Other event types should not set this field. Otherwise, an
1486
- # INVALID_ARGUMENT error is returned.
3214
+ # The user's search query. See SearchRequest.query for definition. The value
3215
+ # must be a UTF-8 encoded string with a length limit of 5,000 characters.
3216
+ # Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query
3217
+ # or page_categories is required for `search` events. Other event types should
3218
+ # not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
1487
3219
  # Corresponds to the JSON property `searchQuery`
1488
3220
  # @return [String]
1489
3221
  attr_accessor :search_query
1490
3222
 
3223
+ # A unique identifier for tracking a visitor session with a length limit of 128
3224
+ # bytes. A session is an aggregation of an end user behavior in a time span. A
3225
+ # general guideline to populate the sesion_id: 1. If user has no activity for 30
3226
+ # min, a new session_id should be assigned. 2. The session_id should be unique
3227
+ # across users, suggest use uuid or add visitor_id as prefix.
3228
+ # Corresponds to the JSON property `sessionId`
3229
+ # @return [String]
3230
+ attr_accessor :session_id
3231
+
1491
3232
  # Complete URL (window.location.href) of the user's current page. When using the
1492
3233
  # client side event reporting with JavaScript pixel and Google Tag Manager, this
1493
3234
  # value is filled in automatically. Maximum length 5,000 characters.
@@ -1521,15 +3262,20 @@ module Google
1521
3262
  @attributes = args[:attributes] if args.key?(:attributes)
1522
3263
  @attribution_token = args[:attribution_token] if args.key?(:attribution_token)
1523
3264
  @cart_id = args[:cart_id] if args.key?(:cart_id)
3265
+ @completion_detail = args[:completion_detail] if args.key?(:completion_detail)
1524
3266
  @event_time = args[:event_time] if args.key?(:event_time)
1525
3267
  @event_type = args[:event_type] if args.key?(:event_type)
1526
3268
  @experiment_ids = args[:experiment_ids] if args.key?(:experiment_ids)
3269
+ @filter = args[:filter] if args.key?(:filter)
3270
+ @offset = args[:offset] if args.key?(:offset)
3271
+ @order_by = args[:order_by] if args.key?(:order_by)
1527
3272
  @page_categories = args[:page_categories] if args.key?(:page_categories)
1528
3273
  @page_view_id = args[:page_view_id] if args.key?(:page_view_id)
1529
3274
  @product_details = args[:product_details] if args.key?(:product_details)
1530
3275
  @purchase_transaction = args[:purchase_transaction] if args.key?(:purchase_transaction)
1531
3276
  @referrer_uri = args[:referrer_uri] if args.key?(:referrer_uri)
1532
3277
  @search_query = args[:search_query] if args.key?(:search_query)
3278
+ @session_id = args[:session_id] if args.key?(:session_id)
1533
3279
  @uri = args[:uri] if args.key?(:uri)
1534
3280
  @user_info = args[:user_info] if args.key?(:user_info)
1535
3281
  @visitor_id = args[:visitor_id] if args.key?(:visitor_id)
@@ -1628,7 +3374,7 @@ module Google
1628
3374
  attr_accessor :direct_user_request
1629
3375
  alias_method :direct_user_request?, :direct_user_request
1630
3376
 
1631
- # The end user's IP address. Required for getting SearchRespons.
3377
+ # The end user's IP address. Required for getting SearchResponse.
1632
3378
  # sponsored_results. This field is used to extract location information for
1633
3379
  # personalization. This field must be either an IPv4 address (e.g. "104.133.9.80"
1634
3380
  # ) or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334").
@@ -1639,7 +3385,7 @@ module Google
1639
3385
  # @return [String]
1640
3386
  attr_accessor :ip_address
1641
3387
 
1642
- # User agent as included in the HTTP header. Required for getting SearchRespons.
3388
+ # User agent as included in the HTTP header. Required for getting SearchResponse.
1643
3389
  # sponsored_results. The field must be a UTF-8 encoded string with a length
1644
3390
  # limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
1645
3391
  # This should not be set when using the client side event reporting with GTM or
@@ -1669,6 +3415,49 @@ module Google
1669
3415
  end
1670
3416
  end
1671
3417
 
3418
+ # Metadata related to the progress of the AddFulfillmentPlaces operation.
3419
+ # Currently empty because there is no meaningful metadata populated from the
3420
+ # AddFulfillmentPlaces method.
3421
+ class GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata
3422
+ include Google::Apis::Core::Hashable
3423
+
3424
+ def initialize(**args)
3425
+ update!(**args)
3426
+ end
3427
+
3428
+ # Update properties of this object
3429
+ def update!(**args)
3430
+ end
3431
+ end
3432
+
3433
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
3434
+ # is no meaningful response populated from the AddFulfillmentPlaces method.
3435
+ class GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse
3436
+ include Google::Apis::Core::Hashable
3437
+
3438
+ def initialize(**args)
3439
+ update!(**args)
3440
+ end
3441
+
3442
+ # Update properties of this object
3443
+ def update!(**args)
3444
+ end
3445
+ end
3446
+
3447
+ # Metadata related to the EnrollSolution method. This will be returned by the
3448
+ # google.longrunning.Operation.metadata field.
3449
+ class GoogleCloudRetailV2alphaEnrollSolutionMetadata
3450
+ include Google::Apis::Core::Hashable
3451
+
3452
+ def initialize(**args)
3453
+ update!(**args)
3454
+ end
3455
+
3456
+ # Update properties of this object
3457
+ def update!(**args)
3458
+ end
3459
+ end
3460
+
1672
3461
  # Configuration of destination for Export related errors.
1673
3462
  class GoogleCloudRetailV2alphaExportErrorsConfig
1674
3463
  include Google::Apis::Core::Hashable
@@ -1771,6 +3560,27 @@ module Google
1771
3560
  end
1772
3561
  end
1773
3562
 
3563
+ # Response of the ImportCompletionDataRequest. If the long running operation is
3564
+ # done, this message is returned by the google.longrunning.Operations.response
3565
+ # field if the operation is successful.
3566
+ class GoogleCloudRetailV2alphaImportCompletionDataResponse
3567
+ include Google::Apis::Core::Hashable
3568
+
3569
+ # A sample of errors encountered while processing the request.
3570
+ # Corresponds to the JSON property `errorSamples`
3571
+ # @return [Array<Google::Apis::RetailV2::GoogleRpcStatus>]
3572
+ attr_accessor :error_samples
3573
+
3574
+ def initialize(**args)
3575
+ update!(**args)
3576
+ end
3577
+
3578
+ # Update properties of this object
3579
+ def update!(**args)
3580
+ @error_samples = args[:error_samples] if args.key?(:error_samples)
3581
+ end
3582
+ end
3583
+
1774
3584
  # Configuration of destination for Import related errors.
1775
3585
  class GoogleCloudRetailV2alphaImportErrorsConfig
1776
3586
  include Google::Apis::Core::Hashable
@@ -1807,6 +3617,20 @@ module Google
1807
3617
  # @return [Fixnum]
1808
3618
  attr_accessor :failure_count
1809
3619
 
3620
+ # Pub/Sub topic for receiving notification. If this field is set, when the
3621
+ # import is finished, a notification will be sent to specified Pub/Sub topic.
3622
+ # The message data will be JSON string of a Operation. Format of the Pub/Sub
3623
+ # topic is `projects/`project`/topics/`topic``.
3624
+ # Corresponds to the JSON property `notificationPubsubTopic`
3625
+ # @return [String]
3626
+ attr_accessor :notification_pubsub_topic
3627
+
3628
+ # Id of the request / operation. This is parroting back the requestId that was
3629
+ # passed in the request.
3630
+ # Corresponds to the JSON property `requestId`
3631
+ # @return [String]
3632
+ attr_accessor :request_id
3633
+
1810
3634
  # Count of entries that were processed successfully.
1811
3635
  # Corresponds to the JSON property `successCount`
1812
3636
  # @return [Fixnum]
@@ -1826,6 +3650,8 @@ module Google
1826
3650
  def update!(**args)
1827
3651
  @create_time = args[:create_time] if args.key?(:create_time)
1828
3652
  @failure_count = args[:failure_count] if args.key?(:failure_count)
3653
+ @notification_pubsub_topic = args[:notification_pubsub_topic] if args.key?(:notification_pubsub_topic)
3654
+ @request_id = args[:request_id] if args.key?(:request_id)
1829
3655
  @success_count = args[:success_count] if args.key?(:success_count)
1830
3656
  @update_time = args[:update_time] if args.key?(:update_time)
1831
3657
  end
@@ -1959,6 +3785,64 @@ module Google
1959
3785
  end
1960
3786
  end
1961
3787
 
3788
+ # Metadata related to the progress of the RemoveFulfillmentPlaces operation.
3789
+ # Currently empty because there is no meaningful metadata populated from the
3790
+ # RemoveFulfillmentPlaces method.
3791
+ class GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata
3792
+ include Google::Apis::Core::Hashable
3793
+
3794
+ def initialize(**args)
3795
+ update!(**args)
3796
+ end
3797
+
3798
+ # Update properties of this object
3799
+ def update!(**args)
3800
+ end
3801
+ end
3802
+
3803
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
3804
+ # is no meaningful response populated from the RemoveFulfillmentPlaces method.
3805
+ class GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse
3806
+ include Google::Apis::Core::Hashable
3807
+
3808
+ def initialize(**args)
3809
+ update!(**args)
3810
+ end
3811
+
3812
+ # Update properties of this object
3813
+ def update!(**args)
3814
+ end
3815
+ end
3816
+
3817
+ # Metadata related to the progress of the SetInventory operation. Currently
3818
+ # empty because there is no meaningful metadata populated from the SetInventory
3819
+ # method.
3820
+ class GoogleCloudRetailV2alphaSetInventoryMetadata
3821
+ include Google::Apis::Core::Hashable
3822
+
3823
+ def initialize(**args)
3824
+ update!(**args)
3825
+ end
3826
+
3827
+ # Update properties of this object
3828
+ def update!(**args)
3829
+ end
3830
+ end
3831
+
3832
+ # Response of the SetInventoryRequest. Currently empty because there is no
3833
+ # meaningful response populated from the SetInventory method.
3834
+ class GoogleCloudRetailV2alphaSetInventoryResponse
3835
+ include Google::Apis::Core::Hashable
3836
+
3837
+ def initialize(**args)
3838
+ update!(**args)
3839
+ end
3840
+
3841
+ # Update properties of this object
3842
+ def update!(**args)
3843
+ end
3844
+ end
3845
+
1962
3846
  # A summary of import result. The UserEventImportSummary summarizes the import
1963
3847
  # status for user events.
1964
3848
  class GoogleCloudRetailV2alphaUserEventImportSummary
@@ -1986,6 +3870,35 @@ module Google
1986
3870
  end
1987
3871
  end
1988
3872
 
3873
+ # Metadata related to the progress of the AddFulfillmentPlaces operation.
3874
+ # Currently empty because there is no meaningful metadata populated from the
3875
+ # AddFulfillmentPlaces method.
3876
+ class GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata
3877
+ include Google::Apis::Core::Hashable
3878
+
3879
+ def initialize(**args)
3880
+ update!(**args)
3881
+ end
3882
+
3883
+ # Update properties of this object
3884
+ def update!(**args)
3885
+ end
3886
+ end
3887
+
3888
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
3889
+ # is no meaningful response populated from the AddFulfillmentPlaces method.
3890
+ class GoogleCloudRetailV2betaAddFulfillmentPlacesResponse
3891
+ include Google::Apis::Core::Hashable
3892
+
3893
+ def initialize(**args)
3894
+ update!(**args)
3895
+ end
3896
+
3897
+ # Update properties of this object
3898
+ def update!(**args)
3899
+ end
3900
+ end
3901
+
1989
3902
  # Configuration of destination for Export related errors.
1990
3903
  class GoogleCloudRetailV2betaExportErrorsConfig
1991
3904
  include Google::Apis::Core::Hashable
@@ -2088,6 +4001,27 @@ module Google
2088
4001
  end
2089
4002
  end
2090
4003
 
4004
+ # Response of the ImportCompletionDataRequest. If the long running operation is
4005
+ # done, this message is returned by the google.longrunning.Operations.response
4006
+ # field if the operation is successful.
4007
+ class GoogleCloudRetailV2betaImportCompletionDataResponse
4008
+ include Google::Apis::Core::Hashable
4009
+
4010
+ # A sample of errors encountered while processing the request.
4011
+ # Corresponds to the JSON property `errorSamples`
4012
+ # @return [Array<Google::Apis::RetailV2::GoogleRpcStatus>]
4013
+ attr_accessor :error_samples
4014
+
4015
+ def initialize(**args)
4016
+ update!(**args)
4017
+ end
4018
+
4019
+ # Update properties of this object
4020
+ def update!(**args)
4021
+ @error_samples = args[:error_samples] if args.key?(:error_samples)
4022
+ end
4023
+ end
4024
+
2091
4025
  # Configuration of destination for Import related errors.
2092
4026
  class GoogleCloudRetailV2betaImportErrorsConfig
2093
4027
  include Google::Apis::Core::Hashable
@@ -2124,6 +4058,20 @@ module Google
2124
4058
  # @return [Fixnum]
2125
4059
  attr_accessor :failure_count
2126
4060
 
4061
+ # Pub/Sub topic for receiving notification. If this field is set, when the
4062
+ # import is finished, a notification will be sent to specified Pub/Sub topic.
4063
+ # The message data will be JSON string of a Operation. Format of the Pub/Sub
4064
+ # topic is `projects/`project`/topics/`topic``.
4065
+ # Corresponds to the JSON property `notificationPubsubTopic`
4066
+ # @return [String]
4067
+ attr_accessor :notification_pubsub_topic
4068
+
4069
+ # Id of the request / operation. This is parroting back the requestId that was
4070
+ # passed in the request.
4071
+ # Corresponds to the JSON property `requestId`
4072
+ # @return [String]
4073
+ attr_accessor :request_id
4074
+
2127
4075
  # Count of entries that were processed successfully.
2128
4076
  # Corresponds to the JSON property `successCount`
2129
4077
  # @return [Fixnum]
@@ -2143,6 +4091,8 @@ module Google
2143
4091
  def update!(**args)
2144
4092
  @create_time = args[:create_time] if args.key?(:create_time)
2145
4093
  @failure_count = args[:failure_count] if args.key?(:failure_count)
4094
+ @notification_pubsub_topic = args[:notification_pubsub_topic] if args.key?(:notification_pubsub_topic)
4095
+ @request_id = args[:request_id] if args.key?(:request_id)
2146
4096
  @success_count = args[:success_count] if args.key?(:success_count)
2147
4097
  @update_time = args[:update_time] if args.key?(:update_time)
2148
4098
  end
@@ -2276,6 +4226,64 @@ module Google
2276
4226
  end
2277
4227
  end
2278
4228
 
4229
+ # Metadata related to the progress of the RemoveFulfillmentPlaces operation.
4230
+ # Currently empty because there is no meaningful metadata populated from the
4231
+ # RemoveFulfillmentPlaces method.
4232
+ class GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata
4233
+ include Google::Apis::Core::Hashable
4234
+
4235
+ def initialize(**args)
4236
+ update!(**args)
4237
+ end
4238
+
4239
+ # Update properties of this object
4240
+ def update!(**args)
4241
+ end
4242
+ end
4243
+
4244
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
4245
+ # is no meaningful response populated from the RemoveFulfillmentPlaces method.
4246
+ class GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse
4247
+ include Google::Apis::Core::Hashable
4248
+
4249
+ def initialize(**args)
4250
+ update!(**args)
4251
+ end
4252
+
4253
+ # Update properties of this object
4254
+ def update!(**args)
4255
+ end
4256
+ end
4257
+
4258
+ # Metadata related to the progress of the SetInventory operation. Currently
4259
+ # empty because there is no meaningful metadata populated from the SetInventory
4260
+ # method.
4261
+ class GoogleCloudRetailV2betaSetInventoryMetadata
4262
+ include Google::Apis::Core::Hashable
4263
+
4264
+ def initialize(**args)
4265
+ update!(**args)
4266
+ end
4267
+
4268
+ # Update properties of this object
4269
+ def update!(**args)
4270
+ end
4271
+ end
4272
+
4273
+ # Response of the SetInventoryRequest. Currently empty because there is no
4274
+ # meaningful response populated from the SetInventory method.
4275
+ class GoogleCloudRetailV2betaSetInventoryResponse
4276
+ include Google::Apis::Core::Hashable
4277
+
4278
+ def initialize(**args)
4279
+ update!(**args)
4280
+ end
4281
+
4282
+ # Update properties of this object
4283
+ def update!(**args)
4284
+ end
4285
+ end
4286
+
2279
4287
  # A summary of import result. The UserEventImportSummary summarizes the import
2280
4288
  # status for user events.
2281
4289
  class GoogleCloudRetailV2betaUserEventImportSummary
@@ -2445,6 +4453,47 @@ module Google
2445
4453
  @message = args[:message] if args.key?(:message)
2446
4454
  end
2447
4455
  end
4456
+
4457
+ # Represents a whole or partial calendar date, such as a birthday. The time of
4458
+ # day and time zone are either specified elsewhere or are insignificant. The
4459
+ # date is relative to the Gregorian Calendar. This can represent one of the
4460
+ # following: * A full date, with non-zero year, month, and day values * A month
4461
+ # and day value, with a zero year, such as an anniversary * A year on its own,
4462
+ # with zero month and day values * A year and month value, with a zero day, such
4463
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
4464
+ # google.protobuf.Timestamp`.
4465
+ class GoogleTypeDate
4466
+ include Google::Apis::Core::Hashable
4467
+
4468
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
4469
+ # specify a year by itself or a year and month where the day isn't significant.
4470
+ # Corresponds to the JSON property `day`
4471
+ # @return [Fixnum]
4472
+ attr_accessor :day
4473
+
4474
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
4475
+ # and day.
4476
+ # Corresponds to the JSON property `month`
4477
+ # @return [Fixnum]
4478
+ attr_accessor :month
4479
+
4480
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
4481
+ # year.
4482
+ # Corresponds to the JSON property `year`
4483
+ # @return [Fixnum]
4484
+ attr_accessor :year
4485
+
4486
+ def initialize(**args)
4487
+ update!(**args)
4488
+ end
4489
+
4490
+ # Update properties of this object
4491
+ def update!(**args)
4492
+ @day = args[:day] if args.key?(:day)
4493
+ @month = args[:month] if args.key?(:month)
4494
+ @year = args[:year] if args.key?(:year)
4495
+ end
4496
+ end
2448
4497
  end
2449
4498
  end
2450
4499
  end