google-apis-retail_v2beta 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 03d477a9c2c7a6d42d3bd9f69c462bce8bcd457a6c098eb583774f9cfe3c3179
4
- data.tar.gz: dc64f9c2b24aa6093c7a300f86f1e148d718318e12e1e699fbc50e397b75d790
3
+ metadata.gz: 5e29e9bcb91d4305b83b49afbaae79cc8f789df4f569434f3487c27dc784b65b
4
+ data.tar.gz: 84a718fb2606983044a7c69eb12a5a39fa7db6ca8473bbb6fba6c2edbef7cb75
5
5
  SHA512:
6
- metadata.gz: a129c72f87473b4cb003e50e28b1291732f8415632099875bf5c60317fbb3cf2f7ef6159ff033fa249ca1e971ca964596b079a1d50c20ade908ac669f7d622ee
7
- data.tar.gz: f978b47e1168c8ab47b7a77c20ab15446a18b1b9dfab72142ea82ee8619956a06d737d1f30a2567b8a9654fc611c21415378f8ffc5c04142f763a891b97cbed0
6
+ metadata.gz: c87484b8a73c21fa236ab45b8a4fdf16109f404c164069e19e4f2845589d4e682959ccd4632fa9b415f445c9405a1e69b6cb82f91d80ab7a49759bc75c9905b7
7
+ data.tar.gz: a2aa5fcb8401696230ee97fa6071fca591f80e5c4c24843bf38f7c522cbf64955f752f7bb0cbc4d7450e46ec80a59c3a8c0ddf89c18bf1019522c6bdafcba356
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Release history for google-apis-retail_v2beta
2
2
 
3
+ ### v0.13.0 (2021-07-24)
4
+
5
+ * Regenerated from discovery document revision 20210723
6
+
3
7
  ### v0.12.0 (2021-07-14)
4
8
 
5
9
  * Regenerated from discovery document revision 20210702
@@ -279,6 +279,56 @@ 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
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
298
+ # is no meaningful response populated from the AddFulfillmentPlaces method.
299
+ class GoogleCloudRetailV2AddFulfillmentPlacesResponse
300
+ include Google::Apis::Core::Hashable
301
+
302
+ def initialize(**args)
303
+ update!(**args)
304
+ end
305
+
306
+ # Update properties of this object
307
+ def update!(**args)
308
+ end
309
+ end
310
+
311
+ # Response of the ImportCompletionDataRequest. If the long running operation is
312
+ # done, this message is returned by the google.longrunning.Operations.response
313
+ # field if the operation is successful.
314
+ class GoogleCloudRetailV2ImportCompletionDataResponse
315
+ include Google::Apis::Core::Hashable
316
+
317
+ # A sample of errors encountered while processing the request.
318
+ # Corresponds to the JSON property `errorSamples`
319
+ # @return [Array<Google::Apis::RetailV2beta::GoogleRpcStatus>]
320
+ attr_accessor :error_samples
321
+
322
+ def initialize(**args)
323
+ update!(**args)
324
+ end
325
+
326
+ # Update properties of this object
327
+ def update!(**args)
328
+ @error_samples = args[:error_samples] if args.key?(:error_samples)
329
+ end
330
+ end
331
+
282
332
  # Configuration of destination for Import related errors.
283
333
  class GoogleCloudRetailV2ImportErrorsConfig
284
334
  include Google::Apis::Core::Hashable
@@ -315,6 +365,20 @@ module Google
315
365
  # @return [Fixnum]
316
366
  attr_accessor :failure_count
317
367
 
368
+ # Pub/Sub topic for receiving notification. If this field is set, when the
369
+ # import is finished, a notification will be sent to specified Pub/Sub topic.
370
+ # The message data will be JSON string of a Operation. Format of the Pub/Sub
371
+ # topic is `projects/`project`/topics/`topic``.
372
+ # Corresponds to the JSON property `notificationPubsubTopic`
373
+ # @return [String]
374
+ attr_accessor :notification_pubsub_topic
375
+
376
+ # Id of the request / operation. This is parroting back the requestId that was
377
+ # passed in the request.
378
+ # Corresponds to the JSON property `requestId`
379
+ # @return [String]
380
+ attr_accessor :request_id
381
+
318
382
  # Count of entries that were processed successfully.
319
383
  # Corresponds to the JSON property `successCount`
320
384
  # @return [Fixnum]
@@ -334,6 +398,8 @@ module Google
334
398
  def update!(**args)
335
399
  @create_time = args[:create_time] if args.key?(:create_time)
336
400
  @failure_count = args[:failure_count] if args.key?(:failure_count)
401
+ @notification_pubsub_topic = args[:notification_pubsub_topic] if args.key?(:notification_pubsub_topic)
402
+ @request_id = args[:request_id] if args.key?(:request_id)
337
403
  @success_count = args[:success_count] if args.key?(:success_count)
338
404
  @update_time = args[:update_time] if args.key?(:update_time)
339
405
  end
@@ -467,6 +533,64 @@ module Google
467
533
  end
468
534
  end
469
535
 
536
+ # Metadata related to the progress of the RemoveFulfillmentPlaces operation.
537
+ # Currently empty because there is no meaningful metadata populated from the
538
+ # RemoveFulfillmentPlaces method.
539
+ class GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata
540
+ include Google::Apis::Core::Hashable
541
+
542
+ def initialize(**args)
543
+ update!(**args)
544
+ end
545
+
546
+ # Update properties of this object
547
+ def update!(**args)
548
+ end
549
+ end
550
+
551
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
552
+ # is no meaningful response populated from the RemoveFulfillmentPlaces method.
553
+ class GoogleCloudRetailV2RemoveFulfillmentPlacesResponse
554
+ include Google::Apis::Core::Hashable
555
+
556
+ def initialize(**args)
557
+ update!(**args)
558
+ end
559
+
560
+ # Update properties of this object
561
+ def update!(**args)
562
+ end
563
+ end
564
+
565
+ # Metadata related to the progress of the SetInventory operation. Currently
566
+ # empty because there is no meaningful metadata populated from the SetInventory
567
+ # method.
568
+ class GoogleCloudRetailV2SetInventoryMetadata
569
+ include Google::Apis::Core::Hashable
570
+
571
+ def initialize(**args)
572
+ update!(**args)
573
+ end
574
+
575
+ # Update properties of this object
576
+ def update!(**args)
577
+ end
578
+ end
579
+
580
+ # Response of the SetInventoryRequest. Currently empty because there is no
581
+ # meaningful response populated from the SetInventory method.
582
+ class GoogleCloudRetailV2SetInventoryResponse
583
+ include Google::Apis::Core::Hashable
584
+
585
+ def initialize(**args)
586
+ update!(**args)
587
+ end
588
+
589
+ # Update properties of this object
590
+ def update!(**args)
591
+ end
592
+ end
593
+
470
594
  # A summary of import result. The UserEventImportSummary summarizes the import
471
595
  # status for user events.
472
596
  class GoogleCloudRetailV2UserEventImportSummary
@@ -494,6 +618,35 @@ module Google
494
618
  end
495
619
  end
496
620
 
621
+ # Metadata related to the progress of the AddFulfillmentPlaces operation.
622
+ # Currently empty because there is no meaningful metadata populated from the
623
+ # AddFulfillmentPlaces method.
624
+ class GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata
625
+ include Google::Apis::Core::Hashable
626
+
627
+ def initialize(**args)
628
+ update!(**args)
629
+ end
630
+
631
+ # Update properties of this object
632
+ def update!(**args)
633
+ end
634
+ end
635
+
636
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
637
+ # is no meaningful response populated from the AddFulfillmentPlaces method.
638
+ class GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse
639
+ include Google::Apis::Core::Hashable
640
+
641
+ def initialize(**args)
642
+ update!(**args)
643
+ end
644
+
645
+ # Update properties of this object
646
+ def update!(**args)
647
+ end
648
+ end
649
+
497
650
  # Configuration of destination for Export related errors.
498
651
  class GoogleCloudRetailV2alphaExportErrorsConfig
499
652
  include Google::Apis::Core::Hashable
@@ -596,6 +749,27 @@ module Google
596
749
  end
597
750
  end
598
751
 
752
+ # Response of the ImportCompletionDataRequest. If the long running operation is
753
+ # done, this message is returned by the google.longrunning.Operations.response
754
+ # field if the operation is successful.
755
+ class GoogleCloudRetailV2alphaImportCompletionDataResponse
756
+ include Google::Apis::Core::Hashable
757
+
758
+ # A sample of errors encountered while processing the request.
759
+ # Corresponds to the JSON property `errorSamples`
760
+ # @return [Array<Google::Apis::RetailV2beta::GoogleRpcStatus>]
761
+ attr_accessor :error_samples
762
+
763
+ def initialize(**args)
764
+ update!(**args)
765
+ end
766
+
767
+ # Update properties of this object
768
+ def update!(**args)
769
+ @error_samples = args[:error_samples] if args.key?(:error_samples)
770
+ end
771
+ end
772
+
599
773
  # Configuration of destination for Import related errors.
600
774
  class GoogleCloudRetailV2alphaImportErrorsConfig
601
775
  include Google::Apis::Core::Hashable
@@ -632,6 +806,20 @@ module Google
632
806
  # @return [Fixnum]
633
807
  attr_accessor :failure_count
634
808
 
809
+ # Pub/Sub topic for receiving notification. If this field is set, when the
810
+ # import is finished, a notification will be sent to specified Pub/Sub topic.
811
+ # The message data will be JSON string of a Operation. Format of the Pub/Sub
812
+ # topic is `projects/`project`/topics/`topic``.
813
+ # Corresponds to the JSON property `notificationPubsubTopic`
814
+ # @return [String]
815
+ attr_accessor :notification_pubsub_topic
816
+
817
+ # Id of the request / operation. This is parroting back the requestId that was
818
+ # passed in the request.
819
+ # Corresponds to the JSON property `requestId`
820
+ # @return [String]
821
+ attr_accessor :request_id
822
+
635
823
  # Count of entries that were processed successfully.
636
824
  # Corresponds to the JSON property `successCount`
637
825
  # @return [Fixnum]
@@ -651,6 +839,8 @@ module Google
651
839
  def update!(**args)
652
840
  @create_time = args[:create_time] if args.key?(:create_time)
653
841
  @failure_count = args[:failure_count] if args.key?(:failure_count)
842
+ @notification_pubsub_topic = args[:notification_pubsub_topic] if args.key?(:notification_pubsub_topic)
843
+ @request_id = args[:request_id] if args.key?(:request_id)
654
844
  @success_count = args[:success_count] if args.key?(:success_count)
655
845
  @update_time = args[:update_time] if args.key?(:update_time)
656
846
  end
@@ -784,6 +974,64 @@ module Google
784
974
  end
785
975
  end
786
976
 
977
+ # Metadata related to the progress of the RemoveFulfillmentPlaces operation.
978
+ # Currently empty because there is no meaningful metadata populated from the
979
+ # RemoveFulfillmentPlaces method.
980
+ class GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata
981
+ include Google::Apis::Core::Hashable
982
+
983
+ def initialize(**args)
984
+ update!(**args)
985
+ end
986
+
987
+ # Update properties of this object
988
+ def update!(**args)
989
+ end
990
+ end
991
+
992
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
993
+ # is no meaningful response populated from the RemoveFulfillmentPlaces method.
994
+ class GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse
995
+ include Google::Apis::Core::Hashable
996
+
997
+ def initialize(**args)
998
+ update!(**args)
999
+ end
1000
+
1001
+ # Update properties of this object
1002
+ def update!(**args)
1003
+ end
1004
+ end
1005
+
1006
+ # Metadata related to the progress of the SetInventory operation. Currently
1007
+ # empty because there is no meaningful metadata populated from the SetInventory
1008
+ # method.
1009
+ class GoogleCloudRetailV2alphaSetInventoryMetadata
1010
+ include Google::Apis::Core::Hashable
1011
+
1012
+ def initialize(**args)
1013
+ update!(**args)
1014
+ end
1015
+
1016
+ # Update properties of this object
1017
+ def update!(**args)
1018
+ end
1019
+ end
1020
+
1021
+ # Response of the SetInventoryRequest. Currently empty because there is no
1022
+ # meaningful response populated from the SetInventory method.
1023
+ class GoogleCloudRetailV2alphaSetInventoryResponse
1024
+ include Google::Apis::Core::Hashable
1025
+
1026
+ def initialize(**args)
1027
+ update!(**args)
1028
+ end
1029
+
1030
+ # Update properties of this object
1031
+ def update!(**args)
1032
+ end
1033
+ end
1034
+
787
1035
  # A summary of import result. The UserEventImportSummary summarizes the import
788
1036
  # status for user events.
789
1037
  class GoogleCloudRetailV2alphaUserEventImportSummary
@@ -811,6 +1059,129 @@ module Google
811
1059
  end
812
1060
  end
813
1061
 
1062
+ # Metadata related to the progress of the AddFulfillmentPlaces operation.
1063
+ # Currently empty because there is no meaningful metadata populated from the
1064
+ # AddFulfillmentPlaces method.
1065
+ class GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata
1066
+ include Google::Apis::Core::Hashable
1067
+
1068
+ def initialize(**args)
1069
+ update!(**args)
1070
+ end
1071
+
1072
+ # Update properties of this object
1073
+ def update!(**args)
1074
+ end
1075
+ end
1076
+
1077
+ # Request message for AddFulfillmentPlaces method.
1078
+ class GoogleCloudRetailV2betaAddFulfillmentPlacesRequest
1079
+ include Google::Apis::Core::Hashable
1080
+
1081
+ # The time when the fulfillment updates are issued, used to prevent out-of-order
1082
+ # updates on fulfillment information. If not provided, the internal system time
1083
+ # will be used.
1084
+ # Corresponds to the JSON property `addTime`
1085
+ # @return [String]
1086
+ attr_accessor :add_time
1087
+
1088
+ # If set to true, and the Product is not found, the fulfillment information will
1089
+ # still be processed and retained for at most 1 day and processed once the
1090
+ # Product is created. If set to false, an INVALID_ARGUMENT error is returned if
1091
+ # the Product is not found.
1092
+ # Corresponds to the JSON property `allowMissing`
1093
+ # @return [Boolean]
1094
+ attr_accessor :allow_missing
1095
+ alias_method :allow_missing?, :allow_missing
1096
+
1097
+ # Required. The IDs for this type, such as the store IDs for "pickup-in-store"
1098
+ # or the region IDs for "same-day-delivery" to be added for this type. Duplicate
1099
+ # IDs will be automatically ignored. At least 1 value is required, and a maximum
1100
+ # of 2000 values are allowed. Each value must be a string with a length limit of
1101
+ # 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "
1102
+ # REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. If the total
1103
+ # number of place IDs exceeds 2000 for this type after adding, then the update
1104
+ # will be rejected.
1105
+ # Corresponds to the JSON property `placeIds`
1106
+ # @return [Array<String>]
1107
+ attr_accessor :place_ids
1108
+
1109
+ # Required. The fulfillment type, including commonly used types (such as pickup
1110
+ # in store and same day delivery), and custom types. Supported values: * "pickup-
1111
+ # in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "
1112
+ # custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-
1113
+ # type-5" If this field is set to an invalid value other than these, an
1114
+ # INVALID_ARGUMENT error is returned. This field directly corresponds to Product.
1115
+ # fulfillment_info.type.
1116
+ # Corresponds to the JSON property `type`
1117
+ # @return [String]
1118
+ attr_accessor :type
1119
+
1120
+ def initialize(**args)
1121
+ update!(**args)
1122
+ end
1123
+
1124
+ # Update properties of this object
1125
+ def update!(**args)
1126
+ @add_time = args[:add_time] if args.key?(:add_time)
1127
+ @allow_missing = args[:allow_missing] if args.key?(:allow_missing)
1128
+ @place_ids = args[:place_ids] if args.key?(:place_ids)
1129
+ @type = args[:type] if args.key?(:type)
1130
+ end
1131
+ end
1132
+
1133
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
1134
+ # is no meaningful response populated from the AddFulfillmentPlaces method.
1135
+ class GoogleCloudRetailV2betaAddFulfillmentPlacesResponse
1136
+ include Google::Apis::Core::Hashable
1137
+
1138
+ def initialize(**args)
1139
+ update!(**args)
1140
+ end
1141
+
1142
+ # Update properties of this object
1143
+ def update!(**args)
1144
+ end
1145
+ end
1146
+
1147
+ # An intended audience of the Product for whom it's sold.
1148
+ class GoogleCloudRetailV2betaAudience
1149
+ include Google::Apis::Core::Hashable
1150
+
1151
+ # The age groups of the audience. Strongly encouraged to use the standard values:
1152
+ # "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5
1153
+ # years old), "kids" (5–13 years old), "adult" (typically teens or older). At
1154
+ # most 5 values are allowed. Each value must be a UTF-8 encoded string with a
1155
+ # length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is
1156
+ # returned. Google Merchant Center property [age_group](https://support.google.
1157
+ # com/merchants/answer/6324463). Schema.org property [Product.audience.
1158
+ # suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.
1159
+ # suggestedMaxAge](https://schema.org/suggestedMaxAge).
1160
+ # Corresponds to the JSON property `ageGroups`
1161
+ # @return [Array<String>]
1162
+ attr_accessor :age_groups
1163
+
1164
+ # The genders of the audience. Strongly encouraged to use the standard values: "
1165
+ # male", "female", "unisex". At most 5 values are allowed. Each value must be a
1166
+ # UTF-8 encoded string with a length limit of 128 characters. Otherwise, an
1167
+ # INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](
1168
+ # https://support.google.com/merchants/answer/6324479). Schema.org property [
1169
+ # Product.audience.suggestedGender](https://schema.org/suggestedGender).
1170
+ # Corresponds to the JSON property `genders`
1171
+ # @return [Array<String>]
1172
+ attr_accessor :genders
1173
+
1174
+ def initialize(**args)
1175
+ update!(**args)
1176
+ end
1177
+
1178
+ # Update properties of this object
1179
+ def update!(**args)
1180
+ @age_groups = args[:age_groups] if args.key?(:age_groups)
1181
+ @genders = args[:genders] if args.key?(:genders)
1182
+ end
1183
+ end
1184
+
814
1185
  # BigQuery source import data from.
815
1186
  class GoogleCloudRetailV2betaBigQuerySource
816
1187
  include Google::Apis::Core::Hashable
@@ -821,8 +1192,7 @@ module Google
821
1192
  # Importing catalog data from Merchant Center](https://cloud.google.com/retail/
822
1193
  # recommendations-ai/docs/upload-catalog#mc). Supported values for user events
823
1194
  # imports: * `user_event` (default): One JSON UserEvent per line. * `
824
- # user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?
825
- # hl=en.
1195
+ # user_event_ga360`: Using https://support.google.com/analytics/answer/3437719.
826
1196
  # Corresponds to the JSON property `dataSchema`
827
1197
  # @return [String]
828
1198
  attr_accessor :data_schema
@@ -840,6 +1210,18 @@ module Google
840
1210
  # @return [String]
841
1211
  attr_accessor :gcs_staging_dir
842
1212
 
1213
+ # Represents a whole or partial calendar date, such as a birthday. The time of
1214
+ # day and time zone are either specified elsewhere or are insignificant. The
1215
+ # date is relative to the Gregorian Calendar. This can represent one of the
1216
+ # following: * A full date, with non-zero year, month, and day values * A month
1217
+ # and day value, with a zero year, such as an anniversary * A year on its own,
1218
+ # with zero month and day values * A year and month value, with a zero day, such
1219
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
1220
+ # google.protobuf.Timestamp`.
1221
+ # Corresponds to the JSON property `partitionDate`
1222
+ # @return [Google::Apis::RetailV2beta::GoogleTypeDate]
1223
+ attr_accessor :partition_date
1224
+
843
1225
  # The project ID (can be project # or ID) that the BigQuery source is in with a
844
1226
  # length limit of 128 characters. If not specified, inherits the project ID from
845
1227
  # the parent request.
@@ -862,6 +1244,7 @@ module Google
862
1244
  @data_schema = args[:data_schema] if args.key?(:data_schema)
863
1245
  @dataset_id = args[:dataset_id] if args.key?(:dataset_id)
864
1246
  @gcs_staging_dir = args[:gcs_staging_dir] if args.key?(:gcs_staging_dir)
1247
+ @partition_date = args[:partition_date] if args.key?(:partition_date)
865
1248
  @project_id = args[:project_id] if args.key?(:project_id)
866
1249
  @table_id = args[:table_id] if args.key?(:table_id)
867
1250
  end
@@ -901,27 +1284,34 @@ module Google
901
1284
  end
902
1285
  end
903
1286
 
904
- # A custom attribute that is not explicitly modeled in Product.
905
- class GoogleCloudRetailV2betaCustomAttribute
1287
+ # The color information of a Product.
1288
+ class GoogleCloudRetailV2betaColorInfo
906
1289
  include Google::Apis::Core::Hashable
907
1290
 
908
- # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when
909
- # the key is "lengths_cm". At most 400 values are allowed.Otherwise, an
910
- # INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be
911
- # set. Otherwise, an INVALID_ARGUMENT error is returned.
912
- # Corresponds to the JSON property `numbers`
913
- # @return [Array<Float>]
914
- attr_accessor :numbers
1291
+ # The standard color families. Strongly recommended to use the following
1292
+ # standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "
1293
+ # Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is
1294
+ # expected to have only 1 color family. May consider using single "Mixed"
1295
+ # instead of multiple values. A maximum of 5 values are allowed. Each value must
1296
+ # be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an
1297
+ # INVALID_ARGUMENT error is returned. Google Merchant Center property [color](
1298
+ # https://support.google.com/merchants/answer/6324487). Schema.org property [
1299
+ # Product.color](https://schema.org/color).
1300
+ # Corresponds to the JSON property `colorFamilies`
1301
+ # @return [Array<String>]
1302
+ attr_accessor :color_families
915
1303
 
916
- # The textual values of this custom attribute. For example, `["yellow", "green"]`
917
- # when the key is "color". At most 400 values are allowed. Empty values are not
918
- # allowed. Each value must be a UTF-8 encoded string with a length limit of 256
919
- # characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of
920
- # text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is
921
- # returned.
922
- # Corresponds to the JSON property `text`
1304
+ # The color display names, which may be different from standard color family
1305
+ # names, such as the color aliases used in the website frontend. Normally it is
1306
+ # expected to have only 1 color. May consider using single "Mixed" instead of
1307
+ # multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8
1308
+ # encoded string with a length limit of 128 characters. Otherwise, an
1309
+ # INVALID_ARGUMENT error is returned. Google Merchant Center property [color](
1310
+ # https://support.google.com/merchants/answer/6324487). Schema.org property [
1311
+ # Product.color](https://schema.org/color).
1312
+ # Corresponds to the JSON property `colors`
923
1313
  # @return [Array<String>]
924
- attr_accessor :text
1314
+ attr_accessor :colors
925
1315
 
926
1316
  def initialize(**args)
927
1317
  update!(**args)
@@ -929,17 +1319,207 @@ module Google
929
1319
 
930
1320
  # Update properties of this object
931
1321
  def update!(**args)
932
- @numbers = args[:numbers] if args.key?(:numbers)
933
- @text = args[:text] if args.key?(:text)
1322
+ @color_families = args[:color_families] if args.key?(:color_families)
1323
+ @colors = args[:colors] if args.key?(:colors)
934
1324
  end
935
1325
  end
936
1326
 
937
- # Configuration of destination for Export related errors.
938
- class GoogleCloudRetailV2betaExportErrorsConfig
1327
+ # Response of the auto-complete query.
1328
+ class GoogleCloudRetailV2betaCompleteQueryResponse
939
1329
  include Google::Apis::Core::Hashable
940
1330
 
941
- # Google Cloud Storage path for import errors. This must be an empty, existing
942
- # Cloud Storage bucket. Export errors will be written to a file in this bucket,
1331
+ # A unique complete token. This should be included in the SearchRequest
1332
+ # resulting from this completion, which enables accurate attribution of complete
1333
+ # model performance.
1334
+ # Corresponds to the JSON property `attributionToken`
1335
+ # @return [String]
1336
+ attr_accessor :attribution_token
1337
+
1338
+ # Results of the matching suggestions. The result list is ordered and the first
1339
+ # result is top suggestion.
1340
+ # Corresponds to the JSON property `completionResults`
1341
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaCompleteQueryResponseCompletionResult>]
1342
+ attr_accessor :completion_results
1343
+
1344
+ # Matched recent searches of this user. This field is a restricted feature.
1345
+ # Contact Retail Support (retail-search-support@google.com) if you are
1346
+ # interested in enabling it. This feature is only available when
1347
+ # CompleteQueryRequest.visitor_id field is set and UserEvent is imported. The
1348
+ # recent searches satisfy the follow rules: * They are ordered from latest to
1349
+ # oldest. * They are matched with CompleteQueryRequest.query case insensitively.
1350
+ # * They are transformed to lower cases. * They are UTF-8 safe. Recent searches
1351
+ # are deduplicated. More recent searches will be reserved when duplication
1352
+ # happens.
1353
+ # Corresponds to the JSON property `recentSearchResults`
1354
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaCompleteQueryResponseRecentSearchResult>]
1355
+ attr_accessor :recent_search_results
1356
+
1357
+ def initialize(**args)
1358
+ update!(**args)
1359
+ end
1360
+
1361
+ # Update properties of this object
1362
+ def update!(**args)
1363
+ @attribution_token = args[:attribution_token] if args.key?(:attribution_token)
1364
+ @completion_results = args[:completion_results] if args.key?(:completion_results)
1365
+ @recent_search_results = args[:recent_search_results] if args.key?(:recent_search_results)
1366
+ end
1367
+ end
1368
+
1369
+ # Resource that represents completion results.
1370
+ class GoogleCloudRetailV2betaCompleteQueryResponseCompletionResult
1371
+ include Google::Apis::Core::Hashable
1372
+
1373
+ # Additional custom attributes ingested through BigQuery.
1374
+ # Corresponds to the JSON property `attributes`
1375
+ # @return [Hash<String,Google::Apis::RetailV2beta::GoogleCloudRetailV2betaCustomAttribute>]
1376
+ attr_accessor :attributes
1377
+
1378
+ # The suggestion for the query.
1379
+ # Corresponds to the JSON property `suggestion`
1380
+ # @return [String]
1381
+ attr_accessor :suggestion
1382
+
1383
+ def initialize(**args)
1384
+ update!(**args)
1385
+ end
1386
+
1387
+ # Update properties of this object
1388
+ def update!(**args)
1389
+ @attributes = args[:attributes] if args.key?(:attributes)
1390
+ @suggestion = args[:suggestion] if args.key?(:suggestion)
1391
+ end
1392
+ end
1393
+
1394
+ # Recent search of this user.
1395
+ class GoogleCloudRetailV2betaCompleteQueryResponseRecentSearchResult
1396
+ include Google::Apis::Core::Hashable
1397
+
1398
+ # The recent search query.
1399
+ # Corresponds to the JSON property `recentSearch`
1400
+ # @return [String]
1401
+ attr_accessor :recent_search
1402
+
1403
+ def initialize(**args)
1404
+ update!(**args)
1405
+ end
1406
+
1407
+ # Update properties of this object
1408
+ def update!(**args)
1409
+ @recent_search = args[:recent_search] if args.key?(:recent_search)
1410
+ end
1411
+ end
1412
+
1413
+ # The input config source for completion data.
1414
+ class GoogleCloudRetailV2betaCompletionDataInputConfig
1415
+ include Google::Apis::Core::Hashable
1416
+
1417
+ # BigQuery source import data from.
1418
+ # Corresponds to the JSON property `bigQuerySource`
1419
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaBigQuerySource]
1420
+ attr_accessor :big_query_source
1421
+
1422
+ def initialize(**args)
1423
+ update!(**args)
1424
+ end
1425
+
1426
+ # Update properties of this object
1427
+ def update!(**args)
1428
+ @big_query_source = args[:big_query_source] if args.key?(:big_query_source)
1429
+ end
1430
+ end
1431
+
1432
+ # Detailed completion information including completion attribution token and
1433
+ # clicked completion info.
1434
+ class GoogleCloudRetailV2betaCompletionDetail
1435
+ include Google::Apis::Core::Hashable
1436
+
1437
+ # Completion attribution token in CompleteQueryResponse.attribution_token.
1438
+ # Corresponds to the JSON property `completionAttributionToken`
1439
+ # @return [String]
1440
+ attr_accessor :completion_attribution_token
1441
+
1442
+ # End user selected CompleteQueryResponse.CompletionResult.suggestion position,
1443
+ # starting from 0.
1444
+ # Corresponds to the JSON property `selectedPosition`
1445
+ # @return [Fixnum]
1446
+ attr_accessor :selected_position
1447
+
1448
+ # End user selected CompleteQueryResponse.CompletionResult.suggestion.
1449
+ # Corresponds to the JSON property `selectedSuggestion`
1450
+ # @return [String]
1451
+ attr_accessor :selected_suggestion
1452
+
1453
+ def initialize(**args)
1454
+ update!(**args)
1455
+ end
1456
+
1457
+ # Update properties of this object
1458
+ def update!(**args)
1459
+ @completion_attribution_token = args[:completion_attribution_token] if args.key?(:completion_attribution_token)
1460
+ @selected_position = args[:selected_position] if args.key?(:selected_position)
1461
+ @selected_suggestion = args[:selected_suggestion] if args.key?(:selected_suggestion)
1462
+ end
1463
+ end
1464
+
1465
+ # A custom attribute that is not explicitly modeled in Product.
1466
+ class GoogleCloudRetailV2betaCustomAttribute
1467
+ include Google::Apis::Core::Hashable
1468
+
1469
+ # If true, custom attribute values are indexed, so that it can be filtered,
1470
+ # faceted or boosted in SearchService.Search. This field is ignored in a
1471
+ # UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and
1472
+ # SearchRequest.boost_spec for more details.
1473
+ # Corresponds to the JSON property `indexable`
1474
+ # @return [Boolean]
1475
+ attr_accessor :indexable
1476
+ alias_method :indexable?, :indexable
1477
+
1478
+ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when
1479
+ # the key is "lengths_cm". At most 400 values are allowed.Otherwise, an
1480
+ # INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be
1481
+ # set. Otherwise, an INVALID_ARGUMENT error is returned.
1482
+ # Corresponds to the JSON property `numbers`
1483
+ # @return [Array<Float>]
1484
+ attr_accessor :numbers
1485
+
1486
+ # If true, custom attribute values are searchable by text queries in
1487
+ # SearchService.Search. This field is ignored in a UserEvent. Only set if type
1488
+ # text is set. Otherwise, a INVALID_ARGUMENT error is returned.
1489
+ # Corresponds to the JSON property `searchable`
1490
+ # @return [Boolean]
1491
+ attr_accessor :searchable
1492
+ alias_method :searchable?, :searchable
1493
+
1494
+ # The textual values of this custom attribute. For example, `["yellow", "green"]`
1495
+ # when the key is "color". At most 400 values are allowed. Empty values are not
1496
+ # allowed. Each value must be a UTF-8 encoded string with a length limit of 256
1497
+ # characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of
1498
+ # text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is
1499
+ # returned.
1500
+ # Corresponds to the JSON property `text`
1501
+ # @return [Array<String>]
1502
+ attr_accessor :text
1503
+
1504
+ def initialize(**args)
1505
+ update!(**args)
1506
+ end
1507
+
1508
+ # Update properties of this object
1509
+ def update!(**args)
1510
+ @indexable = args[:indexable] if args.key?(:indexable)
1511
+ @numbers = args[:numbers] if args.key?(:numbers)
1512
+ @searchable = args[:searchable] if args.key?(:searchable)
1513
+ @text = args[:text] if args.key?(:text)
1514
+ end
1515
+ end
1516
+
1517
+ # Configuration of destination for Export related errors.
1518
+ class GoogleCloudRetailV2betaExportErrorsConfig
1519
+ include Google::Apis::Core::Hashable
1520
+
1521
+ # Google Cloud Storage path for import errors. This must be an empty, existing
1522
+ # Cloud Storage bucket. Export errors will be written to a file in this bucket,
943
1523
  # one per line, as a JSON-encoded `google.rpc.Status` message.
944
1524
  # Corresponds to the JSON property `gcsPrefix`
945
1525
  # @return [String]
@@ -1036,6 +1616,42 @@ module Google
1036
1616
  end
1037
1617
  end
1038
1618
 
1619
+ # Fulfillment information, such as the store IDs for in-store pickup or region
1620
+ # IDs for different shipping methods.
1621
+ class GoogleCloudRetailV2betaFulfillmentInfo
1622
+ include Google::Apis::Core::Hashable
1623
+
1624
+ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-
1625
+ # in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A
1626
+ # maximum of 2000 values are allowed. Each value must be a string with a length
1627
+ # limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1"
1628
+ # or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned.
1629
+ # Corresponds to the JSON property `placeIds`
1630
+ # @return [Array<String>]
1631
+ attr_accessor :place_ids
1632
+
1633
+ # The fulfillment type, including commonly used types (such as pickup in store
1634
+ # and same day delivery), and custom types. Customers have to map custom types
1635
+ # to their display names before rendering UI. Supported values: * "pickup-in-
1636
+ # store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-
1637
+ # type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5"
1638
+ # If this field is set to an invalid value other than these, an
1639
+ # INVALID_ARGUMENT error is returned.
1640
+ # Corresponds to the JSON property `type`
1641
+ # @return [String]
1642
+ attr_accessor :type
1643
+
1644
+ def initialize(**args)
1645
+ update!(**args)
1646
+ end
1647
+
1648
+ # Update properties of this object
1649
+ def update!(**args)
1650
+ @place_ids = args[:place_ids] if args.key?(:place_ids)
1651
+ @type = args[:type] if args.key?(:type)
1652
+ end
1653
+ end
1654
+
1039
1655
  # Google Cloud Storage location for input content. format.
1040
1656
  class GoogleCloudRetailV2betaGcsSource
1041
1657
  include Google::Apis::Core::Hashable
@@ -1046,8 +1662,7 @@ module Google
1046
1662
  # Importing catalog data from Merchant Center](https://cloud.google.com/retail/
1047
1663
  # recommendations-ai/docs/upload-catalog#mc). Supported values for user events
1048
1664
  # imports: * `user_event` (default): One JSON UserEvent per line. * `
1049
- # user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?
1050
- # hl=en.
1665
+ # user_event_ga360`: Using https://support.google.com/analytics/answer/3437719.
1051
1666
  # Corresponds to the JSON property `dataSchema`
1052
1667
  # @return [String]
1053
1668
  attr_accessor :data_schema
@@ -1074,6 +1689,38 @@ module Google
1074
1689
  end
1075
1690
  end
1076
1691
 
1692
+ # Response message of CatalogService.GetDefaultBranch.
1693
+ class GoogleCloudRetailV2betaGetDefaultBranchResponse
1694
+ include Google::Apis::Core::Hashable
1695
+
1696
+ # Full resource name of the branch id currently set as default branch.
1697
+ # Corresponds to the JSON property `branch`
1698
+ # @return [String]
1699
+ attr_accessor :branch
1700
+
1701
+ # This corresponds to SetDefaultBranchRequest.note field, when this branch was
1702
+ # set as default.
1703
+ # Corresponds to the JSON property `note`
1704
+ # @return [String]
1705
+ attr_accessor :note
1706
+
1707
+ # The time when this branch is set to default.
1708
+ # Corresponds to the JSON property `setTime`
1709
+ # @return [String]
1710
+ attr_accessor :set_time
1711
+
1712
+ def initialize(**args)
1713
+ update!(**args)
1714
+ end
1715
+
1716
+ # Update properties of this object
1717
+ def update!(**args)
1718
+ @branch = args[:branch] if args.key?(:branch)
1719
+ @note = args[:note] if args.key?(:note)
1720
+ @set_time = args[:set_time] if args.key?(:set_time)
1721
+ end
1722
+ end
1723
+
1077
1724
  # Product thumbnail/detail image.
1078
1725
  class GoogleCloudRetailV2betaImage
1079
1726
  include Google::Apis::Core::Hashable
@@ -1111,6 +1758,55 @@ module Google
1111
1758
  end
1112
1759
  end
1113
1760
 
1761
+ # Request message for ImportCompletionData methods.
1762
+ class GoogleCloudRetailV2betaImportCompletionDataRequest
1763
+ include Google::Apis::Core::Hashable
1764
+
1765
+ # The input config source for completion data.
1766
+ # Corresponds to the JSON property `inputConfig`
1767
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaCompletionDataInputConfig]
1768
+ attr_accessor :input_config
1769
+
1770
+ # Pub/Sub topic for receiving notification. If this field is set, when the
1771
+ # import is finished, a notification will be sent to specified Pub/Sub topic.
1772
+ # The message data will be JSON string of a Operation. Format of the Pub/Sub
1773
+ # topic is `projects/`project`/topics/`topic``.
1774
+ # Corresponds to the JSON property `notificationPubsubTopic`
1775
+ # @return [String]
1776
+ attr_accessor :notification_pubsub_topic
1777
+
1778
+ def initialize(**args)
1779
+ update!(**args)
1780
+ end
1781
+
1782
+ # Update properties of this object
1783
+ def update!(**args)
1784
+ @input_config = args[:input_config] if args.key?(:input_config)
1785
+ @notification_pubsub_topic = args[:notification_pubsub_topic] if args.key?(:notification_pubsub_topic)
1786
+ end
1787
+ end
1788
+
1789
+ # Response of the ImportCompletionDataRequest. If the long running operation is
1790
+ # done, this message is returned by the google.longrunning.Operations.response
1791
+ # field if the operation is successful.
1792
+ class GoogleCloudRetailV2betaImportCompletionDataResponse
1793
+ include Google::Apis::Core::Hashable
1794
+
1795
+ # A sample of errors encountered while processing the request.
1796
+ # Corresponds to the JSON property `errorSamples`
1797
+ # @return [Array<Google::Apis::RetailV2beta::GoogleRpcStatus>]
1798
+ attr_accessor :error_samples
1799
+
1800
+ def initialize(**args)
1801
+ update!(**args)
1802
+ end
1803
+
1804
+ # Update properties of this object
1805
+ def update!(**args)
1806
+ @error_samples = args[:error_samples] if args.key?(:error_samples)
1807
+ end
1808
+ end
1809
+
1114
1810
  # Configuration of destination for Import related errors.
1115
1811
  class GoogleCloudRetailV2betaImportErrorsConfig
1116
1812
  include Google::Apis::Core::Hashable
@@ -1147,6 +1843,20 @@ module Google
1147
1843
  # @return [Fixnum]
1148
1844
  attr_accessor :failure_count
1149
1845
 
1846
+ # Pub/Sub topic for receiving notification. If this field is set, when the
1847
+ # import is finished, a notification will be sent to specified Pub/Sub topic.
1848
+ # The message data will be JSON string of a Operation. Format of the Pub/Sub
1849
+ # topic is `projects/`project`/topics/`topic``.
1850
+ # Corresponds to the JSON property `notificationPubsubTopic`
1851
+ # @return [String]
1852
+ attr_accessor :notification_pubsub_topic
1853
+
1854
+ # Id of the request / operation. This is parroting back the requestId that was
1855
+ # passed in the request.
1856
+ # Corresponds to the JSON property `requestId`
1857
+ # @return [String]
1858
+ attr_accessor :request_id
1859
+
1150
1860
  # Count of entries that were processed successfully.
1151
1861
  # Corresponds to the JSON property `successCount`
1152
1862
  # @return [Fixnum]
@@ -1166,6 +1876,8 @@ module Google
1166
1876
  def update!(**args)
1167
1877
  @create_time = args[:create_time] if args.key?(:create_time)
1168
1878
  @failure_count = args[:failure_count] if args.key?(:failure_count)
1879
+ @notification_pubsub_topic = args[:notification_pubsub_topic] if args.key?(:notification_pubsub_topic)
1880
+ @request_id = args[:request_id] if args.key?(:request_id)
1169
1881
  @success_count = args[:success_count] if args.key?(:success_count)
1170
1882
  @update_time = args[:update_time] if args.key?(:update_time)
1171
1883
  end
@@ -1185,6 +1897,30 @@ module Google
1185
1897
  # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaProductInputConfig]
1186
1898
  attr_accessor :input_config
1187
1899
 
1900
+ # Pub/Sub topic for receiving notification. If this field is set, when the
1901
+ # import is finished, a notification will be sent to specified Pub/Sub topic.
1902
+ # The message data will be JSON string of a Operation. Format of the Pub/Sub
1903
+ # topic is `projects/`project`/topics/`topic``. Only supported when
1904
+ # ImportProductsRequest.reconciliation_mode is set to `FULL`.
1905
+ # Corresponds to the JSON property `notificationPubsubTopic`
1906
+ # @return [String]
1907
+ attr_accessor :notification_pubsub_topic
1908
+
1909
+ # The mode of reconciliation between existing products and the products to be
1910
+ # imported. Defaults to ReconciliationMode.INCREMENTAL.
1911
+ # Corresponds to the JSON property `reconciliationMode`
1912
+ # @return [String]
1913
+ attr_accessor :reconciliation_mode
1914
+
1915
+ # Unique identifier provided by client, within the ancestor dataset scope.
1916
+ # Ensures idempotency and used for request deduplication. Server-generated if
1917
+ # unspecified. Up to 128 characters long and must match the pattern: "[a-zA-Z0-
1918
+ # 9_]+". This is returned as Operation.name in ImportMetadata. Only supported
1919
+ # when ImportProductsRequest.reconciliation_mode is set to `FULL`.
1920
+ # Corresponds to the JSON property `requestId`
1921
+ # @return [String]
1922
+ attr_accessor :request_id
1923
+
1188
1924
  # Indicates which fields in the provided imported 'products' to update. If not
1189
1925
  # set, will by default update all fields.
1190
1926
  # Corresponds to the JSON property `updateMask`
@@ -1199,6 +1935,9 @@ module Google
1199
1935
  def update!(**args)
1200
1936
  @errors_config = args[:errors_config] if args.key?(:errors_config)
1201
1937
  @input_config = args[:input_config] if args.key?(:input_config)
1938
+ @notification_pubsub_topic = args[:notification_pubsub_topic] if args.key?(:notification_pubsub_topic)
1939
+ @reconciliation_mode = args[:reconciliation_mode] if args.key?(:reconciliation_mode)
1940
+ @request_id = args[:request_id] if args.key?(:request_id)
1202
1941
  @update_mask = args[:update_mask] if args.key?(:update_mask)
1203
1942
  end
1204
1943
  end
@@ -1289,6 +2028,43 @@ module Google
1289
2028
  end
1290
2029
  end
1291
2030
 
2031
+ # A floating point interval.
2032
+ class GoogleCloudRetailV2betaInterval
2033
+ include Google::Apis::Core::Hashable
2034
+
2035
+ # Exclusive upper bound.
2036
+ # Corresponds to the JSON property `exclusiveMaximum`
2037
+ # @return [Float]
2038
+ attr_accessor :exclusive_maximum
2039
+
2040
+ # Exclusive lower bound.
2041
+ # Corresponds to the JSON property `exclusiveMinimum`
2042
+ # @return [Float]
2043
+ attr_accessor :exclusive_minimum
2044
+
2045
+ # Inclusive upper bound.
2046
+ # Corresponds to the JSON property `maximum`
2047
+ # @return [Float]
2048
+ attr_accessor :maximum
2049
+
2050
+ # Inclusive lower bound.
2051
+ # Corresponds to the JSON property `minimum`
2052
+ # @return [Float]
2053
+ attr_accessor :minimum
2054
+
2055
+ def initialize(**args)
2056
+ update!(**args)
2057
+ end
2058
+
2059
+ # Update properties of this object
2060
+ def update!(**args)
2061
+ @exclusive_maximum = args[:exclusive_maximum] if args.key?(:exclusive_maximum)
2062
+ @exclusive_minimum = args[:exclusive_minimum] if args.key?(:exclusive_minimum)
2063
+ @maximum = args[:maximum] if args.key?(:maximum)
2064
+ @minimum = args[:minimum] if args.key?(:minimum)
2065
+ end
2066
+ end
2067
+
1292
2068
  # Response for CatalogService.ListCatalogs method.
1293
2069
  class GoogleCloudRetailV2betaListCatalogsResponse
1294
2070
  include Google::Apis::Core::Hashable
@@ -1315,6 +2091,32 @@ module Google
1315
2091
  end
1316
2092
  end
1317
2093
 
2094
+ # Response message for ProductService.ListProducts method.
2095
+ class GoogleCloudRetailV2betaListProductsResponse
2096
+ include Google::Apis::Core::Hashable
2097
+
2098
+ # A token that can be sent as ListProductsRequest.page_token to retrieve the
2099
+ # next page. If this field is omitted, there are no subsequent pages.
2100
+ # Corresponds to the JSON property `nextPageToken`
2101
+ # @return [String]
2102
+ attr_accessor :next_page_token
2103
+
2104
+ # The Products.
2105
+ # Corresponds to the JSON property `products`
2106
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaProduct>]
2107
+ attr_accessor :products
2108
+
2109
+ def initialize(**args)
2110
+ update!(**args)
2111
+ end
2112
+
2113
+ # Update properties of this object
2114
+ def update!(**args)
2115
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2116
+ @products = args[:products] if args.key?(:products)
2117
+ end
2118
+ end
2119
+
1318
2120
  # Request message for Predict method.
1319
2121
  class GoogleCloudRetailV2betaPredictRequest
1320
2122
  include Google::Apis::Core::Hashable
@@ -1500,7 +2302,9 @@ module Google
1500
2302
 
1501
2303
  # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-
1502
2304
  # currency-codes.html). If this field is an unrecognizable currency code, an
1503
- # INVALID_ARGUMENT error is returned.
2305
+ # INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the
2306
+ # same Product.primary_product_id must share the same currency_code. Otherwise,
2307
+ # a FAILED_PRECONDITION error is returned.
1504
2308
  # Corresponds to the JSON property `currencyCode`
1505
2309
  # @return [String]
1506
2310
  attr_accessor :currency_code
@@ -1518,6 +2322,29 @@ module Google
1518
2322
  # @return [Float]
1519
2323
  attr_accessor :price
1520
2324
 
2325
+ # The timestamp when the price starts to be effective. This can be set as a
2326
+ # future timestamp, and the price is only used for search after
2327
+ # price_effective_time. If so, the original_price must be set and original_price
2328
+ # is used before price_effective_time. Do not set if price is always effective
2329
+ # because it will cause additional latency during search.
2330
+ # Corresponds to the JSON property `priceEffectiveTime`
2331
+ # @return [String]
2332
+ attr_accessor :price_effective_time
2333
+
2334
+ # The timestamp when the price stops to be effective. The price is used for
2335
+ # search before price_expire_time. If this field is set, the original_price must
2336
+ # be set and original_price is used after price_expire_time. Do not set if price
2337
+ # is always effective because it will cause additional latency during search.
2338
+ # Corresponds to the JSON property `priceExpireTime`
2339
+ # @return [String]
2340
+ attr_accessor :price_expire_time
2341
+
2342
+ # The price range of all variant Product having the same Product.
2343
+ # primary_product_id.
2344
+ # Corresponds to the JSON property `priceRange`
2345
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaPriceInfoPriceRange]
2346
+ attr_accessor :price_range
2347
+
1521
2348
  def initialize(**args)
1522
2349
  update!(**args)
1523
2350
  end
@@ -1528,19 +2355,48 @@ module Google
1528
2355
  @currency_code = args[:currency_code] if args.key?(:currency_code)
1529
2356
  @original_price = args[:original_price] if args.key?(:original_price)
1530
2357
  @price = args[:price] if args.key?(:price)
2358
+ @price_effective_time = args[:price_effective_time] if args.key?(:price_effective_time)
2359
+ @price_expire_time = args[:price_expire_time] if args.key?(:price_expire_time)
2360
+ @price_range = args[:price_range] if args.key?(:price_range)
1531
2361
  end
1532
2362
  end
1533
2363
 
1534
- # Product captures all metadata information of items to be recommended or
1535
- # searched.
1536
- class GoogleCloudRetailV2betaProduct
2364
+ # The price range of all variant Product having the same Product.
2365
+ # primary_product_id.
2366
+ class GoogleCloudRetailV2betaPriceInfoPriceRange
1537
2367
  include Google::Apis::Core::Hashable
1538
2368
 
1539
- # Highly encouraged. Extra product attributes to be included. For example, for
1540
- # products, this could include the store name, vendor, style, color, etc. These
1541
- # are very strong signals for recommendation model, thus we highly recommend
1542
- # providing the attributes here. Features that can take on one of a limited
1543
- # number of possible values. Two types of features can be set are: Textual
2369
+ # A floating point interval.
2370
+ # Corresponds to the JSON property `originalPrice`
2371
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaInterval]
2372
+ attr_accessor :original_price
2373
+
2374
+ # A floating point interval.
2375
+ # Corresponds to the JSON property `price`
2376
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaInterval]
2377
+ attr_accessor :price
2378
+
2379
+ def initialize(**args)
2380
+ update!(**args)
2381
+ end
2382
+
2383
+ # Update properties of this object
2384
+ def update!(**args)
2385
+ @original_price = args[:original_price] if args.key?(:original_price)
2386
+ @price = args[:price] if args.key?(:price)
2387
+ end
2388
+ end
2389
+
2390
+ # Product captures all metadata information of items to be recommended or
2391
+ # searched.
2392
+ class GoogleCloudRetailV2betaProduct
2393
+ include Google::Apis::Core::Hashable
2394
+
2395
+ # Highly encouraged. Extra product attributes to be included. For example, for
2396
+ # products, this could include the store name, vendor, style, color, etc. These
2397
+ # are very strong signals for recommendation model, thus we highly recommend
2398
+ # providing the attributes here. Features that can take on one of a limited
2399
+ # number of possible values. Two types of features can be set are: Textual
1544
2400
  # features. some examples would be the brand/maker of a product, or country of a
1545
2401
  # customer. Numerical features. Some examples would be the height/weight of a
1546
2402
  # product, or age of a customer. For example: `` "vendor": `"text": ["vendor123",
@@ -1548,11 +2404,19 @@ module Google
1548
2404
  # :[8.1, 6.4]` ``. This field needs to pass all below criteria, otherwise an
1549
2405
  # INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100
1550
2406
  # for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit
1551
- # of 128 characters.
2407
+ # of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.
2408
+ # VARIANT. * Max searchable entries count: 30. * For indexable attribute, the
2409
+ # key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or
2410
+ # KEY_1_LIKE_THIS.
1552
2411
  # Corresponds to the JSON property `attributes`
1553
2412
  # @return [Hash<String,Google::Apis::RetailV2beta::GoogleCloudRetailV2betaCustomAttribute>]
1554
2413
  attr_accessor :attributes
1555
2414
 
2415
+ # An intended audience of the Product for whom it's sold.
2416
+ # Corresponds to the JSON property `audience`
2417
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaAudience]
2418
+ attr_accessor :audience
2419
+
1556
2420
  # The online availability of the Product. Default to Availability.IN_STOCK.
1557
2421
  # Google Merchant Center Property [availability](https://support.google.com/
1558
2422
  # merchants/answer/6324448). Schema.org Property [Offer.availability](https://
@@ -1566,11 +2430,20 @@ module Google
1566
2430
  # @return [Fixnum]
1567
2431
  attr_accessor :available_quantity
1568
2432
 
1569
- # The timestamp when this Product becomes available for recommendation.
2433
+ # The timestamp when this Product becomes available for SearchService.Search.
1570
2434
  # Corresponds to the JSON property `availableTime`
1571
2435
  # @return [String]
1572
2436
  attr_accessor :available_time
1573
2437
 
2438
+ # The brands of the product. A maximum of 30 brands are allowed. Each brand must
2439
+ # be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise,
2440
+ # an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](
2441
+ # https://support.google.com/merchants/answer/6324351). Schema.org property [
2442
+ # Product.brand](https://schema.org/brand).
2443
+ # Corresponds to the JSON property `brands`
2444
+ # @return [Array<String>]
2445
+ attr_accessor :brands
2446
+
1574
2447
  # Product categories. This field is repeated for supporting one product
1575
2448
  # belonging to several parallel categories. Strongly recommended using the full
1576
2449
  # path for better search / recommendation quality. To represent full path of
@@ -1591,6 +2464,29 @@ module Google
1591
2464
  # @return [Array<String>]
1592
2465
  attr_accessor :categories
1593
2466
 
2467
+ # The id of the collection members when type is Type.COLLECTION. Should not set
2468
+ # it for other types. A maximum of 1000 values are allowed. Otherwise, an
2469
+ # INVALID_ARGUMENT error is return.
2470
+ # Corresponds to the JSON property `collectionMemberIds`
2471
+ # @return [Array<String>]
2472
+ attr_accessor :collection_member_ids
2473
+
2474
+ # The color information of a Product.
2475
+ # Corresponds to the JSON property `colorInfo`
2476
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaColorInfo]
2477
+ attr_accessor :color_info
2478
+
2479
+ # The condition of the product. Strongly encouraged to use the standard values: "
2480
+ # new", "refurbished", "used". A maximum of 5 values are allowed per Product.
2481
+ # Each value must be a UTF-8 encoded string with a length limit of 128
2482
+ # characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant
2483
+ # Center property [condition](https://support.google.com/merchants/answer/
2484
+ # 6324469). Schema.org property [Offer.itemCondition](https://schema.org/
2485
+ # itemCondition).
2486
+ # Corresponds to the JSON property `conditions`
2487
+ # @return [Array<String>]
2488
+ attr_accessor :conditions
2489
+
1594
2490
  # Product description. This field must be a UTF-8 encoded string with a length
1595
2491
  # limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
1596
2492
  # Google Merchant Center property [description](https://support.google.com/
@@ -1600,6 +2496,34 @@ module Google
1600
2496
  # @return [String]
1601
2497
  attr_accessor :description
1602
2498
 
2499
+ # The timestamp when this product becomes unavailable for SearchService.Search.
2500
+ # If it is set, the Product is not available for SearchService.Search after
2501
+ # expire_time. However, the product can still be retrieved by ProductService.
2502
+ # GetProduct and ProductService.ListProducts. Google Merchant Center property [
2503
+ # expiration_date](https://support.google.com/merchants/answer/6324499).
2504
+ # Corresponds to the JSON property `expireTime`
2505
+ # @return [String]
2506
+ attr_accessor :expire_time
2507
+
2508
+ # Fulfillment information, such as the store IDs for in-store pickup or region
2509
+ # IDs for different shipping methods. All the elements must have distinct
2510
+ # FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.
2511
+ # Corresponds to the JSON property `fulfillmentInfo`
2512
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaFulfillmentInfo>]
2513
+ attr_accessor :fulfillment_info
2514
+
2515
+ # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8
2516
+ # encoded string with a length limit of 128 characters. Otherwise, an
2517
+ # INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](
2518
+ # https://support.google.com/merchants/answer/6324461). Schema.org property [
2519
+ # Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/
2520
+ # gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](
2521
+ # https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If
2522
+ # the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.
2523
+ # Corresponds to the JSON property `gtin`
2524
+ # @return [String]
2525
+ attr_accessor :gtin
2526
+
1603
2527
  # Immutable. Product identifier, which is the final component of name. For
1604
2528
  # example, this field is "id_1", if name is `projects/*/locations/global/
1605
2529
  # catalogs/default_catalog/branches/default_branch/products/id_1`. This field
@@ -1619,6 +2543,26 @@ module Google
1619
2543
  # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaImage>]
1620
2544
  attr_accessor :images
1621
2545
 
2546
+ # Language of the title/description and other string attributes. Use language
2547
+ # tags defined by BCP 47. For product prediction, this field is ignored and the
2548
+ # model automatically detects the text language. The Product can include text in
2549
+ # different languages, but duplicating Products to provide text in multiple
2550
+ # languages can result in degraded model performance. For product search this
2551
+ # field is in use. It defaults to "en-US" if unset.
2552
+ # Corresponds to the JSON property `languageCode`
2553
+ # @return [String]
2554
+ attr_accessor :language_code
2555
+
2556
+ # The material of the product. For example, "leather", "wooden". A maximum of 5
2557
+ # values are allowed. Each value must be a UTF-8 encoded string with a length
2558
+ # limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
2559
+ # Google Merchant Center property [material](https://support.google.com/
2560
+ # merchants/answer/6324410). Schema.org property [Product.material](https://
2561
+ # schema.org/material).
2562
+ # Corresponds to the JSON property `materials`
2563
+ # @return [Array<String>]
2564
+ attr_accessor :materials
2565
+
1622
2566
  # Immutable. Full resource name of the product, such as `projects/*/locations/
1623
2567
  # global/catalogs/default_catalog/branches/default_branch/products/product_id`.
1624
2568
  # The branch ID must be "default_branch".
@@ -1626,6 +2570,16 @@ module Google
1626
2570
  # @return [String]
1627
2571
  attr_accessor :name
1628
2572
 
2573
+ # The pattern or graphic print of the product. For example, "striped", "polka
2574
+ # dot", "paisley". A maximum of 5 values are allowed per Product. Each value
2575
+ # must be a UTF-8 encoded string with a length limit of 128 characters.
2576
+ # Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center
2577
+ # property [pattern](https://support.google.com/merchants/answer/6324483).
2578
+ # Schema.org property [Product.pattern](https://schema.org/pattern).
2579
+ # Corresponds to the JSON property `patterns`
2580
+ # @return [Array<String>]
2581
+ attr_accessor :patterns
2582
+
1629
2583
  # The price information of a Product.
1630
2584
  # Corresponds to the JSON property `priceInfo`
1631
2585
  # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaPriceInfo]
@@ -1644,6 +2598,57 @@ module Google
1644
2598
  # @return [String]
1645
2599
  attr_accessor :primary_product_id
1646
2600
 
2601
+ # The promotions applied to the product. A maximum of 10 values are allowed per
2602
+ # Product.
2603
+ # Corresponds to the JSON property `promotions`
2604
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaPromotion>]
2605
+ attr_accessor :promotions
2606
+
2607
+ # The timestamp when the product is published by the retailer for the first time,
2608
+ # which indicates the freshness of the products. Note that this field is
2609
+ # different from available_time, given it purely describes product freshness
2610
+ # regardless of when it is available on search and recommendation.
2611
+ # Corresponds to the JSON property `publishTime`
2612
+ # @return [String]
2613
+ attr_accessor :publish_time
2614
+
2615
+ # The rating of a Product.
2616
+ # Corresponds to the JSON property `rating`
2617
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaRating]
2618
+ attr_accessor :rating
2619
+
2620
+ # Indicates which fields in the Products are returned in SearchResponse.
2621
+ # Supported fields for all types: * audience * availability * brands *
2622
+ # color_info * conditions * gtin * materials * name * patterns * price_info *
2623
+ # rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.
2624
+ # COLLECTION: * categories * description * images Supported fields only for Type.
2625
+ # VARIANT: * Only the first image in images To mark attributes as retrievable,
2626
+ # include paths of the form "attributes.key" where "key" is the key of a custom
2627
+ # attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION,
2628
+ # the following fields are always returned in SearchResponse by default: * name
2629
+ # For Type.VARIANT, the following fields are always returned in by default: *
2630
+ # name * color_info Maximum number of paths is 20. Otherwise, an
2631
+ # INVALID_ARGUMENT error is returned.
2632
+ # Corresponds to the JSON property `retrievableFields`
2633
+ # @return [String]
2634
+ attr_accessor :retrievable_fields
2635
+
2636
+ # The size of the product. To represent different size systems or size types,
2637
+ # consider using this format: [[[size_system:]size_type:]size_value]. For
2638
+ # example, in "US:MENS:M", "US" represents size system; "MENS" represents size
2639
+ # type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS"
2640
+ # represents size type; "27" represents size value. In "32 inches", both size
2641
+ # system and size type are empty, while size value is "32 inches". A maximum of
2642
+ # 20 values are allowed per Product. Each value must be a UTF-8 encoded string
2643
+ # with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is
2644
+ # returned. Google Merchant Center property [size](https://support.google.com/
2645
+ # merchants/answer/6324492), [size_type](https://support.google.com/merchants/
2646
+ # answer/6324497) and [size_system](https://support.google.com/merchants/answer/
2647
+ # 6324502). Schema.org property [Product.size](https://schema.org/size).
2648
+ # Corresponds to the JSON property `sizes`
2649
+ # @return [Array<String>]
2650
+ attr_accessor :sizes
2651
+
1647
2652
  # Custom tags associated with the product. At most 250 values are allowed per
1648
2653
  # Product. This value must be a UTF-8 encoded string with a length limit of 1,
1649
2654
  # 000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can
@@ -1663,6 +2668,16 @@ module Google
1663
2668
  # @return [String]
1664
2669
  attr_accessor :title
1665
2670
 
2671
+ # Input only. The TTL (time to live) of the product. If it is set, expire_time
2672
+ # is set as current timestamp plus ttl. The derived expire_time is returned in
2673
+ # the output and ttl is left blank when retrieving the Product. If it is set,
2674
+ # the product is not available for SearchService.Search after current timestamp
2675
+ # plus ttl. However, the product can still be retrieved by ProductService.
2676
+ # GetProduct and ProductService.ListProducts.
2677
+ # Corresponds to the JSON property `ttl`
2678
+ # @return [String]
2679
+ attr_accessor :ttl
2680
+
1666
2681
  # Immutable. The type of the product. Default to Catalog.product_level_config.
1667
2682
  # ingestion_product_type if unset.
1668
2683
  # Corresponds to the JSON property `type`
@@ -1680,6 +2695,15 @@ module Google
1680
2695
  # @return [String]
1681
2696
  attr_accessor :uri
1682
2697
 
2698
+ # Output only. Product variants grouped together on primary product which share
2699
+ # similar product attributes. It's automatically grouped by primary_product_id
2700
+ # for all the product variants. Only populated for Type.PRIMARY Products. Note:
2701
+ # This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field
2702
+ # in API requests.
2703
+ # Corresponds to the JSON property `variants`
2704
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaProduct>]
2705
+ attr_accessor :variants
2706
+
1683
2707
  def initialize(**args)
1684
2708
  update!(**args)
1685
2709
  end
@@ -1687,20 +2711,38 @@ module Google
1687
2711
  # Update properties of this object
1688
2712
  def update!(**args)
1689
2713
  @attributes = args[:attributes] if args.key?(:attributes)
2714
+ @audience = args[:audience] if args.key?(:audience)
1690
2715
  @availability = args[:availability] if args.key?(:availability)
1691
2716
  @available_quantity = args[:available_quantity] if args.key?(:available_quantity)
1692
2717
  @available_time = args[:available_time] if args.key?(:available_time)
2718
+ @brands = args[:brands] if args.key?(:brands)
1693
2719
  @categories = args[:categories] if args.key?(:categories)
2720
+ @collection_member_ids = args[:collection_member_ids] if args.key?(:collection_member_ids)
2721
+ @color_info = args[:color_info] if args.key?(:color_info)
2722
+ @conditions = args[:conditions] if args.key?(:conditions)
1694
2723
  @description = args[:description] if args.key?(:description)
2724
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
2725
+ @fulfillment_info = args[:fulfillment_info] if args.key?(:fulfillment_info)
2726
+ @gtin = args[:gtin] if args.key?(:gtin)
1695
2727
  @id = args[:id] if args.key?(:id)
1696
2728
  @images = args[:images] if args.key?(:images)
2729
+ @language_code = args[:language_code] if args.key?(:language_code)
2730
+ @materials = args[:materials] if args.key?(:materials)
1697
2731
  @name = args[:name] if args.key?(:name)
2732
+ @patterns = args[:patterns] if args.key?(:patterns)
1698
2733
  @price_info = args[:price_info] if args.key?(:price_info)
1699
2734
  @primary_product_id = args[:primary_product_id] if args.key?(:primary_product_id)
2735
+ @promotions = args[:promotions] if args.key?(:promotions)
2736
+ @publish_time = args[:publish_time] if args.key?(:publish_time)
2737
+ @rating = args[:rating] if args.key?(:rating)
2738
+ @retrievable_fields = args[:retrievable_fields] if args.key?(:retrievable_fields)
2739
+ @sizes = args[:sizes] if args.key?(:sizes)
1700
2740
  @tags = args[:tags] if args.key?(:tags)
1701
2741
  @title = args[:title] if args.key?(:title)
2742
+ @ttl = args[:ttl] if args.key?(:ttl)
1702
2743
  @type = args[:type] if args.key?(:type)
1703
2744
  @uri = args[:uri] if args.key?(:uri)
2745
+ @variants = args[:variants] if args.key?(:variants)
1704
2746
  end
1705
2747
  end
1706
2748
 
@@ -1828,6 +2870,29 @@ module Google
1828
2870
  end
1829
2871
  end
1830
2872
 
2873
+ # Promotion information.
2874
+ class GoogleCloudRetailV2betaPromotion
2875
+ include Google::Apis::Core::Hashable
2876
+
2877
+ # ID of the promotion. For example, "free gift". The value value must be a UTF-8
2878
+ # encoded string with a length limit of 128 characters, and match the pattern: a-
2879
+ # zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an
2880
+ # INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion]
2881
+ # (https://support.google.com/merchants/answer/7050148).
2882
+ # Corresponds to the JSON property `promotionId`
2883
+ # @return [String]
2884
+ attr_accessor :promotion_id
2885
+
2886
+ def initialize(**args)
2887
+ update!(**args)
2888
+ end
2889
+
2890
+ # Update properties of this object
2891
+ def update!(**args)
2892
+ @promotion_id = args[:promotion_id] if args.key?(:promotion_id)
2893
+ end
2894
+ end
2895
+
1831
2896
  # A transaction represents the entire purchase transaction.
1832
2897
  class GoogleCloudRetailV2betaPurchaseTransaction
1833
2898
  include Google::Apis::Core::Hashable
@@ -1948,6 +3013,44 @@ module Google
1948
3013
  end
1949
3014
  end
1950
3015
 
3016
+ # The rating of a Product.
3017
+ class GoogleCloudRetailV2betaRating
3018
+ include Google::Apis::Core::Hashable
3019
+
3020
+ # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an
3021
+ # INVALID_ARGUMENT error is returned.
3022
+ # Corresponds to the JSON property `averageRating`
3023
+ # @return [Float]
3024
+ attr_accessor :average_rating
3025
+
3026
+ # The total number of ratings. This value is independent of the value of
3027
+ # rating_histogram. This value must be nonnegative. Otherwise, an
3028
+ # INVALID_ARGUMENT error is returned.
3029
+ # Corresponds to the JSON property `ratingCount`
3030
+ # @return [Fixnum]
3031
+ attr_accessor :rating_count
3032
+
3033
+ # List of rating counts per rating value (index = rating - 1). The list is empty
3034
+ # if there is no rating. If the list is non-empty, its size is always 5.
3035
+ # Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47,
3036
+ # 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2
3037
+ # star, and so on.
3038
+ # Corresponds to the JSON property `ratingHistogram`
3039
+ # @return [Array<Fixnum>]
3040
+ attr_accessor :rating_histogram
3041
+
3042
+ def initialize(**args)
3043
+ update!(**args)
3044
+ end
3045
+
3046
+ # Update properties of this object
3047
+ def update!(**args)
3048
+ @average_rating = args[:average_rating] if args.key?(:average_rating)
3049
+ @rating_count = args[:rating_count] if args.key?(:rating_count)
3050
+ @rating_histogram = args[:rating_histogram] if args.key?(:rating_histogram)
3051
+ end
3052
+ end
3053
+
1951
3054
  # Metadata for RejoinUserEvents method.
1952
3055
  class GoogleCloudRetailV2betaRejoinUserEventsMetadata
1953
3056
  include Google::Apis::Core::Hashable
@@ -2002,6 +3105,853 @@ module Google
2002
3105
  end
2003
3106
  end
2004
3107
 
3108
+ # Metadata related to the progress of the RemoveFulfillmentPlaces operation.
3109
+ # Currently empty because there is no meaningful metadata populated from the
3110
+ # RemoveFulfillmentPlaces method.
3111
+ class GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata
3112
+ include Google::Apis::Core::Hashable
3113
+
3114
+ def initialize(**args)
3115
+ update!(**args)
3116
+ end
3117
+
3118
+ # Update properties of this object
3119
+ def update!(**args)
3120
+ end
3121
+ end
3122
+
3123
+ # Request message for RemoveFulfillmentPlaces method.
3124
+ class GoogleCloudRetailV2betaRemoveFulfillmentPlacesRequest
3125
+ include Google::Apis::Core::Hashable
3126
+
3127
+ # If set to true, and the Product is not found, the fulfillment information will
3128
+ # still be processed and retained for at most 1 day and processed once the
3129
+ # Product is created. If set to false, an INVALID_ARGUMENT error is returned if
3130
+ # the Product is not found.
3131
+ # Corresponds to the JSON property `allowMissing`
3132
+ # @return [Boolean]
3133
+ attr_accessor :allow_missing
3134
+ alias_method :allow_missing?, :allow_missing
3135
+
3136
+ # Required. The IDs for this type, such as the store IDs for "pickup-in-store"
3137
+ # or the region IDs for "same-day-delivery", to be removed for this type. At
3138
+ # least 1 value is required, and a maximum of 2000 values are allowed. Each
3139
+ # value must be a string with a length limit of 10 characters, matching the
3140
+ # pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an
3141
+ # INVALID_ARGUMENT error is returned.
3142
+ # Corresponds to the JSON property `placeIds`
3143
+ # @return [Array<String>]
3144
+ attr_accessor :place_ids
3145
+
3146
+ # The time when the fulfillment updates are issued, used to prevent out-of-order
3147
+ # updates on fulfillment information. If not provided, the internal system time
3148
+ # will be used.
3149
+ # Corresponds to the JSON property `removeTime`
3150
+ # @return [String]
3151
+ attr_accessor :remove_time
3152
+
3153
+ # Required. The fulfillment type, including commonly used types (such as pickup
3154
+ # in store and same day delivery), and custom types. Supported values: * "pickup-
3155
+ # in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "
3156
+ # custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-
3157
+ # type-5" If this field is set to an invalid value other than these, an
3158
+ # INVALID_ARGUMENT error is returned. This field directly corresponds to Product.
3159
+ # fulfillment_info.type.
3160
+ # Corresponds to the JSON property `type`
3161
+ # @return [String]
3162
+ attr_accessor :type
3163
+
3164
+ def initialize(**args)
3165
+ update!(**args)
3166
+ end
3167
+
3168
+ # Update properties of this object
3169
+ def update!(**args)
3170
+ @allow_missing = args[:allow_missing] if args.key?(:allow_missing)
3171
+ @place_ids = args[:place_ids] if args.key?(:place_ids)
3172
+ @remove_time = args[:remove_time] if args.key?(:remove_time)
3173
+ @type = args[:type] if args.key?(:type)
3174
+ end
3175
+ end
3176
+
3177
+ # Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
3178
+ # is no meaningful response populated from the RemoveFulfillmentPlaces method.
3179
+ class GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse
3180
+ include Google::Apis::Core::Hashable
3181
+
3182
+ def initialize(**args)
3183
+ update!(**args)
3184
+ end
3185
+
3186
+ # Update properties of this object
3187
+ def update!(**args)
3188
+ end
3189
+ end
3190
+
3191
+ # Request message for SearchService.Search method.
3192
+ class GoogleCloudRetailV2betaSearchRequest
3193
+ include Google::Apis::Core::Hashable
3194
+
3195
+ # Boost specification to boost certain items.
3196
+ # Corresponds to the JSON property `boostSpec`
3197
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchRequestBoostSpec]
3198
+ attr_accessor :boost_spec
3199
+
3200
+ # The branch resource name, such as `projects/*/locations/global/catalogs/
3201
+ # default_catalog/branches/0`. Use "default_branch" as the branch ID or leave
3202
+ # this field empty, to search products under the default branch.
3203
+ # Corresponds to the JSON property `branch`
3204
+ # @return [String]
3205
+ attr_accessor :branch
3206
+
3207
+ # The filter applied to every search request when quality improvement such as
3208
+ # query expansion is needed. For example, if a query does not have enough
3209
+ # results, an expanded query with SearchRequest.canonical_filter will be
3210
+ # returned as a supplement of the original query. This field is strongly
3211
+ # recommended to achieve high search quality. See SearchRequest.filter for more
3212
+ # details about filter syntax.
3213
+ # Corresponds to the JSON property `canonicalFilter`
3214
+ # @return [String]
3215
+ attr_accessor :canonical_filter
3216
+
3217
+ # The specifications of dynamically generated facets.
3218
+ # Corresponds to the JSON property `dynamicFacetSpec`
3219
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchRequestDynamicFacetSpec]
3220
+ attr_accessor :dynamic_facet_spec
3221
+
3222
+ # Facet specifications for faceted search. If empty, no facets are returned. A
3223
+ # maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is
3224
+ # returned.
3225
+ # Corresponds to the JSON property `facetSpecs`
3226
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchRequestFacetSpec>]
3227
+ attr_accessor :facet_specs
3228
+
3229
+ # The filter syntax consists of an expression language for constructing a
3230
+ # predicate from one or more fields of the products being filtered. Filter
3231
+ # expression is case-sensitive. See more details at this [user guide](/retail/
3232
+ # private/docs/filter-and-order#filter). If this field is unrecognizable, an
3233
+ # INVALID_ARGUMENT is returned.
3234
+ # Corresponds to the JSON property `filter`
3235
+ # @return [String]
3236
+ attr_accessor :filter
3237
+
3238
+ # A 0-indexed integer that specifies the current offset (that is, starting
3239
+ # result location, amongst the Products deemed by the API as relevant) in search
3240
+ # results. This field is only considered if page_token is unset. If this field
3241
+ # is negative, an INVALID_ARGUMENT is returned.
3242
+ # Corresponds to the JSON property `offset`
3243
+ # @return [Fixnum]
3244
+ attr_accessor :offset
3245
+
3246
+ # The order in which products are returned. Products can be ordered by a field
3247
+ # in an Product object. Leave it unset if ordered by relevance. OrderBy
3248
+ # expression is case-sensitive. See more details at this [user guide](/retail/
3249
+ # private/docs/filter-and-order#order). If this field is unrecognizable, an
3250
+ # INVALID_ARGUMENT is returned.
3251
+ # Corresponds to the JSON property `orderBy`
3252
+ # @return [String]
3253
+ attr_accessor :order_by
3254
+
3255
+ # The categories associated with a category page. Required for category
3256
+ # navigation queries to achieve good search quality. The format should be the
3257
+ # same as UserEvent.page_categories; To represent full path of category, use '>'
3258
+ # sign to separate different hierarchies. If '>' is part of the category name,
3259
+ # please replace it with other character(s). Category pages include special
3260
+ # pages such as sales or promotions. For instance, a special sale page may have
3261
+ # the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"].
3262
+ # Corresponds to the JSON property `pageCategories`
3263
+ # @return [Array<String>]
3264
+ attr_accessor :page_categories
3265
+
3266
+ # Maximum number of Products to return. If unspecified, defaults to a reasonable
3267
+ # value. The maximum allowed value is 120. Values above 120 will be coerced to
3268
+ # 120. If this field is negative, an INVALID_ARGUMENT is returned.
3269
+ # Corresponds to the JSON property `pageSize`
3270
+ # @return [Fixnum]
3271
+ attr_accessor :page_size
3272
+
3273
+ # A page token SearchResponse.next_page_token, received from a previous
3274
+ # SearchService.Search call. Provide this to retrieve the subsequent page. When
3275
+ # paginating, all other parameters provided to SearchService.Search must match
3276
+ # the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is
3277
+ # returned.
3278
+ # Corresponds to the JSON property `pageToken`
3279
+ # @return [String]
3280
+ attr_accessor :page_token
3281
+
3282
+ # Raw search query.
3283
+ # Corresponds to the JSON property `query`
3284
+ # @return [String]
3285
+ attr_accessor :query
3286
+
3287
+ # Specification to determine under which conditions query expansion should occur.
3288
+ # Corresponds to the JSON property `queryExpansionSpec`
3289
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchRequestQueryExpansionSpec]
3290
+ attr_accessor :query_expansion_spec
3291
+
3292
+ # Information of an end user.
3293
+ # Corresponds to the JSON property `userInfo`
3294
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaUserInfo]
3295
+ attr_accessor :user_info
3296
+
3297
+ # The keys to fetch and rollup the matching variant Products attributes. The
3298
+ # attributes from all the matching variant Products are merged and de-duplicated.
3299
+ # Notice that rollup variant Products attributes will lead to extra query
3300
+ # latency. Maximum number of keys is 10. For Product.fulfillment_info, a
3301
+ # fulfillment type and a fulfillment ID must be provided in the format of "
3302
+ # fulfillmentType.filfillmentId". E.g., in "pickupInStore.store123", "
3303
+ # pickupInStore" is fulfillment type and "store123" is the store ID. Supported
3304
+ # keys are: * colorFamilies * price * originalPrice * discount * attributes.key,
3305
+ # where key is any key in the Product.attributes map. * pickupInStore.id, where
3306
+ # id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.PICKUP_IN_STORE. *
3307
+ # shipToStore.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.
3308
+ # Type.SHIP_TO_STORE. * sameDayDelivery.id, where id is any FulfillmentInfo.ids
3309
+ # for type FulfillmentInfo.Type.SAME_DAY_DELIVERY. * nextDayDelivery.id, where
3310
+ # id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.NEXT_DAY_DELIVERY.
3311
+ # * customFulfillment1.id, where id is any FulfillmentInfo.ids for type
3312
+ # FulfillmentInfo.Type.CUSTOM_TYPE_1. * customFulfillment2.id, where id is any
3313
+ # FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_2. *
3314
+ # customFulfillment3.id, where id is any FulfillmentInfo.ids for type
3315
+ # FulfillmentInfo.Type.CUSTOM_TYPE_3. * customFulfillment4.id, where id is any
3316
+ # FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_4. *
3317
+ # customFulfillment5.id, where id is any FulfillmentInfo.ids for type
3318
+ # FulfillmentInfo.Type.CUSTOM_TYPE_5. If this field is set to an invalid value
3319
+ # other than these, an INVALID_ARGUMENT error is returned.
3320
+ # Corresponds to the JSON property `variantRollupKeys`
3321
+ # @return [Array<String>]
3322
+ attr_accessor :variant_rollup_keys
3323
+
3324
+ # Required. A unique identifier for tracking visitors. For example, this could
3325
+ # be implemented with an HTTP cookie, which should be able to uniquely identify
3326
+ # a visitor on a single device. This unique identifier should not change if the
3327
+ # visitor logs in or out of the website. The field must be a UTF-8 encoded
3328
+ # string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT
3329
+ # error is returned.
3330
+ # Corresponds to the JSON property `visitorId`
3331
+ # @return [String]
3332
+ attr_accessor :visitor_id
3333
+
3334
+ def initialize(**args)
3335
+ update!(**args)
3336
+ end
3337
+
3338
+ # Update properties of this object
3339
+ def update!(**args)
3340
+ @boost_spec = args[:boost_spec] if args.key?(:boost_spec)
3341
+ @branch = args[:branch] if args.key?(:branch)
3342
+ @canonical_filter = args[:canonical_filter] if args.key?(:canonical_filter)
3343
+ @dynamic_facet_spec = args[:dynamic_facet_spec] if args.key?(:dynamic_facet_spec)
3344
+ @facet_specs = args[:facet_specs] if args.key?(:facet_specs)
3345
+ @filter = args[:filter] if args.key?(:filter)
3346
+ @offset = args[:offset] if args.key?(:offset)
3347
+ @order_by = args[:order_by] if args.key?(:order_by)
3348
+ @page_categories = args[:page_categories] if args.key?(:page_categories)
3349
+ @page_size = args[:page_size] if args.key?(:page_size)
3350
+ @page_token = args[:page_token] if args.key?(:page_token)
3351
+ @query = args[:query] if args.key?(:query)
3352
+ @query_expansion_spec = args[:query_expansion_spec] if args.key?(:query_expansion_spec)
3353
+ @user_info = args[:user_info] if args.key?(:user_info)
3354
+ @variant_rollup_keys = args[:variant_rollup_keys] if args.key?(:variant_rollup_keys)
3355
+ @visitor_id = args[:visitor_id] if args.key?(:visitor_id)
3356
+ end
3357
+ end
3358
+
3359
+ # Boost specification to boost certain items.
3360
+ class GoogleCloudRetailV2betaSearchRequestBoostSpec
3361
+ include Google::Apis::Core::Hashable
3362
+
3363
+ # Condition boost specifications. If a product matches multiple conditions in
3364
+ # the specifictions, boost scores from these specifications are all applied and
3365
+ # combined in a non-linear way. Maximum number of specifications is 10.
3366
+ # Corresponds to the JSON property `conditionBoostSpecs`
3367
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchRequestBoostSpecConditionBoostSpec>]
3368
+ attr_accessor :condition_boost_specs
3369
+
3370
+ def initialize(**args)
3371
+ update!(**args)
3372
+ end
3373
+
3374
+ # Update properties of this object
3375
+ def update!(**args)
3376
+ @condition_boost_specs = args[:condition_boost_specs] if args.key?(:condition_boost_specs)
3377
+ end
3378
+ end
3379
+
3380
+ # Boost applies to products which match a condition.
3381
+ class GoogleCloudRetailV2betaSearchRequestBoostSpecConditionBoostSpec
3382
+ include Google::Apis::Core::Hashable
3383
+
3384
+ # Strength of the condition boost, which should be in [-1, 1]. Negative boost
3385
+ # means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion.
3386
+ # However, it does not necessarily mean that the boosted item will be the top
3387
+ # result at all times, nor that other items will be excluded. Results could
3388
+ # still be shown even when none of them matches the condition. And results that
3389
+ # are significantly more relevant to the search query can still trump your
3390
+ # heavily favored but irrelevant items. Setting to -1.0 gives the item a big
3391
+ # demotion. However, results that are deeply relevant might still be shown. The
3392
+ # item will have an upstream battle to get a fairly high ranking, but it is not
3393
+ # blocked out completely. Setting to 0.0 means no boost applied. The boosting
3394
+ # condition is ignored.
3395
+ # Corresponds to the JSON property `boost`
3396
+ # @return [Float]
3397
+ attr_accessor :boost
3398
+
3399
+ # An expression which specifies a boost condition. The syntax and supported
3400
+ # fields are the same as a filter expression. See SearchRequest.filter for
3401
+ # detail syntax and limitations. Examples: * To boost products with product ID "
3402
+ # product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "
3403
+ # product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
3404
+ # Corresponds to the JSON property `condition`
3405
+ # @return [String]
3406
+ attr_accessor :condition
3407
+
3408
+ def initialize(**args)
3409
+ update!(**args)
3410
+ end
3411
+
3412
+ # Update properties of this object
3413
+ def update!(**args)
3414
+ @boost = args[:boost] if args.key?(:boost)
3415
+ @condition = args[:condition] if args.key?(:condition)
3416
+ end
3417
+ end
3418
+
3419
+ # The specifications of dynamically generated facets.
3420
+ class GoogleCloudRetailV2betaSearchRequestDynamicFacetSpec
3421
+ include Google::Apis::Core::Hashable
3422
+
3423
+ # Mode of the DynamicFacet feature. Defaults to Mode.DISABLED if it's unset.
3424
+ # Corresponds to the JSON property `mode`
3425
+ # @return [String]
3426
+ attr_accessor :mode
3427
+
3428
+ def initialize(**args)
3429
+ update!(**args)
3430
+ end
3431
+
3432
+ # Update properties of this object
3433
+ def update!(**args)
3434
+ @mode = args[:mode] if args.key?(:mode)
3435
+ end
3436
+ end
3437
+
3438
+ # A facet specification to perform faceted search.
3439
+ class GoogleCloudRetailV2betaSearchRequestFacetSpec
3440
+ include Google::Apis::Core::Hashable
3441
+
3442
+ # Enables dynamic position for this facet. If set to true, the position of this
3443
+ # facet among all facets in the response is determined by Google Retail Search.
3444
+ # It will be ordered together with dynamic facets if dynamic facets is enabled.
3445
+ # If set to false, the position of this facet in the response will be the same
3446
+ # as in the request, and it will be ranked before the facets with dynamic
3447
+ # position enable and all dynamic facets. For example, you may always want to
3448
+ # have rating facet returned in the response, but it's not necessarily to always
3449
+ # display the rating facet at the top. In that case, you can set
3450
+ # enable_dynamic_position to true so that the position of rating facet in
3451
+ # response will be determined by Google Retail Search. Another example, assuming
3452
+ # you have the following facets in the request: * "rating",
3453
+ # enable_dynamic_position = true * "price", enable_dynamic_position = false * "
3454
+ # brands", enable_dynamic_position = false And also you have a dynamic facets
3455
+ # enable, which will generate a facet 'gender'. Then the final order of the
3456
+ # facets in the response can be ("price", "brands", "rating", "gender") or ("
3457
+ # price", "brands", "gender", "rating") depends on how Google Retail Search
3458
+ # orders "gender" and "rating" facets. However, notice that "price" and "brands"
3459
+ # will always be ranked at 1st and 2nd position since their
3460
+ # enable_dynamic_position are false.
3461
+ # Corresponds to the JSON property `enableDynamicPosition`
3462
+ # @return [Boolean]
3463
+ attr_accessor :enable_dynamic_position
3464
+ alias_method :enable_dynamic_position?, :enable_dynamic_position
3465
+
3466
+ # List of keys to exclude when faceting. By default, FacetKey.key is not
3467
+ # excluded from the filter unless it is listed in this field. For example,
3468
+ # suppose there are 100 products with color facet "Red" and 200 products with
3469
+ # color facet "Blue". A query containing the filter "colorFamilies:ANY("Red")"
3470
+ # and have "colorFamilies" as FacetKey.key will by default return the "Red" with
3471
+ # count 100. If this field contains "colorFamilies", then the query returns both
3472
+ # the "Red" with count 100 and "Blue" with count 200, because the "colorFamilies"
3473
+ # key is now excluded from the filter. A maximum of 100 values are allowed.
3474
+ # Otherwise, an INVALID_ARGUMENT error is returned.
3475
+ # Corresponds to the JSON property `excludedFilterKeys`
3476
+ # @return [Array<String>]
3477
+ attr_accessor :excluded_filter_keys
3478
+
3479
+ # Specifies how a facet is computed.
3480
+ # Corresponds to the JSON property `facetKey`
3481
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchRequestFacetSpecFacetKey]
3482
+ attr_accessor :facet_key
3483
+
3484
+ # Maximum of facet values that should be returned for this facet. If unspecified,
3485
+ # defaults to 20. The maximum allowed value is 300. Values above 300 will be
3486
+ # coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned.
3487
+ # Corresponds to the JSON property `limit`
3488
+ # @return [Fixnum]
3489
+ attr_accessor :limit
3490
+
3491
+ def initialize(**args)
3492
+ update!(**args)
3493
+ end
3494
+
3495
+ # Update properties of this object
3496
+ def update!(**args)
3497
+ @enable_dynamic_position = args[:enable_dynamic_position] if args.key?(:enable_dynamic_position)
3498
+ @excluded_filter_keys = args[:excluded_filter_keys] if args.key?(:excluded_filter_keys)
3499
+ @facet_key = args[:facet_key] if args.key?(:facet_key)
3500
+ @limit = args[:limit] if args.key?(:limit)
3501
+ end
3502
+ end
3503
+
3504
+ # Specifies how a facet is computed.
3505
+ class GoogleCloudRetailV2betaSearchRequestFacetSpecFacetKey
3506
+ include Google::Apis::Core::Hashable
3507
+
3508
+ # Only get facet values that contains the given strings. For example, suppose "
3509
+ # categories" has three values "Women > Shoe", "Women > Dress" and "Men > Shoe".
3510
+ # If set "contains" to "Shoe", the "categories" facet will give only "Women >
3511
+ # Shoe" and "Men > Shoe". Only supported on textual fields. Maximum is 10.
3512
+ # Corresponds to the JSON property `contains`
3513
+ # @return [Array<String>]
3514
+ attr_accessor :contains
3515
+
3516
+ # Set only if values should be bucketized into intervals. Must be set for facets
3517
+ # with numerical values. Must not be set for facet with text values. Maximum
3518
+ # number of intervals is 30.
3519
+ # Corresponds to the JSON property `intervals`
3520
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaInterval>]
3521
+ attr_accessor :intervals
3522
+
3523
+ # Required. Supported textual and numerical facet keys in Product object, over
3524
+ # which the facet values are computed. Facet key is case-sensitive. Allowed
3525
+ # facet keys when FacetKey.query is not specified: * textual_field = *# The
3526
+ # Product.brands. * "brands"; *# The Product.categories. * "categories"; *# The
3527
+ # Audience.genders. * | "genders"; *# The Audience.age_groups. * | "ageGroups"; *
3528
+ # # The Product.availability. Value is one of * *# "IN_STOCK", "OUT_OF_STOCK",
3529
+ # PREORDER", "BACKORDER". * | "availability"; *# The ColorInfo.color_families. *
3530
+ # | "colorFamilies"; *# The ColorInfo.colors. * | "colors"; *# The Product.sizes.
3531
+ # * | "sizes"; *# The Product.materials. * | "materials"; *# The Product.
3532
+ # patterns. * | "patterns"; *# The Product.conditions. * | "conditions"; *# The
3533
+ # textual custom attribute in Product object. Key can * *# be any key in the
3534
+ # Product.attributes map * *# if the attribute values are textual. * *# map. * |
3535
+ # "attributes.key"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.
3536
+ # PICKUP_IN_STORE. * | "pickupInStore"; *# The FulfillmentInfo.ids for type *#
3537
+ # FulfillmentInfo.Type.SHIP_TO_STORE. * | "shipToStore"; *# The FulfillmentInfo.
3538
+ # ids for type *# FulfillmentInfo.Type.SAME_DAY_DELIVERY. * | "sameDayDelivery";
3539
+ # *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.NEXT_DAY_DELIVERY.
3540
+ # * | "nextDayDelivery"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.
3541
+ # Type.CUSTOM_TYPE_1. * | "customFulfillment1"; *# The FulfillmentInfo.ids for
3542
+ # type *# FulfillmentInfo.Type.CUSTOM_TYPE_2. * | "customFulfillment2"; *# The
3543
+ # FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_3. * | "
3544
+ # customFulfillment3"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.
3545
+ # Type.CUSTOM_TYPE_4. * | "customFulfillment4"; *# The FulfillmentInfo.ids for
3546
+ # type *# FulfillmentInfo.Type.CUSTOM_TYPE_5. * | "customFulfillment5"; *
3547
+ # numerical_field = *# The PriceInfo.price. * "price"; *# The discount. Computed
3548
+ # by (original_price-price)/price * "discount"; *# The Rating.average_rating. * "
3549
+ # rating"; *# The Rating.rating_count. * "ratingCount"; *# The numerical custom
3550
+ # attribute in Product object. Key can * *# be any key in the Product.attributes
3551
+ # map * *# if the attribute values are numerical. * | "attributes.key";
3552
+ # Corresponds to the JSON property `key`
3553
+ # @return [String]
3554
+ attr_accessor :key
3555
+
3556
+ # The order in which Facet.values are returned. Allowed values are: * "count
3557
+ # desc", which means order by Facet.FacetValue.count descending. * "value desc",
3558
+ # which means order by Facet.FacetValue.value descending. Only applies to
3559
+ # textual facets. If not set, textual values are sorted in [natural order](https:
3560
+ # //en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in
3561
+ # the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.ids are
3562
+ # sorted in the order given by FacetSpec.FacetKey.restricted_values.
3563
+ # Corresponds to the JSON property `orderBy`
3564
+ # @return [String]
3565
+ attr_accessor :order_by
3566
+
3567
+ # Only get facet values that start with the given string prefix. For example,
3568
+ # suppose "categories" has three values "Women > Shoe", "Women > Dress" and "Men
3569
+ # > Shoe". If set "prefixes" to "Women", the "categories" facet will give only "
3570
+ # Women > Shoe" and "Women > Dress". Only supported on textual fields. Maximum
3571
+ # is 10.
3572
+ # Corresponds to the JSON property `prefixes`
3573
+ # @return [Array<String>]
3574
+ attr_accessor :prefixes
3575
+
3576
+ # The query that is used to compute facet for the given facet key. When provided,
3577
+ # it will override the default behavior of facet computation. The query syntax
3578
+ # is the same as a filter expression. See SearchRequest.filter for detail syntax
3579
+ # and limitations. Notice that there is no limitation on FacetKey.key when query
3580
+ # is specified. In the response, FacetValue.value will be always "1" and
3581
+ # FacetValue.count will be the number of results that matches the query. For
3582
+ # example, you can set a customized facet for "shipToStore", where FacetKey.key
3583
+ # is "customizedShipToStore", and FacetKey.query is "availability: ANY(\"
3584
+ # IN_STOCK\") AND shipToStore: ANY(\"123\")". Then the facet will count the
3585
+ # products that are both in stock and ship to store "123".
3586
+ # Corresponds to the JSON property `query`
3587
+ # @return [String]
3588
+ attr_accessor :query
3589
+
3590
+ # Only get facet for the given restricted values. For example, when using "
3591
+ # pickupInStore" as key and set restricted values to ["store123", "store456"],
3592
+ # only facets for "store123" and "store456" are returned. Only supported on
3593
+ # textual fields and fulfillments. Maximum is 20. Must be set for the
3594
+ # fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery *
3595
+ # nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3
3596
+ # * customFulfillment4 * customFulfillment5
3597
+ # Corresponds to the JSON property `restrictedValues`
3598
+ # @return [Array<String>]
3599
+ attr_accessor :restricted_values
3600
+
3601
+ def initialize(**args)
3602
+ update!(**args)
3603
+ end
3604
+
3605
+ # Update properties of this object
3606
+ def update!(**args)
3607
+ @contains = args[:contains] if args.key?(:contains)
3608
+ @intervals = args[:intervals] if args.key?(:intervals)
3609
+ @key = args[:key] if args.key?(:key)
3610
+ @order_by = args[:order_by] if args.key?(:order_by)
3611
+ @prefixes = args[:prefixes] if args.key?(:prefixes)
3612
+ @query = args[:query] if args.key?(:query)
3613
+ @restricted_values = args[:restricted_values] if args.key?(:restricted_values)
3614
+ end
3615
+ end
3616
+
3617
+ # Specification to determine under which conditions query expansion should occur.
3618
+ class GoogleCloudRetailV2betaSearchRequestQueryExpansionSpec
3619
+ include Google::Apis::Core::Hashable
3620
+
3621
+ # The condition under which query expansion should occur. Default to Condition.
3622
+ # DISABLED.
3623
+ # Corresponds to the JSON property `condition`
3624
+ # @return [String]
3625
+ attr_accessor :condition
3626
+
3627
+ def initialize(**args)
3628
+ update!(**args)
3629
+ end
3630
+
3631
+ # Update properties of this object
3632
+ def update!(**args)
3633
+ @condition = args[:condition] if args.key?(:condition)
3634
+ end
3635
+ end
3636
+
3637
+ # Response message for SearchService.Search method.
3638
+ class GoogleCloudRetailV2betaSearchResponse
3639
+ include Google::Apis::Core::Hashable
3640
+
3641
+ # A unique search token. This should be included in the UserEvent logs resulting
3642
+ # from this search, which enables accurate attribution of search model
3643
+ # performance.
3644
+ # Corresponds to the JSON property `attributionToken`
3645
+ # @return [String]
3646
+ attr_accessor :attribution_token
3647
+
3648
+ # If spell correction applies, the corrected query. Otherwise, empty.
3649
+ # Corresponds to the JSON property `correctedQuery`
3650
+ # @return [String]
3651
+ attr_accessor :corrected_query
3652
+
3653
+ # Results of facets requested by user.
3654
+ # Corresponds to the JSON property `facets`
3655
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchResponseFacet>]
3656
+ attr_accessor :facets
3657
+
3658
+ # A token that can be sent as SearchRequest.page_token to retrieve the next page.
3659
+ # If this field is omitted, there are no subsequent pages.
3660
+ # Corresponds to the JSON property `nextPageToken`
3661
+ # @return [String]
3662
+ attr_accessor :next_page_token
3663
+
3664
+ # Information describing query expansion including whether expansion has
3665
+ # occurred.
3666
+ # Corresponds to the JSON property `queryExpansionInfo`
3667
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchResponseQueryExpansionInfo]
3668
+ attr_accessor :query_expansion_info
3669
+
3670
+ # The URI of a customer-defined redirect page. If redirect action is triggered,
3671
+ # no search will be performed, and only redirect_uri and attribution_token will
3672
+ # be set in the response.
3673
+ # Corresponds to the JSON property `redirectUri`
3674
+ # @return [String]
3675
+ attr_accessor :redirect_uri
3676
+
3677
+ # A list of matched items. The order represents the ranking.
3678
+ # Corresponds to the JSON property `results`
3679
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchResponseSearchResult>]
3680
+ attr_accessor :results
3681
+
3682
+ # The estimated total count of matched items irrespective of pagination. The
3683
+ # count of results returned by pagination may be less than the total_size that
3684
+ # matches.
3685
+ # Corresponds to the JSON property `totalSize`
3686
+ # @return [Fixnum]
3687
+ attr_accessor :total_size
3688
+
3689
+ def initialize(**args)
3690
+ update!(**args)
3691
+ end
3692
+
3693
+ # Update properties of this object
3694
+ def update!(**args)
3695
+ @attribution_token = args[:attribution_token] if args.key?(:attribution_token)
3696
+ @corrected_query = args[:corrected_query] if args.key?(:corrected_query)
3697
+ @facets = args[:facets] if args.key?(:facets)
3698
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3699
+ @query_expansion_info = args[:query_expansion_info] if args.key?(:query_expansion_info)
3700
+ @redirect_uri = args[:redirect_uri] if args.key?(:redirect_uri)
3701
+ @results = args[:results] if args.key?(:results)
3702
+ @total_size = args[:total_size] if args.key?(:total_size)
3703
+ end
3704
+ end
3705
+
3706
+ # A facet result.
3707
+ class GoogleCloudRetailV2betaSearchResponseFacet
3708
+ include Google::Apis::Core::Hashable
3709
+
3710
+ # Whether the facet is dynamically generated.
3711
+ # Corresponds to the JSON property `dynamicFacet`
3712
+ # @return [Boolean]
3713
+ attr_accessor :dynamic_facet
3714
+ alias_method :dynamic_facet?, :dynamic_facet
3715
+
3716
+ # The key for this facet. E.g., "colorFamilies" or "price" or "attributes.attr1".
3717
+ # Corresponds to the JSON property `key`
3718
+ # @return [String]
3719
+ attr_accessor :key
3720
+
3721
+ # The facet values for this field.
3722
+ # Corresponds to the JSON property `values`
3723
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchResponseFacetFacetValue>]
3724
+ attr_accessor :values
3725
+
3726
+ def initialize(**args)
3727
+ update!(**args)
3728
+ end
3729
+
3730
+ # Update properties of this object
3731
+ def update!(**args)
3732
+ @dynamic_facet = args[:dynamic_facet] if args.key?(:dynamic_facet)
3733
+ @key = args[:key] if args.key?(:key)
3734
+ @values = args[:values] if args.key?(:values)
3735
+ end
3736
+ end
3737
+
3738
+ # A facet value which contains value names and their count.
3739
+ class GoogleCloudRetailV2betaSearchResponseFacetFacetValue
3740
+ include Google::Apis::Core::Hashable
3741
+
3742
+ # Number of items that have this facet value.
3743
+ # Corresponds to the JSON property `count`
3744
+ # @return [Fixnum]
3745
+ attr_accessor :count
3746
+
3747
+ # A floating point interval.
3748
+ # Corresponds to the JSON property `interval`
3749
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaInterval]
3750
+ attr_accessor :interval
3751
+
3752
+ # Text value of a facet, such as "Black" for facet "colorFamilies".
3753
+ # Corresponds to the JSON property `value`
3754
+ # @return [String]
3755
+ attr_accessor :value
3756
+
3757
+ def initialize(**args)
3758
+ update!(**args)
3759
+ end
3760
+
3761
+ # Update properties of this object
3762
+ def update!(**args)
3763
+ @count = args[:count] if args.key?(:count)
3764
+ @interval = args[:interval] if args.key?(:interval)
3765
+ @value = args[:value] if args.key?(:value)
3766
+ end
3767
+ end
3768
+
3769
+ # Information describing query expansion including whether expansion has
3770
+ # occurred.
3771
+ class GoogleCloudRetailV2betaSearchResponseQueryExpansionInfo
3772
+ include Google::Apis::Core::Hashable
3773
+
3774
+ # Bool describing whether query expansion has occurred.
3775
+ # Corresponds to the JSON property `expandedQuery`
3776
+ # @return [Boolean]
3777
+ attr_accessor :expanded_query
3778
+ alias_method :expanded_query?, :expanded_query
3779
+
3780
+ def initialize(**args)
3781
+ update!(**args)
3782
+ end
3783
+
3784
+ # Update properties of this object
3785
+ def update!(**args)
3786
+ @expanded_query = args[:expanded_query] if args.key?(:expanded_query)
3787
+ end
3788
+ end
3789
+
3790
+ # Represents the search results.
3791
+ class GoogleCloudRetailV2betaSearchResponseSearchResult
3792
+ include Google::Apis::Core::Hashable
3793
+
3794
+ # Product.id of the searched Product.
3795
+ # Corresponds to the JSON property `id`
3796
+ # @return [String]
3797
+ attr_accessor :id
3798
+
3799
+ # The count of matched variant Products.
3800
+ # Corresponds to the JSON property `matchingVariantCount`
3801
+ # @return [Fixnum]
3802
+ attr_accessor :matching_variant_count
3803
+
3804
+ # If a variant Product matches the search query, this map indicates which
3805
+ # Product fields are matched. The key is the Product.name, the value is a field
3806
+ # mask of the matched Product fields. If matched attributes cannot be determined,
3807
+ # this map will be empty. For example, a key "sku1" with field mask "products.
3808
+ # color_info" indicates there is a match between "sku1" ColorInfo and the query.
3809
+ # Corresponds to the JSON property `matchingVariantFields`
3810
+ # @return [Hash<String,String>]
3811
+ attr_accessor :matching_variant_fields
3812
+
3813
+ # Product captures all metadata information of items to be recommended or
3814
+ # searched.
3815
+ # Corresponds to the JSON property `product`
3816
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaProduct]
3817
+ attr_accessor :product
3818
+
3819
+ # The rollup matching variant Product attributes. The key is one of the
3820
+ # SearchRequest.variant_rollup_keys. The values are the merged and de-duplicated
3821
+ # Product attributes. Notice that the rollup values are respect filter. For
3822
+ # example, when filtering by "colorFamilies:ANY(\"red\")" and rollup "
3823
+ # colorFamilies", only "red" is returned. For textual and numerical attributes,
3824
+ # the rollup values is a list of string or double values with type google.
3825
+ # protobuf.ListValue. For example, if there are two variants with colors "red"
3826
+ # and "blue", the rollup values are ` key: "colorFamilies" value ` list_value `
3827
+ # values ` string_value: "red" ` values ` string_value: "blue" ` ` ` ` For
3828
+ # Product.fulfillment_info, the rollup values is a double value with type google.
3829
+ # protobuf.Value. For example, `key: "pickupInStore.store1" value ` number_value:
3830
+ # 10 `` means a there are 10 variants in this product are available in the
3831
+ # store "store1".
3832
+ # Corresponds to the JSON property `variantRollupValues`
3833
+ # @return [Hash<String,Object>]
3834
+ attr_accessor :variant_rollup_values
3835
+
3836
+ def initialize(**args)
3837
+ update!(**args)
3838
+ end
3839
+
3840
+ # Update properties of this object
3841
+ def update!(**args)
3842
+ @id = args[:id] if args.key?(:id)
3843
+ @matching_variant_count = args[:matching_variant_count] if args.key?(:matching_variant_count)
3844
+ @matching_variant_fields = args[:matching_variant_fields] if args.key?(:matching_variant_fields)
3845
+ @product = args[:product] if args.key?(:product)
3846
+ @variant_rollup_values = args[:variant_rollup_values] if args.key?(:variant_rollup_values)
3847
+ end
3848
+ end
3849
+
3850
+ # Request message to set a specified branch as new default_branch.
3851
+ class GoogleCloudRetailV2betaSetDefaultBranchRequest
3852
+ include Google::Apis::Core::Hashable
3853
+
3854
+ # The final component of the resource name of a branch. This field must be one
3855
+ # of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT error is returned.
3856
+ # Corresponds to the JSON property `branchId`
3857
+ # @return [String]
3858
+ attr_accessor :branch_id
3859
+
3860
+ # Some note on this request, this can be retrieved by CatalogService.
3861
+ # GetDefaultBranch before next valid default branch set occurs. This field must
3862
+ # be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise,
3863
+ # an INVALID_ARGUMENT error is returned.
3864
+ # Corresponds to the JSON property `note`
3865
+ # @return [String]
3866
+ attr_accessor :note
3867
+
3868
+ def initialize(**args)
3869
+ update!(**args)
3870
+ end
3871
+
3872
+ # Update properties of this object
3873
+ def update!(**args)
3874
+ @branch_id = args[:branch_id] if args.key?(:branch_id)
3875
+ @note = args[:note] if args.key?(:note)
3876
+ end
3877
+ end
3878
+
3879
+ # Metadata related to the progress of the SetInventory operation. Currently
3880
+ # empty because there is no meaningful metadata populated from the SetInventory
3881
+ # method.
3882
+ class GoogleCloudRetailV2betaSetInventoryMetadata
3883
+ include Google::Apis::Core::Hashable
3884
+
3885
+ def initialize(**args)
3886
+ update!(**args)
3887
+ end
3888
+
3889
+ # Update properties of this object
3890
+ def update!(**args)
3891
+ end
3892
+ end
3893
+
3894
+ # Request message for SetInventory method.
3895
+ class GoogleCloudRetailV2betaSetInventoryRequest
3896
+ include Google::Apis::Core::Hashable
3897
+
3898
+ # If set to true, and the Product with name Product.name is not found, the
3899
+ # inventory update will still be processed and retained for at most 1 day until
3900
+ # the Product is created. If set to false, an INVALID_ARGUMENT error is returned
3901
+ # if the Product is not found.
3902
+ # Corresponds to the JSON property `allowMissing`
3903
+ # @return [Boolean]
3904
+ attr_accessor :allow_missing
3905
+ alias_method :allow_missing?, :allow_missing
3906
+
3907
+ # Product captures all metadata information of items to be recommended or
3908
+ # searched.
3909
+ # Corresponds to the JSON property `inventory`
3910
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaProduct]
3911
+ attr_accessor :inventory
3912
+
3913
+ # Indicates which inventory fields in the provided Product to update. If not set
3914
+ # or set with empty paths, all inventory fields will be updated. If an
3915
+ # unsupported or unknown field is provided, an INVALID_ARGUMENT error is
3916
+ # returned and the entire update will be ignored.
3917
+ # Corresponds to the JSON property `setMask`
3918
+ # @return [String]
3919
+ attr_accessor :set_mask
3920
+
3921
+ # The time when the request is issued, used to prevent out-of-order updates on
3922
+ # inventory fields with the last update time recorded. If not provided, the
3923
+ # internal system time will be used.
3924
+ # Corresponds to the JSON property `setTime`
3925
+ # @return [String]
3926
+ attr_accessor :set_time
3927
+
3928
+ def initialize(**args)
3929
+ update!(**args)
3930
+ end
3931
+
3932
+ # Update properties of this object
3933
+ def update!(**args)
3934
+ @allow_missing = args[:allow_missing] if args.key?(:allow_missing)
3935
+ @inventory = args[:inventory] if args.key?(:inventory)
3936
+ @set_mask = args[:set_mask] if args.key?(:set_mask)
3937
+ @set_time = args[:set_time] if args.key?(:set_time)
3938
+ end
3939
+ end
3940
+
3941
+ # Response of the SetInventoryRequest. Currently empty because there is no
3942
+ # meaningful response populated from the SetInventory method.
3943
+ class GoogleCloudRetailV2betaSetInventoryResponse
3944
+ include Google::Apis::Core::Hashable
3945
+
3946
+ def initialize(**args)
3947
+ update!(**args)
3948
+ end
3949
+
3950
+ # Update properties of this object
3951
+ def update!(**args)
3952
+ end
3953
+ end
3954
+
2005
3955
  # UserEvent captures all metadata information Retail API needs to know about how
2006
3956
  # end users interact with customers' website.
2007
3957
  class GoogleCloudRetailV2betaUserEvent
@@ -2020,13 +3970,14 @@ module Google
2020
3970
  # Highly recommended for user events that are the result of PredictionService.
2021
3971
  # Predict. This field enables accurate attribution of recommendation model
2022
3972
  # performance. The value must be a valid PredictResponse.attribution_token for
2023
- # user events that are the result of PredictionService.Predict. This token
2024
- # enables us to accurately attribute page view or purchase back to the event and
2025
- # the particular predict response containing this clicked/purchased product. If
2026
- # user clicks on product K in the recommendation results, pass PredictResponse.
2027
- # attribution_token as a URL parameter to product K's page. When recording
2028
- # events on product K's page, log the PredictResponse.attribution_token to this
2029
- # field.
3973
+ # user events that are the result of PredictionService.Predict. The value must
3974
+ # be a valid SearchResponse.attribution_token for user events that are the
3975
+ # result of SearchService.Search. This token enables us to accurately attribute
3976
+ # page view or purchase back to the event and the particular predict response
3977
+ # containing this clicked/purchased product. If user clicks on product K in the
3978
+ # recommendation results, pass PredictResponse.attribution_token as a URL
3979
+ # parameter to product K's page. When recording events on product K's page, log
3980
+ # the PredictResponse.attribution_token to this field.
2030
3981
  # Corresponds to the JSON property `attributionToken`
2031
3982
  # @return [String]
2032
3983
  attr_accessor :attribution_token
@@ -2039,6 +3990,12 @@ module Google
2039
3990
  # @return [String]
2040
3991
  attr_accessor :cart_id
2041
3992
 
3993
+ # Detailed completion information including completion attribution token and
3994
+ # clicked completion info.
3995
+ # Corresponds to the JSON property `completionDetail`
3996
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaCompletionDetail]
3997
+ attr_accessor :completion_detail
3998
+
2042
3999
  # Only required for UserEventService.ImportUserEvents method. Timestamp of when
2043
4000
  # the user event happened.
2044
4001
  # Corresponds to the JSON property `eventTime`
@@ -2065,6 +4022,34 @@ module Google
2065
4022
  # @return [Array<String>]
2066
4023
  attr_accessor :experiment_ids
2067
4024
 
4025
+ # The filter syntax consists of an expression language for constructing a
4026
+ # predicate from one or more fields of the products being filtered. See
4027
+ # SearchRequest.filter for definition and syntax. The value must be a UTF-8
4028
+ # encoded string with a length limit of 1,000 characters. Otherwise, an
4029
+ # INVALID_ARGUMENT error is returned.
4030
+ # Corresponds to the JSON property `filter`
4031
+ # @return [String]
4032
+ attr_accessor :filter
4033
+
4034
+ # An integer that specifies the current offset for pagination (the 0-indexed
4035
+ # starting location, amongst the products deemed by the API as relevant). See
4036
+ # SearchRequest.offset for definition. If this field is negative, an
4037
+ # INVALID_ARGUMENT is returned. This can only be set for `search` events. Other
4038
+ # event types should not set this field. Otherwise, an INVALID_ARGUMENT error is
4039
+ # returned.
4040
+ # Corresponds to the JSON property `offset`
4041
+ # @return [Fixnum]
4042
+ attr_accessor :offset
4043
+
4044
+ # The order in which products are returned. See SearchRequest.order_by for
4045
+ # definition and syntax. The value must be a UTF-8 encoded string with a length
4046
+ # limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
4047
+ # This can only be set for `search` events. Other event types should not set
4048
+ # this field. Otherwise, an INVALID_ARGUMENT error is returned.
4049
+ # Corresponds to the JSON property `orderBy`
4050
+ # @return [String]
4051
+ attr_accessor :order_by
4052
+
2068
4053
  # The categories associated with a category page. To represent full path of
2069
4054
  # category, use '>' sign to separate different hierarchies. If '>' is part of
2070
4055
  # the category name, please replace it with other character(s). Category pages
@@ -2113,15 +4098,24 @@ module Google
2113
4098
  # @return [String]
2114
4099
  attr_accessor :referrer_uri
2115
4100
 
2116
- # The user's search query. The value must be a UTF-8 encoded string with a
2117
- # length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is
2118
- # returned. At least one of search_query or page_categories is required for `
2119
- # search` events. Other event types should not set this field. Otherwise, an
2120
- # INVALID_ARGUMENT error is returned.
4101
+ # The user's search query. See SearchRequest.query for definition. The value
4102
+ # must be a UTF-8 encoded string with a length limit of 5,000 characters.
4103
+ # Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query
4104
+ # or page_categories is required for `search` events. Other event types should
4105
+ # not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
2121
4106
  # Corresponds to the JSON property `searchQuery`
2122
4107
  # @return [String]
2123
4108
  attr_accessor :search_query
2124
4109
 
4110
+ # A unique identifier for tracking a visitor session with a length limit of 128
4111
+ # bytes. A session is an aggregation of an end user behavior in a time span. A
4112
+ # general guideline to populate the sesion_id: 1. If user has no activity for 30
4113
+ # min, a new session_id should be assigned. 2. The session_id should be unique
4114
+ # across users, suggest use uuid or add visitor_id as prefix.
4115
+ # Corresponds to the JSON property `sessionId`
4116
+ # @return [String]
4117
+ attr_accessor :session_id
4118
+
2125
4119
  # Complete URL (window.location.href) of the user's current page. When using the
2126
4120
  # client side event reporting with JavaScript pixel and Google Tag Manager, this
2127
4121
  # value is filled in automatically. Maximum length 5,000 characters.
@@ -2155,15 +4149,20 @@ module Google
2155
4149
  @attributes = args[:attributes] if args.key?(:attributes)
2156
4150
  @attribution_token = args[:attribution_token] if args.key?(:attribution_token)
2157
4151
  @cart_id = args[:cart_id] if args.key?(:cart_id)
4152
+ @completion_detail = args[:completion_detail] if args.key?(:completion_detail)
2158
4153
  @event_time = args[:event_time] if args.key?(:event_time)
2159
4154
  @event_type = args[:event_type] if args.key?(:event_type)
2160
4155
  @experiment_ids = args[:experiment_ids] if args.key?(:experiment_ids)
4156
+ @filter = args[:filter] if args.key?(:filter)
4157
+ @offset = args[:offset] if args.key?(:offset)
4158
+ @order_by = args[:order_by] if args.key?(:order_by)
2161
4159
  @page_categories = args[:page_categories] if args.key?(:page_categories)
2162
4160
  @page_view_id = args[:page_view_id] if args.key?(:page_view_id)
2163
4161
  @product_details = args[:product_details] if args.key?(:product_details)
2164
4162
  @purchase_transaction = args[:purchase_transaction] if args.key?(:purchase_transaction)
2165
4163
  @referrer_uri = args[:referrer_uri] if args.key?(:referrer_uri)
2166
4164
  @search_query = args[:search_query] if args.key?(:search_query)
4165
+ @session_id = args[:session_id] if args.key?(:session_id)
2167
4166
  @uri = args[:uri] if args.key?(:uri)
2168
4167
  @user_info = args[:user_info] if args.key?(:user_info)
2169
4168
  @visitor_id = args[:visitor_id] if args.key?(:visitor_id)
@@ -2262,7 +4261,7 @@ module Google
2262
4261
  attr_accessor :direct_user_request
2263
4262
  alias_method :direct_user_request?, :direct_user_request
2264
4263
 
2265
- # The end user's IP address. Required for getting SearchRespons.
4264
+ # The end user's IP address. Required for getting SearchResponse.
2266
4265
  # sponsored_results. This field is used to extract location information for
2267
4266
  # personalization. This field must be either an IPv4 address (e.g. "104.133.9.80"
2268
4267
  # ) or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334").
@@ -2273,7 +4272,7 @@ module Google
2273
4272
  # @return [String]
2274
4273
  attr_accessor :ip_address
2275
4274
 
2276
- # User agent as included in the HTTP header. Required for getting SearchRespons.
4275
+ # User agent as included in the HTTP header. Required for getting SearchResponse.
2277
4276
  # sponsored_results. The field must be a UTF-8 encoded string with a length
2278
4277
  # limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
2279
4278
  # This should not be set when using the client side event reporting with GTM or
@@ -2445,6 +4444,47 @@ module Google
2445
4444
  @message = args[:message] if args.key?(:message)
2446
4445
  end
2447
4446
  end
4447
+
4448
+ # Represents a whole or partial calendar date, such as a birthday. The time of
4449
+ # day and time zone are either specified elsewhere or are insignificant. The
4450
+ # date is relative to the Gregorian Calendar. This can represent one of the
4451
+ # following: * A full date, with non-zero year, month, and day values * A month
4452
+ # and day value, with a zero year, such as an anniversary * A year on its own,
4453
+ # with zero month and day values * A year and month value, with a zero day, such
4454
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
4455
+ # google.protobuf.Timestamp`.
4456
+ class GoogleTypeDate
4457
+ include Google::Apis::Core::Hashable
4458
+
4459
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
4460
+ # specify a year by itself or a year and month where the day isn't significant.
4461
+ # Corresponds to the JSON property `day`
4462
+ # @return [Fixnum]
4463
+ attr_accessor :day
4464
+
4465
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
4466
+ # and day.
4467
+ # Corresponds to the JSON property `month`
4468
+ # @return [Fixnum]
4469
+ attr_accessor :month
4470
+
4471
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
4472
+ # year.
4473
+ # Corresponds to the JSON property `year`
4474
+ # @return [Fixnum]
4475
+ attr_accessor :year
4476
+
4477
+ def initialize(**args)
4478
+ update!(**args)
4479
+ end
4480
+
4481
+ # Update properties of this object
4482
+ def update!(**args)
4483
+ @day = args[:day] if args.key?(:day)
4484
+ @month = args[:month] if args.key?(:month)
4485
+ @year = args[:year] if args.key?(:year)
4486
+ end
4487
+ end
2448
4488
  end
2449
4489
  end
2450
4490
  end