google-apis-retail_v2 0.46.0 → 0.49.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -279,6 +279,26 @@ module Google
279
279
  end
280
280
  end
281
281
 
282
+ # Request for CatalogService.AddCatalogAttribute method.
283
+ class GoogleCloudRetailV2AddCatalogAttributeRequest
284
+ include Google::Apis::Core::Hashable
285
+
286
+ # Catalog level attribute config for an attribute. For example, if customers
287
+ # want to enable/disable facet for a specific attribute.
288
+ # Corresponds to the JSON property `catalogAttribute`
289
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2CatalogAttribute]
290
+ attr_accessor :catalog_attribute
291
+
292
+ def initialize(**args)
293
+ update!(**args)
294
+ end
295
+
296
+ # Update properties of this object
297
+ def update!(**args)
298
+ @catalog_attribute = args[:catalog_attribute] if args.key?(:catalog_attribute)
299
+ end
300
+ end
301
+
282
302
  # Metadata related to the progress of the AddFulfillmentPlaces operation.
283
303
  # Currently empty because there is no meaningful metadata populated from the
284
304
  # ProductService.AddFulfillmentPlaces method.
@@ -446,6 +466,42 @@ module Google
446
466
  end
447
467
  end
448
468
 
469
+ # Catalog level attribute config.
470
+ class GoogleCloudRetailV2AttributesConfig
471
+ include Google::Apis::Core::Hashable
472
+
473
+ # Output only. The AttributeConfigLevel used for this catalog.
474
+ # Corresponds to the JSON property `attributeConfigLevel`
475
+ # @return [String]
476
+ attr_accessor :attribute_config_level
477
+
478
+ # Enable attribute(s) config at catalog level. For example, indexable,
479
+ # dynamic_facetable, or searchable for each attribute. The key is catalog
480
+ # attribute's name. For example: `color`, `brands`, `attributes.custom_attribute`
481
+ # , such as `attributes.xyz`. The maximum number of catalog attributes allowed
482
+ # in a request is 1000.
483
+ # Corresponds to the JSON property `catalogAttributes`
484
+ # @return [Hash<String,Google::Apis::RetailV2::GoogleCloudRetailV2CatalogAttribute>]
485
+ attr_accessor :catalog_attributes
486
+
487
+ # Required. Immutable. The fully qualified resource name of the attribute config.
488
+ # Format: `projects/*/locations/*/catalogs/*/attributesConfig`
489
+ # Corresponds to the JSON property `name`
490
+ # @return [String]
491
+ attr_accessor :name
492
+
493
+ def initialize(**args)
494
+ update!(**args)
495
+ end
496
+
497
+ # Update properties of this object
498
+ def update!(**args)
499
+ @attribute_config_level = args[:attribute_config_level] if args.key?(:attribute_config_level)
500
+ @catalog_attributes = args[:catalog_attributes] if args.key?(:catalog_attributes)
501
+ @name = args[:name] if args.key?(:name)
502
+ end
503
+ end
504
+
449
505
  # An intended audience of the Product for whom it's sold.
450
506
  class GoogleCloudRetailV2Audience
451
507
  include Google::Apis::Core::Hashable
@@ -495,12 +551,11 @@ module Google
495
551
  # recommendations-ai/docs/upload-catalog#mc). Supported values for user events
496
552
  # imports: * `user_event` (default): One JSON UserEvent per line. * `
497
553
  # user_event_ga360`: The schema is available here: https://support.google.com/
498
- # analytics/answer/3437719. * `user_event_ga4`: This feature is in private
499
- # preview. Please contact the support team for importing Google Analytics 4
500
- # events. The schema is available here: https://support.google.com/analytics/
501
- # answer/7029846. Supported values for auto-completion imports: * `suggestions` (
502
- # default): One JSON completion suggestion per line. * `denylist`: One JSON deny
503
- # suggestion per line. * `allowlist`: One JSON allow suggestion per line.
554
+ # analytics/answer/3437719. * `user_event_ga4`: The schema is available here:
555
+ # https://support.google.com/analytics/answer/7029846. Supported values for auto-
556
+ # completion imports: * `suggestions` (default): One JSON completion suggestion
557
+ # per line. * `denylist`: One JSON deny suggestion per line. * `allowlist`: One
558
+ # JSON allow suggestion per line.
504
559
  # Corresponds to the JSON property `dataSchema`
505
560
  # @return [String]
506
561
  attr_accessor :data_schema
@@ -592,6 +647,79 @@ module Google
592
647
  end
593
648
  end
594
649
 
650
+ # Catalog level attribute config for an attribute. For example, if customers
651
+ # want to enable/disable facet for a specific attribute.
652
+ class GoogleCloudRetailV2CatalogAttribute
653
+ include Google::Apis::Core::Hashable
654
+
655
+ # If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic facet.
656
+ # Could only be DYNAMIC_FACETABLE_DISABLED if CatalogAttribute.indexable_option
657
+ # is INDEXABLE_DISABLED. Otherwise, an INVALID_ARGUMENT error is returned.
658
+ # Corresponds to the JSON property `dynamicFacetableOption`
659
+ # @return [String]
660
+ attr_accessor :dynamic_facetable_option
661
+
662
+ # Output only. Indicates whether this attribute has been used by any products. `
663
+ # True` if at least one Product is using this attribute in Product.attributes.
664
+ # Otherwise, this field is `False`. CatalogAttribute can be pre-loaded by using
665
+ # CatalogService.AddCatalogAttribute, CatalogService.ImportCatalogAttributes, or
666
+ # CatalogService.UpdateAttributesConfig APIs. This field is `False` for pre-
667
+ # loaded CatalogAttributes. Only pre-loaded CatalogAttributes that are neither
668
+ # in use by products nor predefined can be deleted. CatalogAttributes that are
669
+ # either in use by products or are predefined cannot be deleted; however, their
670
+ # configuration properties will reset to default values upon removal request.
671
+ # After catalog changes, it takes about 10 minutes for this field to update.
672
+ # Corresponds to the JSON property `inUse`
673
+ # @return [Boolean]
674
+ attr_accessor :in_use
675
+ alias_method :in_use?, :in_use
676
+
677
+ # When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG,
678
+ # if INDEXABLE_ENABLED attribute values are indexed so that it can be filtered,
679
+ # faceted, or boosted in SearchService.Search.
680
+ # Corresponds to the JSON property `indexableOption`
681
+ # @return [String]
682
+ attr_accessor :indexable_option
683
+
684
+ # Required. Attribute name. For example: `color`, `brands`, `attributes.
685
+ # custom_attribute`, such as `attributes.xyz`. To be indexable, the attribute
686
+ # name can contain only alpha-numeric characters and underscores. For example,
687
+ # an attribute named `attributes.abc_xyz` can be indexed, but an attribute named
688
+ # `attributes.abc-xyz` cannot be indexed.
689
+ # Corresponds to the JSON property `key`
690
+ # @return [String]
691
+ attr_accessor :key
692
+
693
+ # When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG,
694
+ # if SEARCHABLE_ENABLED, attribute values are searchable by text queries in
695
+ # SearchService.Search. If SEARCHABLE_ENABLED but attribute type is numerical,
696
+ # attribute values will not be searchable by text queries in SearchService.
697
+ # Search, as there are no text values associated to numerical attributes.
698
+ # Corresponds to the JSON property `searchableOption`
699
+ # @return [String]
700
+ attr_accessor :searchable_option
701
+
702
+ # Output only. The type of this attribute. This is derived from the attribute in
703
+ # Product.attributes.
704
+ # Corresponds to the JSON property `type`
705
+ # @return [String]
706
+ attr_accessor :type
707
+
708
+ def initialize(**args)
709
+ update!(**args)
710
+ end
711
+
712
+ # Update properties of this object
713
+ def update!(**args)
714
+ @dynamic_facetable_option = args[:dynamic_facetable_option] if args.key?(:dynamic_facetable_option)
715
+ @in_use = args[:in_use] if args.key?(:in_use)
716
+ @indexable_option = args[:indexable_option] if args.key?(:indexable_option)
717
+ @key = args[:key] if args.key?(:key)
718
+ @searchable_option = args[:searchable_option] if args.key?(:searchable_option)
719
+ @type = args[:type] if args.key?(:type)
720
+ end
721
+ end
722
+
595
723
  # The color information of a Product.
596
724
  class GoogleCloudRetailV2ColorInfo
597
725
  include Google::Apis::Core::Hashable
@@ -680,9 +808,8 @@ module Google
680
808
 
681
809
  # Custom attributes for the suggestion term. * For "user-data", the attributes
682
810
  # are additional custom attributes ingested through BigQuery. * For "cloud-
683
- # retail", the attributes are product attributes generated by Cloud Retail. This
684
- # is an experimental feature. Contact Retail Search support team if you are
685
- # interested in enabling it.
811
+ # retail", the attributes are product attributes generated by Cloud Retail. It
812
+ # requires UserEvent.product_details is imported properly.
686
813
  # Corresponds to the JSON property `attributes`
687
814
  # @return [Hash<String,Google::Apis::RetailV2::GoogleCloudRetailV2CustomAttribute>]
688
815
  attr_accessor :attributes
@@ -722,6 +849,105 @@ module Google
722
849
  end
723
850
  end
724
851
 
852
+ # Catalog level autocomplete config for customers to customize autocomplete
853
+ # feature's settings.
854
+ class GoogleCloudRetailV2CompletionConfig
855
+ include Google::Apis::Core::Hashable
856
+
857
+ # The input config source for completion data.
858
+ # Corresponds to the JSON property `allowlistInputConfig`
859
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2CompletionDataInputConfig]
860
+ attr_accessor :allowlist_input_config
861
+
862
+ # If set to true, the auto learning function is enabled. Auto learning uses user
863
+ # data to generate suggestions using ML techniques. Default value is false. Only
864
+ # after enabling auto learning can users use `cloud-retail` data in
865
+ # CompleteQueryRequest.
866
+ # Corresponds to the JSON property `autoLearning`
867
+ # @return [Boolean]
868
+ attr_accessor :auto_learning
869
+ alias_method :auto_learning?, :auto_learning
870
+
871
+ # The input config source for completion data.
872
+ # Corresponds to the JSON property `denylistInputConfig`
873
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2CompletionDataInputConfig]
874
+ attr_accessor :denylist_input_config
875
+
876
+ # Output only. Name of the LRO corresponding to the latest allowlist import. Can
877
+ # use GetOperation API to retrieve the latest state of the Long Running
878
+ # Operation.
879
+ # Corresponds to the JSON property `lastAllowlistImportOperation`
880
+ # @return [String]
881
+ attr_accessor :last_allowlist_import_operation
882
+
883
+ # Output only. Name of the LRO corresponding to the latest denylist import. Can
884
+ # use GetOperation API to retrieve the latest state of the Long Running
885
+ # Operation.
886
+ # Corresponds to the JSON property `lastDenylistImportOperation`
887
+ # @return [String]
888
+ attr_accessor :last_denylist_import_operation
889
+
890
+ # Output only. Name of the LRO corresponding to the latest suggestion terms list
891
+ # import. Can use GetOperation API to retrieve the latest state of the Long
892
+ # Running Operation.
893
+ # Corresponds to the JSON property `lastSuggestionsImportOperation`
894
+ # @return [String]
895
+ attr_accessor :last_suggestions_import_operation
896
+
897
+ # Specifies the matching order for autocomplete suggestions, e.g., a query
898
+ # consisting of 'sh' with 'out-of-order' specified would suggest "women's shoes",
899
+ # whereas a query of 'red s' with 'exact-prefix' specified would suggest "red
900
+ # shoes". Currently supported values: * 'out-of-order' * 'exact-prefix' Default
901
+ # value: 'exact-prefix'.
902
+ # Corresponds to the JSON property `matchingOrder`
903
+ # @return [String]
904
+ attr_accessor :matching_order
905
+
906
+ # The maximum number of autocomplete suggestions returned per term. Default
907
+ # value is 20. If left unset or set to 0, then will fallback to default value.
908
+ # Value range is 1 to 20.
909
+ # Corresponds to the JSON property `maxSuggestions`
910
+ # @return [Fixnum]
911
+ attr_accessor :max_suggestions
912
+
913
+ # The minimum number of characters needed to be typed in order to get
914
+ # suggestions. Default value is 2. If left unset or set to 0, then will fallback
915
+ # to default value. Value range is 1 to 20.
916
+ # Corresponds to the JSON property `minPrefixLength`
917
+ # @return [Fixnum]
918
+ attr_accessor :min_prefix_length
919
+
920
+ # Required. Immutable. Fully qualified name `projects/*/locations/*/catalogs/*/
921
+ # completionConfig`
922
+ # Corresponds to the JSON property `name`
923
+ # @return [String]
924
+ attr_accessor :name
925
+
926
+ # The input config source for completion data.
927
+ # Corresponds to the JSON property `suggestionsInputConfig`
928
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2CompletionDataInputConfig]
929
+ attr_accessor :suggestions_input_config
930
+
931
+ def initialize(**args)
932
+ update!(**args)
933
+ end
934
+
935
+ # Update properties of this object
936
+ def update!(**args)
937
+ @allowlist_input_config = args[:allowlist_input_config] if args.key?(:allowlist_input_config)
938
+ @auto_learning = args[:auto_learning] if args.key?(:auto_learning)
939
+ @denylist_input_config = args[:denylist_input_config] if args.key?(:denylist_input_config)
940
+ @last_allowlist_import_operation = args[:last_allowlist_import_operation] if args.key?(:last_allowlist_import_operation)
941
+ @last_denylist_import_operation = args[:last_denylist_import_operation] if args.key?(:last_denylist_import_operation)
942
+ @last_suggestions_import_operation = args[:last_suggestions_import_operation] if args.key?(:last_suggestions_import_operation)
943
+ @matching_order = args[:matching_order] if args.key?(:matching_order)
944
+ @max_suggestions = args[:max_suggestions] if args.key?(:max_suggestions)
945
+ @min_prefix_length = args[:min_prefix_length] if args.key?(:min_prefix_length)
946
+ @name = args[:name] if args.key?(:name)
947
+ @suggestions_input_config = args[:suggestions_input_config] if args.key?(:suggestions_input_config)
948
+ end
949
+ end
950
+
725
951
  # The input config source for completion data.
726
952
  class GoogleCloudRetailV2CompletionDataInputConfig
727
953
  include Google::Apis::Core::Hashable
@@ -1121,11 +1347,9 @@ module Google
1121
1347
  # the import is finished, a notification will be sent to specified Pub/Sub topic.
1122
1348
  # The message data will be JSON string of a Operation. Format of the Pub/Sub
1123
1349
  # topic is `projects/`project`/topics/`topic``. It has to be within the same
1124
- # project as ImportProductsRequest.parent. Make sure that both `cloud-retail-
1125
- # customer-data-access@system.gserviceaccount.com` and `service-@gcp-sa-retail.
1126
- # iam.gserviceaccount.com` have the `pubsub.topics.publish` IAM permission on
1127
- # the topic. Only supported when ImportProductsRequest.reconciliation_mode is
1128
- # set to `FULL`.
1350
+ # project as ImportProductsRequest.parent. Make sure that `service-@gcp-sa-
1351
+ # retail.iam.gserviceaccount.com` has the `pubsub.topics.publish` IAM permission
1352
+ # on the topic.
1129
1353
  # Corresponds to the JSON property `notificationPubsubTopic`
1130
1354
  # @return [String]
1131
1355
  attr_accessor :notification_pubsub_topic
@@ -1411,7 +1635,7 @@ module Google
1411
1635
  # in `PredictRequest.params` to receive empty results instead. Note that the API
1412
1636
  # will never return items with storageStatus of "EXPIRED" or "DELETED"
1413
1637
  # regardless of filter choices. If `filterSyntaxV2` is set to true under the `
1414
- # params` field, then attribute based expressions are expected instead of the
1638
+ # params` field, then attribute-based expressions are expected instead of the
1415
1639
  # above described tag-based syntax. Examples: * (colors: ANY("Red", "Blue")) AND
1416
1640
  # NOT (categories: ANY("Phones")) * (availability: ANY("IN_STOCK")) AND (colors:
1417
1641
  # ANY("Red") OR categories: ANY("Phones"))
@@ -1442,7 +1666,7 @@ module Google
1442
1666
  # @return [Fixnum]
1443
1667
  attr_accessor :page_size
1444
1668
 
1445
- # This field is not used for now, please leave it unset.
1669
+ # This field is not used for now, leave it unset.
1446
1670
  # Corresponds to the JSON property `pageToken`
1447
1671
  # @return [String]
1448
1672
  attr_accessor :page_token
@@ -1464,8 +1688,8 @@ module Google
1464
1688
  # it needs to be one of `'no-diversity', 'low-diversity', 'medium-diversity', '
1465
1689
  # high-diversity', 'auto-diversity'`. This gives request-level control and
1466
1690
  # adjusts prediction results based on product category. * `filterSyntaxV2`:
1467
- # Boolean. False by default. If set to true, the `filter` field will be
1468
- # interpreteted according to the new, attribute-based syntax.
1691
+ # Boolean. False by default. If set to true, the `filter` field is interpreteted
1692
+ # according to the new, attribute-based syntax.
1469
1693
  # Corresponds to the JSON property `params`
1470
1694
  # @return [Hash<String,Object>]
1471
1695
  attr_accessor :params
@@ -1749,7 +1973,7 @@ module Google
1749
1973
 
1750
1974
  # The id of the collection members when type is Type.COLLECTION. Non-existent
1751
1975
  # product ids are allowed. The type of the members must be either Type.PRIMARY
1752
- # or Type.VARIANT otherwise and INVALID_ARGUMENT error is thrown. Should not set
1976
+ # or Type.VARIANT otherwise an INVALID_ARGUMENT error is thrown. Should not set
1753
1977
  # it for other types. A maximum of 1000 values are allowed. Otherwise, an
1754
1978
  # INVALID_ARGUMENT error is return.
1755
1979
  # Corresponds to the JSON property `collectionMemberIds`
@@ -2401,6 +2625,25 @@ module Google
2401
2625
  end
2402
2626
  end
2403
2627
 
2628
+ # Request for CatalogService.RemoveCatalogAttribute method.
2629
+ class GoogleCloudRetailV2RemoveCatalogAttributeRequest
2630
+ include Google::Apis::Core::Hashable
2631
+
2632
+ # Required. The attribute name key of the CatalogAttribute to remove.
2633
+ # Corresponds to the JSON property `key`
2634
+ # @return [String]
2635
+ attr_accessor :key
2636
+
2637
+ def initialize(**args)
2638
+ update!(**args)
2639
+ end
2640
+
2641
+ # Update properties of this object
2642
+ def update!(**args)
2643
+ @key = args[:key] if args.key?(:key)
2644
+ end
2645
+ end
2646
+
2404
2647
  # Metadata related to the progress of the RemoveFulfillmentPlaces operation.
2405
2648
  # Currently empty because there is no meaningful metadata populated from the
2406
2649
  # ProductService.RemoveFulfillmentPlaces method.
@@ -3011,6 +3254,13 @@ module Google
3011
3254
  # @return [Array<String>]
3012
3255
  attr_accessor :restricted_values
3013
3256
 
3257
+ # Returns the min and max value for each numerical facet intervals. Ignored for
3258
+ # textual facets.
3259
+ # Corresponds to the JSON property `returnMinMax`
3260
+ # @return [Boolean]
3261
+ attr_accessor :return_min_max
3262
+ alias_method :return_min_max?, :return_min_max
3263
+
3014
3264
  def initialize(**args)
3015
3265
  update!(**args)
3016
3266
  end
@@ -3025,6 +3275,7 @@ module Google
3025
3275
  @prefixes = args[:prefixes] if args.key?(:prefixes)
3026
3276
  @query = args[:query] if args.key?(:query)
3027
3277
  @restricted_values = args[:restricted_values] if args.key?(:restricted_values)
3278
+ @return_min_max = args[:return_min_max] if args.key?(:return_min_max)
3028
3279
  end
3029
3280
  end
3030
3281
 
@@ -3115,7 +3366,7 @@ module Google
3115
3366
 
3116
3367
  # Contains the spell corrected query, if found. If the spell correction type is
3117
3368
  # AUTOMATIC, then the search results are based on corrected_query. Otherwise the
3118
- # original query will be used for search.
3369
+ # original query is used for search.
3119
3370
  # Corresponds to the JSON property `correctedQuery`
3120
3371
  # @return [String]
3121
3372
  attr_accessor :corrected_query
@@ -3227,6 +3478,18 @@ module Google
3227
3478
  # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Interval]
3228
3479
  attr_accessor :interval
3229
3480
 
3481
+ # The maximum value in the FacetValue.interval. Only supported on numerical
3482
+ # facets and returned if SearchRequest.FacetSpec.FacetKey.return_min_max is true.
3483
+ # Corresponds to the JSON property `maxValue`
3484
+ # @return [Float]
3485
+ attr_accessor :max_value
3486
+
3487
+ # The minimum value in the FacetValue.interval. Only supported on numerical
3488
+ # facets and returned if SearchRequest.FacetSpec.FacetKey.return_min_max is true.
3489
+ # Corresponds to the JSON property `minValue`
3490
+ # @return [Float]
3491
+ attr_accessor :min_value
3492
+
3230
3493
  # Text value of a facet, such as "Black" for facet "colorFamilies".
3231
3494
  # Corresponds to the JSON property `value`
3232
3495
  # @return [String]
@@ -3240,6 +3503,8 @@ module Google
3240
3503
  def update!(**args)
3241
3504
  @count = args[:count] if args.key?(:count)
3242
3505
  @interval = args[:interval] if args.key?(:interval)
3506
+ @max_value = args[:max_value] if args.key?(:max_value)
3507
+ @min_value = args[:min_value] if args.key?(:min_value)
3243
3508
  @value = args[:value] if args.key?(:value)
3244
3509
  end
3245
3510
  end
@@ -3295,6 +3560,15 @@ module Google
3295
3560
  # @return [Hash<String,String>]
3296
3561
  attr_accessor :matching_variant_fields
3297
3562
 
3563
+ # Specifies previous events related to this product for this user based on
3564
+ # UserEvent with same SearchRequest.visitor_id or UserInfo.user_id. This is set
3565
+ # only when SearchRequest.PersonalizationSpec.mode is SearchRequest.
3566
+ # PersonalizationSpec.Mode.AUTO. Possible values: * `purchased`: Indicates that
3567
+ # this product has been purchased before.
3568
+ # Corresponds to the JSON property `personalLabels`
3569
+ # @return [Array<String>]
3570
+ attr_accessor :personal_labels
3571
+
3298
3572
  # Product captures all metadata information of items to be recommended or
3299
3573
  # searched.
3300
3574
  # Corresponds to the JSON property `product`
@@ -3327,6 +3601,7 @@ module Google
3327
3601
  @id = args[:id] if args.key?(:id)
3328
3602
  @matching_variant_count = args[:matching_variant_count] if args.key?(:matching_variant_count)
3329
3603
  @matching_variant_fields = args[:matching_variant_fields] if args.key?(:matching_variant_fields)
3604
+ @personal_labels = args[:personal_labels] if args.key?(:personal_labels)
3330
3605
  @product = args[:product] if args.key?(:product)
3331
3606
  @variant_rollup_values = args[:variant_rollup_values] if args.key?(:variant_rollup_values)
3332
3607
  end
@@ -3868,6 +4143,51 @@ module Google
3868
4143
  end
3869
4144
  end
3870
4145
 
4146
+ # A BigQuery output result.
4147
+ class GoogleCloudRetailV2alphaBigQueryOutputResult
4148
+ include Google::Apis::Core::Hashable
4149
+
4150
+ # The ID of a BigQuery Dataset.
4151
+ # Corresponds to the JSON property `datasetId`
4152
+ # @return [String]
4153
+ attr_accessor :dataset_id
4154
+
4155
+ # The ID of a BigQuery Table.
4156
+ # Corresponds to the JSON property `tableId`
4157
+ # @return [String]
4158
+ attr_accessor :table_id
4159
+
4160
+ def initialize(**args)
4161
+ update!(**args)
4162
+ end
4163
+
4164
+ # Update properties of this object
4165
+ def update!(**args)
4166
+ @dataset_id = args[:dataset_id] if args.key?(:dataset_id)
4167
+ @table_id = args[:table_id] if args.key?(:table_id)
4168
+ end
4169
+ end
4170
+
4171
+ # Metadata associated with a create operation.
4172
+ class GoogleCloudRetailV2alphaCreateModelMetadata
4173
+ include Google::Apis::Core::Hashable
4174
+
4175
+ # The resource name of the model that this create applies to. Format: projects/`
4176
+ # project_number`/locations/`location_id`/catalogs/`catalog_id`/models/`model_id`
4177
+ # Corresponds to the JSON property `model`
4178
+ # @return [String]
4179
+ attr_accessor :model
4180
+
4181
+ def initialize(**args)
4182
+ update!(**args)
4183
+ end
4184
+
4185
+ # Update properties of this object
4186
+ def update!(**args)
4187
+ @model = args[:model] if args.key?(:model)
4188
+ end
4189
+ end
4190
+
3871
4191
  # Configuration of destination for Export related errors.
3872
4192
  class GoogleCloudRetailV2alphaExportErrorsConfig
3873
4193
  include Google::Apis::Core::Hashable
@@ -3932,6 +4252,11 @@ module Google
3932
4252
  # @return [Google::Apis::RetailV2::GoogleCloudRetailV2alphaExportErrorsConfig]
3933
4253
  attr_accessor :errors_config
3934
4254
 
4255
+ # Output result.
4256
+ # Corresponds to the JSON property `outputResult`
4257
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2alphaOutputResult]
4258
+ attr_accessor :output_result
4259
+
3935
4260
  def initialize(**args)
3936
4261
  update!(**args)
3937
4262
  end
@@ -3940,6 +4265,7 @@ module Google
3940
4265
  def update!(**args)
3941
4266
  @error_samples = args[:error_samples] if args.key?(:error_samples)
3942
4267
  @errors_config = args[:errors_config] if args.key?(:errors_config)
4268
+ @output_result = args[:output_result] if args.key?(:output_result)
3943
4269
  end
3944
4270
  end
3945
4271
 
@@ -3959,6 +4285,11 @@ module Google
3959
4285
  # @return [Google::Apis::RetailV2::GoogleCloudRetailV2alphaExportErrorsConfig]
3960
4286
  attr_accessor :errors_config
3961
4287
 
4288
+ # Output result.
4289
+ # Corresponds to the JSON property `outputResult`
4290
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2alphaOutputResult]
4291
+ attr_accessor :output_result
4292
+
3962
4293
  def initialize(**args)
3963
4294
  update!(**args)
3964
4295
  end
@@ -3967,6 +4298,7 @@ module Google
3967
4298
  def update!(**args)
3968
4299
  @error_samples = args[:error_samples] if args.key?(:error_samples)
3969
4300
  @errors_config = args[:errors_config] if args.key?(:errors_config)
4301
+ @output_result = args[:output_result] if args.key?(:output_result)
3970
4302
  end
3971
4303
  end
3972
4304
 
@@ -4045,6 +4377,11 @@ module Google
4045
4377
  # @return [Fixnum]
4046
4378
  attr_accessor :success_count
4047
4379
 
4380
+ # Metadata related to transform user events operation.
4381
+ # Corresponds to the JSON property `transformedUserEventsMetadata`
4382
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2alphaTransformedUserEventsMetadata]
4383
+ attr_accessor :transformed_user_events_metadata
4384
+
4048
4385
  # Operation last update time. If the operation is done, this is also the finish
4049
4386
  # time.
4050
4387
  # Corresponds to the JSON property `updateTime`
@@ -4062,6 +4399,7 @@ module Google
4062
4399
  @notification_pubsub_topic = args[:notification_pubsub_topic] if args.key?(:notification_pubsub_topic)
4063
4400
  @request_id = args[:request_id] if args.key?(:request_id)
4064
4401
  @success_count = args[:success_count] if args.key?(:success_count)
4402
+ @transformed_user_events_metadata = args[:transformed_user_events_metadata] if args.key?(:transformed_user_events_metadata)
4065
4403
  @update_time = args[:update_time] if args.key?(:update_time)
4066
4404
  end
4067
4405
  end
@@ -4127,6 +4465,278 @@ module Google
4127
4465
  end
4128
4466
  end
4129
4467
 
4468
+ # Metadata that describes the training and serving parameters of a Model. A
4469
+ # Model can be associated with a ServingConfig and then queried through the
4470
+ # Predict api.
4471
+ class GoogleCloudRetailV2alphaModel
4472
+ include Google::Apis::Core::Hashable
4473
+
4474
+ # Output only. Timestamp the Recommendation Model was created at.
4475
+ # Corresponds to the JSON property `createTime`
4476
+ # @return [String]
4477
+ attr_accessor :create_time
4478
+
4479
+ # Output only. The state of data requirements for this model: DATA_OK and
4480
+ # DATA_ERROR. Recommendation model cannot be trained if the data is in
4481
+ # DATA_ERROR state. Recommendation model can have DATA_ERROR state even if
4482
+ # serving state is ACTIVE: models were trained successfully before, but cannot
4483
+ # be refreshed because model no longer has sufficient data for training.
4484
+ # Corresponds to the JSON property `dataState`
4485
+ # @return [String]
4486
+ attr_accessor :data_state
4487
+
4488
+ # Required. The display name of the model. Should be human readable, used to
4489
+ # display Recommendation Models in the Retail Cloud Cosole Dashboard. UTF-8
4490
+ # encoded string with limit of 1024 characters.
4491
+ # Corresponds to the JSON property `displayName`
4492
+ # @return [String]
4493
+ attr_accessor :display_name
4494
+
4495
+ # Optional. If RECOMMENDATIONS_FILTERING_ENABLED, recommendation filtering by
4496
+ # attributes is enabled for the model.
4497
+ # Corresponds to the JSON property `filteringOption`
4498
+ # @return [String]
4499
+ attr_accessor :filtering_option
4500
+
4501
+ # Output only. The timestamp when the latest successful tune finished.
4502
+ # Corresponds to the JSON property `lastTuneTime`
4503
+ # @return [String]
4504
+ attr_accessor :last_tune_time
4505
+
4506
+ # Required. The fully qualified resource name of the model. Format: projects/`
4507
+ # project_number`/locations/`location_id`/catalogs/`catalog_id`/models/`model_id`
4508
+ # catalog_id has char limit of 50. recommendation_model_id has char limit of 40.
4509
+ # Corresponds to the JSON property `name`
4510
+ # @return [String]
4511
+ attr_accessor :name
4512
+
4513
+ # Optional. The optimization objective e.g. `cvr`. Currently supported values: `
4514
+ # ctr`, `cvr`, `revenue-per-order`. If not specified, we choose default based on
4515
+ # model type. Default depends on type of recommendation: `recommended-for-you` =>
4516
+ # `ctr` `others-you-may-like` => `ctr` `frequently-bought-together` => `
4517
+ # revenue_per_order`
4518
+ # Corresponds to the JSON property `optimizationObjective`
4519
+ # @return [String]
4520
+ attr_accessor :optimization_objective
4521
+
4522
+ # The PageOptimizationConfig for model training. This determines how many panels
4523
+ # to optimize for, and which serving configurations to consider for each panel.
4524
+ # The purpose of this model is to optimize which ServingConfig to show on which
4525
+ # panels in way that optimizes the visitors shopping journey.
4526
+ # Corresponds to the JSON property `pageOptimizationConfig`
4527
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2alphaModelPageOptimizationConfig]
4528
+ attr_accessor :page_optimization_config
4529
+
4530
+ # Optional. The state of periodic tuning. The period we use is 3 months - to do
4531
+ # a one-off tune earlier use the TuneModel method. Default value is
4532
+ # PERIODIC_TUNING_ENABLED.
4533
+ # Corresponds to the JSON property `periodicTuningState`
4534
+ # @return [String]
4535
+ attr_accessor :periodic_tuning_state
4536
+
4537
+ # Output only. The list of valid serving configs associated with the
4538
+ # PageOptimizationConfig.
4539
+ # Corresponds to the JSON property `servingConfigLists`
4540
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2alphaModelServingConfigList>]
4541
+ attr_accessor :serving_config_lists
4542
+
4543
+ # Output only. The serving state of the model: ACTIVE, NOT_ACTIVE.
4544
+ # Corresponds to the JSON property `servingState`
4545
+ # @return [String]
4546
+ attr_accessor :serving_state
4547
+
4548
+ # Optional. The training state that the model is in (e.g. TRAINING or PAUSED).
4549
+ # Since part of the cost of running the service is frequency of training - this
4550
+ # can be used to determine when to train model in order to control cost. If not
4551
+ # specified: the default value for CreateModel method is TRAINING. the default
4552
+ # value for UpdateModel method is to keep the state the same as before.
4553
+ # Corresponds to the JSON property `trainingState`
4554
+ # @return [String]
4555
+ attr_accessor :training_state
4556
+
4557
+ # Output only. The tune operation associated with the model. Can be used to
4558
+ # determine if there is an ongoing tune for this recommendation. Empty field
4559
+ # implies no tune is goig on.
4560
+ # Corresponds to the JSON property `tuningOperation`
4561
+ # @return [String]
4562
+ attr_accessor :tuning_operation
4563
+
4564
+ # Required. The type of model e.g. `home-page`. Currently supported values: `
4565
+ # recommended-for-you`, `others-you-may-like`, `frequently-bought-together`, `
4566
+ # page-optimization`, 'similar-items', 'buy-it-again', `recently-viewed`(
4567
+ # readonly value).
4568
+ # Corresponds to the JSON property `type`
4569
+ # @return [String]
4570
+ attr_accessor :type
4571
+
4572
+ # Output only. Timestamp the Recommendation Model was last updated. E.g. if a
4573
+ # Recommendation Model was paused - this would be the time the pause was
4574
+ # initiated.
4575
+ # Corresponds to the JSON property `updateTime`
4576
+ # @return [String]
4577
+ attr_accessor :update_time
4578
+
4579
+ def initialize(**args)
4580
+ update!(**args)
4581
+ end
4582
+
4583
+ # Update properties of this object
4584
+ def update!(**args)
4585
+ @create_time = args[:create_time] if args.key?(:create_time)
4586
+ @data_state = args[:data_state] if args.key?(:data_state)
4587
+ @display_name = args[:display_name] if args.key?(:display_name)
4588
+ @filtering_option = args[:filtering_option] if args.key?(:filtering_option)
4589
+ @last_tune_time = args[:last_tune_time] if args.key?(:last_tune_time)
4590
+ @name = args[:name] if args.key?(:name)
4591
+ @optimization_objective = args[:optimization_objective] if args.key?(:optimization_objective)
4592
+ @page_optimization_config = args[:page_optimization_config] if args.key?(:page_optimization_config)
4593
+ @periodic_tuning_state = args[:periodic_tuning_state] if args.key?(:periodic_tuning_state)
4594
+ @serving_config_lists = args[:serving_config_lists] if args.key?(:serving_config_lists)
4595
+ @serving_state = args[:serving_state] if args.key?(:serving_state)
4596
+ @training_state = args[:training_state] if args.key?(:training_state)
4597
+ @tuning_operation = args[:tuning_operation] if args.key?(:tuning_operation)
4598
+ @type = args[:type] if args.key?(:type)
4599
+ @update_time = args[:update_time] if args.key?(:update_time)
4600
+ end
4601
+ end
4602
+
4603
+ # The PageOptimizationConfig for model training. This determines how many panels
4604
+ # to optimize for, and which serving configurations to consider for each panel.
4605
+ # The purpose of this model is to optimize which ServingConfig to show on which
4606
+ # panels in way that optimizes the visitors shopping journey.
4607
+ class GoogleCloudRetailV2alphaModelPageOptimizationConfig
4608
+ include Google::Apis::Core::Hashable
4609
+
4610
+ # Required. The type of UserEvent this page optimization is shown for. Each page
4611
+ # has an associated event type - this will be the corresponding event type for
4612
+ # the page that the page optimization model is used on. Supported types: * `add-
4613
+ # to-cart`: Products being added to cart. * `detail-page-view`: Products detail
4614
+ # page viewed. * `home-page-view`: Homepage viewed * `category-page-view`:
4615
+ # Homepage viewed * `shopping-cart-page-view`: User viewing a shopping cart. `
4616
+ # home-page-view` only allows models with type `recommended-for-you`. All other
4617
+ # page_optimization_event_type allow all Model.types.
4618
+ # Corresponds to the JSON property `pageOptimizationEventType`
4619
+ # @return [String]
4620
+ attr_accessor :page_optimization_event_type
4621
+
4622
+ # Required. A list of panel configurations. Limit = 5.
4623
+ # Corresponds to the JSON property `panels`
4624
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2alphaModelPageOptimizationConfigPanel>]
4625
+ attr_accessor :panels
4626
+
4627
+ # Optional. How to restrict results across panels e.g. can the same
4628
+ # ServingConfig be shown on multiple panels at once. If unspecified, default to `
4629
+ # UNIQUE_MODEL_RESTRICTION`.
4630
+ # Corresponds to the JSON property `restriction`
4631
+ # @return [String]
4632
+ attr_accessor :restriction
4633
+
4634
+ def initialize(**args)
4635
+ update!(**args)
4636
+ end
4637
+
4638
+ # Update properties of this object
4639
+ def update!(**args)
4640
+ @page_optimization_event_type = args[:page_optimization_event_type] if args.key?(:page_optimization_event_type)
4641
+ @panels = args[:panels] if args.key?(:panels)
4642
+ @restriction = args[:restriction] if args.key?(:restriction)
4643
+ end
4644
+ end
4645
+
4646
+ # A candidate to consider for a given panel. Currently only ServingConfig are
4647
+ # valid candidates.
4648
+ class GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate
4649
+ include Google::Apis::Core::Hashable
4650
+
4651
+ # This has to be a valid ServingConfig identifier. e.g. for a ServingConfig with
4652
+ # full name: `projects/*/locations/global/catalogs/default_catalog/
4653
+ # servingConfigs/my_candidate_config` this would be 'my_candidate_config'
4654
+ # Corresponds to the JSON property `servingConfigId`
4655
+ # @return [String]
4656
+ attr_accessor :serving_config_id
4657
+
4658
+ def initialize(**args)
4659
+ update!(**args)
4660
+ end
4661
+
4662
+ # Update properties of this object
4663
+ def update!(**args)
4664
+ @serving_config_id = args[:serving_config_id] if args.key?(:serving_config_id)
4665
+ end
4666
+ end
4667
+
4668
+ # An individual panel with a list of ServingConfigs to consider for it.
4669
+ class GoogleCloudRetailV2alphaModelPageOptimizationConfigPanel
4670
+ include Google::Apis::Core::Hashable
4671
+
4672
+ # Required. The candidates to consider on the panel. Limit = 10.
4673
+ # Corresponds to the JSON property `candidates`
4674
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate>]
4675
+ attr_accessor :candidates
4676
+
4677
+ # A candidate to consider for a given panel. Currently only ServingConfig are
4678
+ # valid candidates.
4679
+ # Corresponds to the JSON property `defaultCandidate`
4680
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate]
4681
+ attr_accessor :default_candidate
4682
+
4683
+ # Optional. The name to display for the panel.
4684
+ # Corresponds to the JSON property `displayName`
4685
+ # @return [String]
4686
+ attr_accessor :display_name
4687
+
4688
+ def initialize(**args)
4689
+ update!(**args)
4690
+ end
4691
+
4692
+ # Update properties of this object
4693
+ def update!(**args)
4694
+ @candidates = args[:candidates] if args.key?(:candidates)
4695
+ @default_candidate = args[:default_candidate] if args.key?(:default_candidate)
4696
+ @display_name = args[:display_name] if args.key?(:display_name)
4697
+ end
4698
+ end
4699
+
4700
+ # Represents an ordered combination of valid serving configs, which / may be
4701
+ # used for PAGE_OPTIMIZATION recommendations.
4702
+ class GoogleCloudRetailV2alphaModelServingConfigList
4703
+ include Google::Apis::Core::Hashable
4704
+
4705
+ # Optional. A set of valid serving configs that may be used for
4706
+ # PAGE_OPTIMIZATION.
4707
+ # Corresponds to the JSON property `servingConfigIds`
4708
+ # @return [Array<String>]
4709
+ attr_accessor :serving_config_ids
4710
+
4711
+ def initialize(**args)
4712
+ update!(**args)
4713
+ end
4714
+
4715
+ # Update properties of this object
4716
+ def update!(**args)
4717
+ @serving_config_ids = args[:serving_config_ids] if args.key?(:serving_config_ids)
4718
+ end
4719
+ end
4720
+
4721
+ # Output result.
4722
+ class GoogleCloudRetailV2alphaOutputResult
4723
+ include Google::Apis::Core::Hashable
4724
+
4725
+ # Export result in BigQuery.
4726
+ # Corresponds to the JSON property `bigqueryResult`
4727
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2alphaBigQueryOutputResult>]
4728
+ attr_accessor :bigquery_result
4729
+
4730
+ def initialize(**args)
4731
+ update!(**args)
4732
+ end
4733
+
4734
+ # Update properties of this object
4735
+ def update!(**args)
4736
+ @bigquery_result = args[:bigquery_result] if args.key?(:bigquery_result)
4737
+ end
4738
+ end
4739
+
4130
4740
  # Metadata related to the progress of the Purge operation. This will be returned
4131
4741
  # by the google.longrunning.Operation.metadata field.
4132
4742
  class GoogleCloudRetailV2alphaPurgeMetadata
@@ -4351,6 +4961,65 @@ module Google
4351
4961
  end
4352
4962
  end
4353
4963
 
4964
+ # Metadata related to transform user events operation.
4965
+ class GoogleCloudRetailV2alphaTransformedUserEventsMetadata
4966
+ include Google::Apis::Core::Hashable
4967
+
4968
+ # Count of entries in the source user events BigQuery table.
4969
+ # Corresponds to the JSON property `sourceEventsCount`
4970
+ # @return [Fixnum]
4971
+ attr_accessor :source_events_count
4972
+
4973
+ # Count of entries in the transformed user events BigQuery table, which could be
4974
+ # different from the actually imported number of user events.
4975
+ # Corresponds to the JSON property `transformedEventsCount`
4976
+ # @return [Fixnum]
4977
+ attr_accessor :transformed_events_count
4978
+
4979
+ def initialize(**args)
4980
+ update!(**args)
4981
+ end
4982
+
4983
+ # Update properties of this object
4984
+ def update!(**args)
4985
+ @source_events_count = args[:source_events_count] if args.key?(:source_events_count)
4986
+ @transformed_events_count = args[:transformed_events_count] if args.key?(:transformed_events_count)
4987
+ end
4988
+ end
4989
+
4990
+ # Metadata associated with a tune operation.
4991
+ class GoogleCloudRetailV2alphaTuneModelMetadata
4992
+ include Google::Apis::Core::Hashable
4993
+
4994
+ # The resource name of the model that this tune applies to. Format: projects/`
4995
+ # project_number`/locations/`location_id`/catalogs/`catalog_id`/models/`model_id`
4996
+ # Corresponds to the JSON property `model`
4997
+ # @return [String]
4998
+ attr_accessor :model
4999
+
5000
+ def initialize(**args)
5001
+ update!(**args)
5002
+ end
5003
+
5004
+ # Update properties of this object
5005
+ def update!(**args)
5006
+ @model = args[:model] if args.key?(:model)
5007
+ end
5008
+ end
5009
+
5010
+ # Response associated with a tune operation.
5011
+ class GoogleCloudRetailV2alphaTuneModelResponse
5012
+ include Google::Apis::Core::Hashable
5013
+
5014
+ def initialize(**args)
5015
+ update!(**args)
5016
+ end
5017
+
5018
+ # Update properties of this object
5019
+ def update!(**args)
5020
+ end
5021
+ end
5022
+
4354
5023
  # A summary of import result. The UserEventImportSummary summarizes the import
4355
5024
  # status for user events.
4356
5025
  class GoogleCloudRetailV2alphaUserEventImportSummary
@@ -4438,6 +5107,31 @@ module Google
4438
5107
  end
4439
5108
  end
4440
5109
 
5110
+ # A BigQuery output result.
5111
+ class GoogleCloudRetailV2betaBigQueryOutputResult
5112
+ include Google::Apis::Core::Hashable
5113
+
5114
+ # The ID of a BigQuery Dataset.
5115
+ # Corresponds to the JSON property `datasetId`
5116
+ # @return [String]
5117
+ attr_accessor :dataset_id
5118
+
5119
+ # The ID of a BigQuery Table.
5120
+ # Corresponds to the JSON property `tableId`
5121
+ # @return [String]
5122
+ attr_accessor :table_id
5123
+
5124
+ def initialize(**args)
5125
+ update!(**args)
5126
+ end
5127
+
5128
+ # Update properties of this object
5129
+ def update!(**args)
5130
+ @dataset_id = args[:dataset_id] if args.key?(:dataset_id)
5131
+ @table_id = args[:table_id] if args.key?(:table_id)
5132
+ end
5133
+ end
5134
+
4441
5135
  # Configuration of destination for Export related errors.
4442
5136
  class GoogleCloudRetailV2betaExportErrorsConfig
4443
5137
  include Google::Apis::Core::Hashable
@@ -4502,6 +5196,11 @@ module Google
4502
5196
  # @return [Google::Apis::RetailV2::GoogleCloudRetailV2betaExportErrorsConfig]
4503
5197
  attr_accessor :errors_config
4504
5198
 
5199
+ # Output result.
5200
+ # Corresponds to the JSON property `outputResult`
5201
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2betaOutputResult]
5202
+ attr_accessor :output_result
5203
+
4505
5204
  def initialize(**args)
4506
5205
  update!(**args)
4507
5206
  end
@@ -4510,6 +5209,7 @@ module Google
4510
5209
  def update!(**args)
4511
5210
  @error_samples = args[:error_samples] if args.key?(:error_samples)
4512
5211
  @errors_config = args[:errors_config] if args.key?(:errors_config)
5212
+ @output_result = args[:output_result] if args.key?(:output_result)
4513
5213
  end
4514
5214
  end
4515
5215
 
@@ -4529,6 +5229,11 @@ module Google
4529
5229
  # @return [Google::Apis::RetailV2::GoogleCloudRetailV2betaExportErrorsConfig]
4530
5230
  attr_accessor :errors_config
4531
5231
 
5232
+ # Output result.
5233
+ # Corresponds to the JSON property `outputResult`
5234
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2betaOutputResult]
5235
+ attr_accessor :output_result
5236
+
4532
5237
  def initialize(**args)
4533
5238
  update!(**args)
4534
5239
  end
@@ -4537,6 +5242,7 @@ module Google
4537
5242
  def update!(**args)
4538
5243
  @error_samples = args[:error_samples] if args.key?(:error_samples)
4539
5244
  @errors_config = args[:errors_config] if args.key?(:errors_config)
5245
+ @output_result = args[:output_result] if args.key?(:output_result)
4540
5246
  end
4541
5247
  end
4542
5248
 
@@ -4697,6 +5403,25 @@ module Google
4697
5403
  end
4698
5404
  end
4699
5405
 
5406
+ # Output result.
5407
+ class GoogleCloudRetailV2betaOutputResult
5408
+ include Google::Apis::Core::Hashable
5409
+
5410
+ # Export result in BigQuery.
5411
+ # Corresponds to the JSON property `bigqueryResult`
5412
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2betaBigQueryOutputResult>]
5413
+ attr_accessor :bigquery_result
5414
+
5415
+ def initialize(**args)
5416
+ update!(**args)
5417
+ end
5418
+
5419
+ # Update properties of this object
5420
+ def update!(**args)
5421
+ @bigquery_result = args[:bigquery_result] if args.key?(:bigquery_result)
5422
+ end
5423
+ end
5424
+
4700
5425
  # Metadata related to the progress of the Purge operation. This will be returned
4701
5426
  # by the google.longrunning.Operation.metadata field.
4702
5427
  class GoogleCloudRetailV2betaPurgeMetadata