google-apis-retail_v2beta 0.22.0 → 0.26.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1117,6 +1117,26 @@ module Google
1117
1117
  end
1118
1118
  end
1119
1119
 
1120
+ # Request for AddControl method.
1121
+ class GoogleCloudRetailV2betaAddControlRequest
1122
+ include Google::Apis::Core::Hashable
1123
+
1124
+ # Required. The id of the control to apply. Assumed to be in the same catalog as
1125
+ # the serving config - if id is not found a NOT_FOUND error is returned.
1126
+ # Corresponds to the JSON property `controlId`
1127
+ # @return [String]
1128
+ attr_accessor :control_id
1129
+
1130
+ def initialize(**args)
1131
+ update!(**args)
1132
+ end
1133
+
1134
+ # Update properties of this object
1135
+ def update!(**args)
1136
+ @control_id = args[:control_id] if args.key?(:control_id)
1137
+ end
1138
+ end
1139
+
1120
1140
  # Metadata related to the progress of the AddFulfillmentPlaces operation.
1121
1141
  # Currently empty because there is no meaningful metadata populated from the
1122
1142
  # AddFulfillmentPlaces method.
@@ -1520,6 +1540,153 @@ module Google
1520
1540
  end
1521
1541
  end
1522
1542
 
1543
+ # Metadata that is used to define a condition that triggers an action. A valid
1544
+ # condition must specify at least one of 'query_terms' or 'products_filter'. If
1545
+ # multiple fields are specified, the condition is met if all the fields are
1546
+ # satisfied e.g. if a set of query terms and product_filter are set, then only
1547
+ # items matching the product_filter for requests with a query matching the query
1548
+ # terms wil get boosted.
1549
+ class GoogleCloudRetailV2betaCondition
1550
+ include Google::Apis::Core::Hashable
1551
+
1552
+ # Range of time(s) specifying when Condition is active. Condition true if any
1553
+ # time range matches.
1554
+ # Corresponds to the JSON property `activeTimeRange`
1555
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaConditionTimeRange>]
1556
+ attr_accessor :active_time_range
1557
+
1558
+ # A list (up to 10 entries) of terms to match the query on. If not specified,
1559
+ # match all queries. If many query terms are specified, the condition is matched
1560
+ # if any of the terms is a match (i.e. using the OR operator).
1561
+ # Corresponds to the JSON property `queryTerms`
1562
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaConditionQueryTerm>]
1563
+ attr_accessor :query_terms
1564
+
1565
+ def initialize(**args)
1566
+ update!(**args)
1567
+ end
1568
+
1569
+ # Update properties of this object
1570
+ def update!(**args)
1571
+ @active_time_range = args[:active_time_range] if args.key?(:active_time_range)
1572
+ @query_terms = args[:query_terms] if args.key?(:query_terms)
1573
+ end
1574
+ end
1575
+
1576
+ # Query terms that we want to match on.
1577
+ class GoogleCloudRetailV2betaConditionQueryTerm
1578
+ include Google::Apis::Core::Hashable
1579
+
1580
+ # Whether this is supposed to be a full or partial match.
1581
+ # Corresponds to the JSON property `fullMatch`
1582
+ # @return [Boolean]
1583
+ attr_accessor :full_match
1584
+ alias_method :full_match?, :full_match
1585
+
1586
+ # The value of the term to match on. Value cannot be empty. Value can have at
1587
+ # most 3 terms if specified as a partial match. Each space separated string is
1588
+ # considered as one term. Example) "a b c" is 3 terms and allowed, " a b c d" is
1589
+ # 4 terms and not allowed for partial match.
1590
+ # Corresponds to the JSON property `value`
1591
+ # @return [String]
1592
+ attr_accessor :value
1593
+
1594
+ def initialize(**args)
1595
+ update!(**args)
1596
+ end
1597
+
1598
+ # Update properties of this object
1599
+ def update!(**args)
1600
+ @full_match = args[:full_match] if args.key?(:full_match)
1601
+ @value = args[:value] if args.key?(:value)
1602
+ end
1603
+ end
1604
+
1605
+ # Used for time-dependent conditions. Example: Want to have rule applied for
1606
+ # week long sale.
1607
+ class GoogleCloudRetailV2betaConditionTimeRange
1608
+ include Google::Apis::Core::Hashable
1609
+
1610
+ # End of time range. Range is inclusive.
1611
+ # Corresponds to the JSON property `endTime`
1612
+ # @return [String]
1613
+ attr_accessor :end_time
1614
+
1615
+ # Start of time range. Range is inclusive.
1616
+ # Corresponds to the JSON property `startTime`
1617
+ # @return [String]
1618
+ attr_accessor :start_time
1619
+
1620
+ def initialize(**args)
1621
+ update!(**args)
1622
+ end
1623
+
1624
+ # Update properties of this object
1625
+ def update!(**args)
1626
+ @end_time = args[:end_time] if args.key?(:end_time)
1627
+ @start_time = args[:start_time] if args.key?(:start_time)
1628
+ end
1629
+ end
1630
+
1631
+ # Configures dynamic serving time metadata that is used to pre and post process
1632
+ # search/recommendation model results.
1633
+ class GoogleCloudRetailV2betaControl
1634
+ include Google::Apis::Core::Hashable
1635
+
1636
+ # Output only. List of serving configuration ids that that are associated with
1637
+ # this control. Note the association is managed via the ServingConfig, this is
1638
+ # an output only denormalizeed view. Assumed to be in the same catalog.
1639
+ # Corresponds to the JSON property `associatedServingConfigIds`
1640
+ # @return [Array<String>]
1641
+ attr_accessor :associated_serving_config_ids
1642
+
1643
+ # Required. The human readable control display name. Used in Retail UI. This
1644
+ # field must be a UTF-8 encoded string with a length limit of 128 characters.
1645
+ # Otherwise, an INVALID_ARGUMENT error is thrown.
1646
+ # Corresponds to the JSON property `displayName`
1647
+ # @return [String]
1648
+ attr_accessor :display_name
1649
+
1650
+ # A facet specification to perform faceted search.
1651
+ # Corresponds to the JSON property `facetSpec`
1652
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchRequestFacetSpec]
1653
+ attr_accessor :facet_spec
1654
+
1655
+ # Immutable. Fully qualified name projects/*/locations/global/catalogs/*/
1656
+ # controls/*
1657
+ # Corresponds to the JSON property `name`
1658
+ # @return [String]
1659
+ attr_accessor :name
1660
+
1661
+ # A rule is a condition-action pair * A condition defines when a rule is to be
1662
+ # triggered. * An action specifies what occurs on that trigger. Currently only
1663
+ # boost rules are supported. Currently only supported by the search endpoint.
1664
+ # Corresponds to the JSON property `rule`
1665
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaRule]
1666
+ attr_accessor :rule
1667
+
1668
+ # Required. Immutable. The solution types that the serving config is used for.
1669
+ # Currently we support setting only one type of solution at creation time. Only `
1670
+ # SOLUTION_TYPE_SEARCH` value is supported at the moment.
1671
+ # Corresponds to the JSON property `solutionTypes`
1672
+ # @return [Array<String>]
1673
+ attr_accessor :solution_types
1674
+
1675
+ def initialize(**args)
1676
+ update!(**args)
1677
+ end
1678
+
1679
+ # Update properties of this object
1680
+ def update!(**args)
1681
+ @associated_serving_config_ids = args[:associated_serving_config_ids] if args.key?(:associated_serving_config_ids)
1682
+ @display_name = args[:display_name] if args.key?(:display_name)
1683
+ @facet_spec = args[:facet_spec] if args.key?(:facet_spec)
1684
+ @name = args[:name] if args.key?(:name)
1685
+ @rule = args[:rule] if args.key?(:rule)
1686
+ @solution_types = args[:solution_types] if args.key?(:solution_types)
1687
+ end
1688
+ end
1689
+
1523
1690
  # A custom attribute that is not explicitly modeled in Product.
1524
1691
  class GoogleCloudRetailV2betaCustomAttribute
1525
1692
  include Google::Apis::Core::Hashable
@@ -1534,9 +1701,8 @@ module Google
1534
1701
  alias_method :indexable?, :indexable
1535
1702
 
1536
1703
  # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when
1537
- # the key is "lengths_cm". At most 400 values are allowed.Otherwise, an
1538
- # INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be
1539
- # set. Otherwise, an INVALID_ARGUMENT error is returned.
1704
+ # the key is "lengths_cm". Exactly one of text or numbers should be set.
1705
+ # Otherwise, an INVALID_ARGUMENT error is returned.
1540
1706
  # Corresponds to the JSON property `numbers`
1541
1707
  # @return [Array<Float>]
1542
1708
  attr_accessor :numbers
@@ -1550,11 +1716,8 @@ module Google
1550
1716
  alias_method :searchable?, :searchable
1551
1717
 
1552
1718
  # The textual values of this custom attribute. For example, `["yellow", "green"]`
1553
- # when the key is "color". At most 400 values are allowed. Empty values are not
1554
- # allowed. Each value must be a UTF-8 encoded string with a length limit of 256
1555
- # characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of
1556
- # text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is
1557
- # returned.
1719
+ # when the key is "color". Exactly one of text or numbers should be set.
1720
+ # Otherwise, an INVALID_ARGUMENT error is returned.
1558
1721
  # Corresponds to the JSON property `text`
1559
1722
  # @return [Array<String>]
1560
1723
  attr_accessor :text
@@ -1721,6 +1884,9 @@ module Google
1721
1884
  # recommendations-ai/docs/upload-catalog#mc). Supported values for user events
1722
1885
  # imports: * `user_event` (default): One JSON UserEvent per line. * `
1723
1886
  # user_event_ga360`: Using https://support.google.com/analytics/answer/3437719.
1887
+ # Supported values for control imports: * 'control' (default): One JSON Control
1888
+ # per line. Supported values for catalog attribute imports: * 'catalog_attribute'
1889
+ # (default): One CSV CatalogAttribute per line.
1724
1890
  # Corresponds to the JSON property `dataSchema`
1725
1891
  # @return [String]
1726
1892
  attr_accessor :data_schema
@@ -2149,6 +2315,31 @@ module Google
2149
2315
  end
2150
2316
  end
2151
2317
 
2318
+ # Response for ListControls method.
2319
+ class GoogleCloudRetailV2betaListControlsResponse
2320
+ include Google::Apis::Core::Hashable
2321
+
2322
+ # All the Controls for a given catalog.
2323
+ # Corresponds to the JSON property `controls`
2324
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaControl>]
2325
+ attr_accessor :controls
2326
+
2327
+ # Pagination token, if not returned indicates the last page.
2328
+ # Corresponds to the JSON property `nextPageToken`
2329
+ # @return [String]
2330
+ attr_accessor :next_page_token
2331
+
2332
+ def initialize(**args)
2333
+ update!(**args)
2334
+ end
2335
+
2336
+ # Update properties of this object
2337
+ def update!(**args)
2338
+ @controls = args[:controls] if args.key?(:controls)
2339
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2340
+ end
2341
+ end
2342
+
2152
2343
  # Response message for ProductService.ListProducts method.
2153
2344
  class GoogleCloudRetailV2betaListProductsResponse
2154
2345
  include Google::Apis::Core::Hashable
@@ -2175,6 +2366,31 @@ module Google
2175
2366
  end
2176
2367
  end
2177
2368
 
2369
+ # Response for ListServingConfigs method.
2370
+ class GoogleCloudRetailV2betaListServingConfigsResponse
2371
+ include Google::Apis::Core::Hashable
2372
+
2373
+ # Pagination token, if not returned indicates the last page.
2374
+ # Corresponds to the JSON property `nextPageToken`
2375
+ # @return [String]
2376
+ attr_accessor :next_page_token
2377
+
2378
+ # All the ServingConfigs for a given catalog.
2379
+ # Corresponds to the JSON property `servingConfigs`
2380
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaServingConfig>]
2381
+ attr_accessor :serving_configs
2382
+
2383
+ def initialize(**args)
2384
+ update!(**args)
2385
+ end
2386
+
2387
+ # Update properties of this object
2388
+ def update!(**args)
2389
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2390
+ @serving_configs = args[:serving_configs] if args.key?(:serving_configs)
2391
+ end
2392
+ end
2393
+
2178
2394
  # Request message for Predict method.
2179
2395
  class GoogleCloudRetailV2betaPredictRequest
2180
2396
  include Google::Apis::Core::Hashable
@@ -2374,8 +2590,8 @@ module Google
2374
2590
  attr_accessor :original_price
2375
2591
 
2376
2592
  # Price of the product. Google Merchant Center property [price](https://support.
2377
- # google.com/merchants/answer/6324371). Schema.org property [Offer.
2378
- # priceSpecification](https://schema.org/priceSpecification).
2593
+ # google.com/merchants/answer/6324371). Schema.org property [Offer.price](https:/
2594
+ # /schema.org/price).
2379
2595
  # Corresponds to the JSON property `price`
2380
2596
  # @return [Float]
2381
2597
  attr_accessor :price
@@ -2463,7 +2679,10 @@ module Google
2463
2679
  # INVALID_ARGUMENT error is returned: * Max entries count: 200. * The key must
2464
2680
  # be a UTF-8 encoded string with a length limit of 128 characters. * For
2465
2681
  # indexable attribute, the key must match the pattern: `a-zA-Z0-9*`. For example,
2466
- # key0LikeThis or KEY_1_LIKE_THIS.
2682
+ # `key0LikeThis` or `KEY_1_LIKE_THIS`. * For text attributes, at most 400
2683
+ # values are allowed. Empty values are not allowed. Each value must be a UTF-8
2684
+ # encoded string with a length limit of 256 characters. * For number attributes,
2685
+ # at most 400 values are allowed.
2467
2686
  # Corresponds to the JSON property `attributes`
2468
2687
  # @return [Hash<String,Google::Apis::RetailV2beta::GoogleCloudRetailV2betaCustomAttribute>]
2469
2688
  attr_accessor :attributes
@@ -2474,9 +2693,9 @@ module Google
2474
2693
  attr_accessor :audience
2475
2694
 
2476
2695
  # The online availability of the Product. Default to Availability.IN_STOCK.
2477
- # Google Merchant Center Property [availability](https://support.google.com/
2478
- # merchants/answer/6324448). Schema.org Property [Offer.availability](https://
2479
- # schema.org/availability).
2696
+ # Corresponding properties: Google Merchant Center property [availability](https:
2697
+ # //support.google.com/merchants/answer/6324448). Schema.org property [Offer.
2698
+ # availability](https://schema.org/availability).
2480
2699
  # Corresponds to the JSON property `availability`
2481
2700
  # @return [String]
2482
2701
  attr_accessor :availability
@@ -2493,9 +2712,9 @@ module Google
2493
2712
 
2494
2713
  # The brands of the product. A maximum of 30 brands are allowed. Each brand must
2495
2714
  # be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise,
2496
- # an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](
2497
- # https://support.google.com/merchants/answer/6324351). Schema.org property [
2498
- # Product.brand](https://schema.org/brand).
2715
+ # an INVALID_ARGUMENT error is returned. Corresponding properties: Google
2716
+ # Merchant Center property [brand](https://support.google.com/merchants/answer/
2717
+ # 6324351). Schema.org property [Product.brand](https://schema.org/brand).
2499
2718
  # Corresponds to the JSON property `brands`
2500
2719
  # @return [Array<String>]
2501
2720
  attr_accessor :brands
@@ -2512,15 +2731,17 @@ module Google
2512
2731
  # INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product.
2513
2732
  # Empty values are not allowed. Each value must be a UTF-8 encoded string with
2514
2733
  # a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is
2515
- # returned. Google Merchant Center property google_product_category. Schema.org
2516
- # property [Product.category] (https://schema.org/category). [
2517
- # mc_google_product_category]: https://support.google.com/merchants/answer/
2518
- # 6324436
2734
+ # returned. Corresponding properties: Google Merchant Center property
2735
+ # google_product_category. Schema.org property [Product.category] (https://
2736
+ # schema.org/category). [mc_google_product_category]: https://support.google.com/
2737
+ # merchants/answer/6324436
2519
2738
  # Corresponds to the JSON property `categories`
2520
2739
  # @return [Array<String>]
2521
2740
  attr_accessor :categories
2522
2741
 
2523
- # The id of the collection members when type is Type.COLLECTION. Should not set
2742
+ # The id of the collection members when type is Type.COLLECTION. Non-existent
2743
+ # product ids are allowed. The type of the members must be either Type.PRIMARY
2744
+ # or Type.VARIANT otherwise and INVALID_ARGUMENT error is thrown. Should not set
2524
2745
  # it for other types. A maximum of 1000 values are allowed. Otherwise, an
2525
2746
  # INVALID_ARGUMENT error is return.
2526
2747
  # Corresponds to the JSON property `collectionMemberIds`
@@ -2533,21 +2754,21 @@ module Google
2533
2754
  attr_accessor :color_info
2534
2755
 
2535
2756
  # The condition of the product. Strongly encouraged to use the standard values: "
2536
- # new", "refurbished", "used". A maximum of 5 values are allowed per Product.
2537
- # Each value must be a UTF-8 encoded string with a length limit of 128
2538
- # characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant
2539
- # Center property [condition](https://support.google.com/merchants/answer/
2540
- # 6324469). Schema.org property [Offer.itemCondition](https://schema.org/
2541
- # itemCondition).
2757
+ # new", "refurbished", "used". A maximum of 1 value is allowed per Product. Each
2758
+ # value must be a UTF-8 encoded string with a length limit of 128 characters.
2759
+ # Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties:
2760
+ # Google Merchant Center property [condition](https://support.google.com/
2761
+ # merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://
2762
+ # schema.org/itemCondition).
2542
2763
  # Corresponds to the JSON property `conditions`
2543
2764
  # @return [Array<String>]
2544
2765
  attr_accessor :conditions
2545
2766
 
2546
2767
  # Product description. This field must be a UTF-8 encoded string with a length
2547
2768
  # limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
2548
- # Google Merchant Center property [description](https://support.google.com/
2549
- # merchants/answer/6324468). schema.org property [Product.description](https://
2550
- # schema.org/description).
2769
+ # Corresponding properties: Google Merchant Center property [description](https:/
2770
+ # /support.google.com/merchants/answer/6324468). Schema.org property [Product.
2771
+ # description](https://schema.org/description).
2551
2772
  # Corresponds to the JSON property `description`
2552
2773
  # @return [String]
2553
2774
  attr_accessor :description
@@ -2557,8 +2778,8 @@ module Google
2557
2778
  # expire_time. However, the product can still be retrieved by ProductService.
2558
2779
  # GetProduct and ProductService.ListProducts. expire_time must be later than
2559
2780
  # available_time and publish_time, otherwise an INVALID_ARGUMENT error is thrown.
2560
- # Google Merchant Center property [expiration_date](https://support.google.com/
2561
- # merchants/answer/6324499).
2781
+ # Corresponding properties: Google Merchant Center property [expiration_date](
2782
+ # https://support.google.com/merchants/answer/6324499).
2562
2783
  # Corresponds to the JSON property `expireTime`
2563
2784
  # @return [String]
2564
2785
  attr_accessor :expire_time
@@ -2573,12 +2794,13 @@ module Google
2573
2794
  # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8
2574
2795
  # encoded string with a length limit of 128 characters. Otherwise, an
2575
2796
  # INVALID_ARGUMENT error is returned. This field must be a Unigram. Otherwise,
2576
- # an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](
2577
- # https://support.google.com/merchants/answer/6324461). Schema.org property [
2578
- # Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/
2579
- # gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](
2580
- # https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If
2581
- # the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.
2797
+ # an INVALID_ARGUMENT error is returned. Corresponding properties: Google
2798
+ # Merchant Center property [gtin](https://support.google.com/merchants/answer/
2799
+ # 6324461). Schema.org property [Product.isbn](https://schema.org/isbn), [
2800
+ # Product.gtin8](https://schema.org/gtin8), [Product.gtin12](https://schema.org/
2801
+ # gtin12), [Product.gtin13](https://schema.org/gtin13), or [Product.gtin14](
2802
+ # https://schema.org/gtin14). If the value is not a valid GTIN, an
2803
+ # INVALID_ARGUMENT error is returned.
2582
2804
  # Corresponds to the JSON property `gtin`
2583
2805
  # @return [String]
2584
2806
  attr_accessor :gtin
@@ -2587,27 +2809,28 @@ module Google
2587
2809
  # example, this field is "id_1", if name is `projects/*/locations/global/
2588
2810
  # catalogs/default_catalog/branches/default_branch/products/id_1`. This field
2589
2811
  # must be a UTF-8 encoded string with a length limit of 128 characters.
2590
- # Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center
2591
- # property [id](https://support.google.com/merchants/answer/6324405). Schema.org
2592
- # Property [Product.sku](https://schema.org/sku).
2812
+ # Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties:
2813
+ # Google Merchant Center property [id](https://support.google.com/merchants/
2814
+ # answer/6324405). Schema.org property [Product.sku](https://schema.org/sku).
2593
2815
  # Corresponds to the JSON property `id`
2594
2816
  # @return [String]
2595
2817
  attr_accessor :id
2596
2818
 
2597
2819
  # Product images for the product.Highly recommended to put the main image to the
2598
- # first. A maximum of 300 images are allowed. Google Merchant Center property [
2599
- # image_link](https://support.google.com/merchants/answer/6324350). Schema.org
2600
- # property [Product.image](https://schema.org/image).
2820
+ # first. A maximum of 300 images are allowed. Corresponding properties: Google
2821
+ # Merchant Center property [image_link](https://support.google.com/merchants/
2822
+ # answer/6324350). Schema.org property [Product.image](https://schema.org/image).
2601
2823
  # Corresponds to the JSON property `images`
2602
2824
  # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaImage>]
2603
2825
  attr_accessor :images
2604
2826
 
2605
2827
  # Language of the title/description and other string attributes. Use language
2606
- # tags defined by BCP 47. For product prediction, this field is ignored and the
2607
- # model automatically detects the text language. The Product can include text in
2608
- # different languages, but duplicating Products to provide text in multiple
2609
- # languages can result in degraded model performance. For product search this
2610
- # field is in use. It defaults to "en-US" if unset.
2828
+ # tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). For
2829
+ # product prediction, this field is ignored and the model automatically detects
2830
+ # the text language. The Product can include text in different languages, but
2831
+ # duplicating Products to provide text in multiple languages can result in
2832
+ # degraded model performance. For product search this field is in use. It
2833
+ # defaults to "en-US" if unset.
2611
2834
  # Corresponds to the JSON property `languageCode`
2612
2835
  # @return [String]
2613
2836
  attr_accessor :language_code
@@ -2615,9 +2838,9 @@ module Google
2615
2838
  # The material of the product. For example, "leather", "wooden". A maximum of 20
2616
2839
  # values are allowed. Each value must be a UTF-8 encoded string with a length
2617
2840
  # limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
2618
- # Google Merchant Center property [material](https://support.google.com/
2619
- # merchants/answer/6324410). Schema.org property [Product.material](https://
2620
- # schema.org/material).
2841
+ # Corresponding properties: Google Merchant Center property [material](https://
2842
+ # support.google.com/merchants/answer/6324410). Schema.org property [Product.
2843
+ # material](https://schema.org/material).
2621
2844
  # Corresponds to the JSON property `materials`
2622
2845
  # @return [Array<String>]
2623
2846
  attr_accessor :materials
@@ -2631,9 +2854,10 @@ module Google
2631
2854
  # The pattern or graphic print of the product. For example, "striped", "polka
2632
2855
  # dot", "paisley". A maximum of 20 values are allowed per Product. Each value
2633
2856
  # must be a UTF-8 encoded string with a length limit of 128 characters.
2634
- # Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center
2635
- # property [pattern](https://support.google.com/merchants/answer/6324483).
2636
- # Schema.org property [Product.pattern](https://schema.org/pattern).
2857
+ # Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties:
2858
+ # Google Merchant Center property [pattern](https://support.google.com/merchants/
2859
+ # answer/6324483). Schema.org property [Product.pattern](https://schema.org/
2860
+ # pattern).
2637
2861
  # Corresponds to the JSON property `patterns`
2638
2862
  # @return [Array<String>]
2639
2863
  attr_accessor :patterns
@@ -2648,10 +2872,9 @@ module Google
2648
2872
  # can only be empty or set to the same value as id. For VARIANT Products, this
2649
2873
  # field cannot be empty. A maximum of 2,000 products are allowed to share the
2650
2874
  # same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned.
2651
- # Google Merchant Center Property [item_group_id](https://support.google.com/
2652
- # merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](
2653
- # https://schema.org/inProductGroupWithID). This field must be enabled before it
2654
- # can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
2875
+ # Corresponding properties: Google Merchant Center property [item_group_id](
2876
+ # https://support.google.com/merchants/answer/6324507). Schema.org property [
2877
+ # Product.inProductGroupWithID](https://schema.org/inProductGroupWithID).
2655
2878
  # Corresponds to the JSON property `primaryProductId`
2656
2879
  # @return [String]
2657
2880
  attr_accessor :primary_product_id
@@ -2700,10 +2923,11 @@ module Google
2700
2923
  # system and size type are empty, while size value is "32 inches". A maximum of
2701
2924
  # 20 values are allowed per Product. Each value must be a UTF-8 encoded string
2702
2925
  # with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is
2703
- # returned. Google Merchant Center property [size](https://support.google.com/
2704
- # merchants/answer/6324492), [size_type](https://support.google.com/merchants/
2705
- # answer/6324497) and [size_system](https://support.google.com/merchants/answer/
2706
- # 6324502). Schema.org property [Product.size](https://schema.org/size).
2926
+ # returned. Corresponding properties: Google Merchant Center property [size](
2927
+ # https://support.google.com/merchants/answer/6324492), [size_type](https://
2928
+ # support.google.com/merchants/answer/6324497), and [size_system](https://
2929
+ # support.google.com/merchants/answer/6324502). Schema.org property [Product.
2930
+ # size](https://schema.org/size).
2707
2931
  # Corresponds to the JSON property `sizes`
2708
2932
  # @return [Array<String>]
2709
2933
  attr_accessor :sizes
@@ -2712,17 +2936,18 @@ module Google
2712
2936
  # Product. This value must be a UTF-8 encoded string with a length limit of 1,
2713
2937
  # 000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can
2714
2938
  # be used for filtering recommendation results by passing the tag as part of the
2715
- # PredictRequest.filter. Google Merchant Center property [custom_label_0–4](
2716
- # https://support.google.com/merchants/answer/6324473).
2939
+ # PredictRequest.filter. Corresponding properties: Google Merchant Center
2940
+ # property [custom_label_0–4](https://support.google.com/merchants/answer/
2941
+ # 6324473).
2717
2942
  # Corresponds to the JSON property `tags`
2718
2943
  # @return [Array<String>]
2719
2944
  attr_accessor :tags
2720
2945
 
2721
2946
  # Required. Product title. This field must be a UTF-8 encoded string with a
2722
2947
  # length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is
2723
- # returned. Google Merchant Center property [title](https://support.google.com/
2724
- # merchants/answer/6324415). Schema.org property [Product.name](https://schema.
2725
- # org/name).
2948
+ # returned. Corresponding properties: Google Merchant Center property [title](
2949
+ # https://support.google.com/merchants/answer/6324415). Schema.org property [
2950
+ # Product.name](https://schema.org/name).
2726
2951
  # Corresponds to the JSON property `title`
2727
2952
  # @return [String]
2728
2953
  attr_accessor :title
@@ -2748,9 +2973,9 @@ module Google
2748
2973
  # recommended to provide a valid uri for the product, otherwise the service
2749
2974
  # performance could be significantly degraded. This field must be a UTF-8
2750
2975
  # encoded string with a length limit of 5,000 characters. Otherwise, an
2751
- # INVALID_ARGUMENT error is returned. Google Merchant Center property [link](
2752
- # https://support.google.com/merchants/answer/6324416). Schema.org property [
2753
- # Offer.url](https://schema.org/url).
2976
+ # INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant
2977
+ # Center property [link](https://support.google.com/merchants/answer/6324416).
2978
+ # Schema.org property [Offer.url](https://schema.org/url).
2754
2979
  # Corresponds to the JSON property `uri`
2755
2980
  # @return [String]
2756
2981
  attr_accessor :uri
@@ -3165,6 +3390,26 @@ module Google
3165
3390
  end
3166
3391
  end
3167
3392
 
3393
+ # Request for RemoveControl method.
3394
+ class GoogleCloudRetailV2betaRemoveControlRequest
3395
+ include Google::Apis::Core::Hashable
3396
+
3397
+ # Required. The id of the control to apply. Assumed to be in the same catalog as
3398
+ # the serving config.
3399
+ # Corresponds to the JSON property `controlId`
3400
+ # @return [String]
3401
+ attr_accessor :control_id
3402
+
3403
+ def initialize(**args)
3404
+ update!(**args)
3405
+ end
3406
+
3407
+ # Update properties of this object
3408
+ def update!(**args)
3409
+ @control_id = args[:control_id] if args.key?(:control_id)
3410
+ end
3411
+ end
3412
+
3168
3413
  # Metadata related to the progress of the RemoveFulfillmentPlaces operation.
3169
3414
  # Currently empty because there is no meaningful metadata populated from the
3170
3415
  # RemoveFulfillmentPlaces method.
@@ -3248,6 +3493,333 @@ module Google
3248
3493
  end
3249
3494
  end
3250
3495
 
3496
+ # A rule is a condition-action pair * A condition defines when a rule is to be
3497
+ # triggered. * An action specifies what occurs on that trigger. Currently only
3498
+ # boost rules are supported. Currently only supported by the search endpoint.
3499
+ class GoogleCloudRetailV2betaRule
3500
+ include Google::Apis::Core::Hashable
3501
+
3502
+ # A boost action to apply to results matching condition specified above.
3503
+ # Corresponds to the JSON property `boostAction`
3504
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaRuleBoostAction]
3505
+ attr_accessor :boost_action
3506
+
3507
+ # Metadata that is used to define a condition that triggers an action. A valid
3508
+ # condition must specify at least one of 'query_terms' or 'products_filter'. If
3509
+ # multiple fields are specified, the condition is met if all the fields are
3510
+ # satisfied e.g. if a set of query terms and product_filter are set, then only
3511
+ # items matching the product_filter for requests with a query matching the query
3512
+ # terms wil get boosted.
3513
+ # Corresponds to the JSON property `condition`
3514
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaCondition]
3515
+ attr_accessor :condition
3516
+
3517
+ # Prevents `query_term` from being associated with specified terms during search.
3518
+ # Example: Don't associate "gShoe" and "cheap".
3519
+ # Corresponds to the JSON property `doNotAssociateAction`
3520
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaRuleDoNotAssociateAction]
3521
+ attr_accessor :do_not_associate_action
3522
+
3523
+ # * Rule Condition: - No Condition provided is a global match. - 1 or more
3524
+ # Condition provided is combined with OR operator. * Action Input: The request
3525
+ # query and filter that will be applied to the retrieved products, in addition
3526
+ # to any filters already provided with the SearchRequest. The AND operator is
3527
+ # used to combine the query's existing filters with the filter rule(s). NOTE:
3528
+ # May result in 0 results when filters conflict. * Action Result: Filters the
3529
+ # returned objects to be ONLY those that passed the filter.
3530
+ # Corresponds to the JSON property `filterAction`
3531
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaRuleFilterAction]
3532
+ attr_accessor :filter_action
3533
+
3534
+ # Prevents a term in the query from being used in search. Example: Don't search
3535
+ # for "shoddy".
3536
+ # Corresponds to the JSON property `ignoreAction`
3537
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaRuleIgnoreAction]
3538
+ attr_accessor :ignore_action
3539
+
3540
+ # Maps a set of terms to a set of synonyms. Set of synonyms will be treated as
3541
+ # synonyms of each query term only. `query_terms` will not be treated as
3542
+ # synonyms of each other. Example: "sneakers" will use a synonym of "shoes". "
3543
+ # shoes" will not use a synonym of "sneakers".
3544
+ # Corresponds to the JSON property `onewaySynonymsAction`
3545
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaRuleOnewaySynonymsAction]
3546
+ attr_accessor :oneway_synonyms_action
3547
+
3548
+ # Redirects a shopper to a specific page. * Rule Condition: - Must specify
3549
+ # Condition. * Action Input: Request Query * Action Result: Redirects shopper to
3550
+ # provided uri.
3551
+ # Corresponds to the JSON property `redirectAction`
3552
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaRuleRedirectAction]
3553
+ attr_accessor :redirect_action
3554
+
3555
+ # Replaces a term in the query. Multiple replacement candidates can be specified.
3556
+ # All `query_terms` will be replaced with the replacement term. Example:
3557
+ # Replace "gShoe" with "google shoe".
3558
+ # Corresponds to the JSON property `replacementAction`
3559
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaRuleReplacementAction]
3560
+ attr_accessor :replacement_action
3561
+
3562
+ # Creates a set of terms that will be treated as synonyms of each other. Example:
3563
+ # synonyms of "sneakers" and "shoes". * "sneakers" will use a synonym of "shoes"
3564
+ # . * "shoes" will use a synonym of "sneakers".
3565
+ # Corresponds to the JSON property `twowaySynonymsAction`
3566
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaRuleTwowaySynonymsAction]
3567
+ attr_accessor :twoway_synonyms_action
3568
+
3569
+ def initialize(**args)
3570
+ update!(**args)
3571
+ end
3572
+
3573
+ # Update properties of this object
3574
+ def update!(**args)
3575
+ @boost_action = args[:boost_action] if args.key?(:boost_action)
3576
+ @condition = args[:condition] if args.key?(:condition)
3577
+ @do_not_associate_action = args[:do_not_associate_action] if args.key?(:do_not_associate_action)
3578
+ @filter_action = args[:filter_action] if args.key?(:filter_action)
3579
+ @ignore_action = args[:ignore_action] if args.key?(:ignore_action)
3580
+ @oneway_synonyms_action = args[:oneway_synonyms_action] if args.key?(:oneway_synonyms_action)
3581
+ @redirect_action = args[:redirect_action] if args.key?(:redirect_action)
3582
+ @replacement_action = args[:replacement_action] if args.key?(:replacement_action)
3583
+ @twoway_synonyms_action = args[:twoway_synonyms_action] if args.key?(:twoway_synonyms_action)
3584
+ end
3585
+ end
3586
+
3587
+ # A boost action to apply to results matching condition specified above.
3588
+ class GoogleCloudRetailV2betaRuleBoostAction
3589
+ include Google::Apis::Core::Hashable
3590
+
3591
+ # Strength of the condition boost, which must be in [-1, 1]. Negative boost
3592
+ # means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion.
3593
+ # However, it does not necessarily mean that the boosted item will be the top
3594
+ # result at all times, nor that other items will be excluded. Results could
3595
+ # still be shown even when none of them matches the condition. And results that
3596
+ # are significantly more relevant to the search query can still trump your
3597
+ # heavily favored but irrelevant items. Setting to -1.0 gives the item a big
3598
+ # demotion. However, results that are deeply relevant might still be shown. The
3599
+ # item will have an upstream battle to get a fairly high ranking, but it is not
3600
+ # blocked out completely. Setting to 0.0 means no boost applied. The boosting
3601
+ # condition is ignored.
3602
+ # Corresponds to the JSON property `boost`
3603
+ # @return [Float]
3604
+ attr_accessor :boost
3605
+
3606
+ # The filter can have a max size of 5000 characters. An expression which
3607
+ # specifies which products to apply an action to. The syntax and supported
3608
+ # fields are the same as a filter expression. See SearchRequest.filter for
3609
+ # detail syntax and limitations. Examples: * To boost products with product ID "
3610
+ # product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "
3611
+ # product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
3612
+ # Corresponds to the JSON property `productsFilter`
3613
+ # @return [String]
3614
+ attr_accessor :products_filter
3615
+
3616
+ def initialize(**args)
3617
+ update!(**args)
3618
+ end
3619
+
3620
+ # Update properties of this object
3621
+ def update!(**args)
3622
+ @boost = args[:boost] if args.key?(:boost)
3623
+ @products_filter = args[:products_filter] if args.key?(:products_filter)
3624
+ end
3625
+ end
3626
+
3627
+ # Prevents `query_term` from being associated with specified terms during search.
3628
+ # Example: Don't associate "gShoe" and "cheap".
3629
+ class GoogleCloudRetailV2betaRuleDoNotAssociateAction
3630
+ include Google::Apis::Core::Hashable
3631
+
3632
+ # Cannot contain duplicates or the query term. Can specify up to 100 terms.
3633
+ # Corresponds to the JSON property `doNotAssociateTerms`
3634
+ # @return [Array<String>]
3635
+ attr_accessor :do_not_associate_terms
3636
+
3637
+ # Terms from the search query. Will not consider do_not_associate_terms for
3638
+ # search if in search query. Can specify up to 100 terms.
3639
+ # Corresponds to the JSON property `queryTerms`
3640
+ # @return [Array<String>]
3641
+ attr_accessor :query_terms
3642
+
3643
+ # Will be [deprecated = true] post migration;
3644
+ # Corresponds to the JSON property `terms`
3645
+ # @return [Array<String>]
3646
+ attr_accessor :terms
3647
+
3648
+ def initialize(**args)
3649
+ update!(**args)
3650
+ end
3651
+
3652
+ # Update properties of this object
3653
+ def update!(**args)
3654
+ @do_not_associate_terms = args[:do_not_associate_terms] if args.key?(:do_not_associate_terms)
3655
+ @query_terms = args[:query_terms] if args.key?(:query_terms)
3656
+ @terms = args[:terms] if args.key?(:terms)
3657
+ end
3658
+ end
3659
+
3660
+ # * Rule Condition: - No Condition provided is a global match. - 1 or more
3661
+ # Condition provided is combined with OR operator. * Action Input: The request
3662
+ # query and filter that will be applied to the retrieved products, in addition
3663
+ # to any filters already provided with the SearchRequest. The AND operator is
3664
+ # used to combine the query's existing filters with the filter rule(s). NOTE:
3665
+ # May result in 0 results when filters conflict. * Action Result: Filters the
3666
+ # returned objects to be ONLY those that passed the filter.
3667
+ class GoogleCloudRetailV2betaRuleFilterAction
3668
+ include Google::Apis::Core::Hashable
3669
+
3670
+ # A filter to apply on the matching condition results. Supported features: *
3671
+ # filter must be set. * Filter syntax is identical to SearchRequest.filter. See
3672
+ # more details at the Retail Search [user guide](/retail/search/docs/filter-and-
3673
+ # order#filter). * To filter products with product ID "product_1" or "product_2",
3674
+ # and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(
3675
+ # colorFamilies: ANY("Red", "Blue")) *
3676
+ # Corresponds to the JSON property `filter`
3677
+ # @return [String]
3678
+ attr_accessor :filter
3679
+
3680
+ def initialize(**args)
3681
+ update!(**args)
3682
+ end
3683
+
3684
+ # Update properties of this object
3685
+ def update!(**args)
3686
+ @filter = args[:filter] if args.key?(:filter)
3687
+ end
3688
+ end
3689
+
3690
+ # Prevents a term in the query from being used in search. Example: Don't search
3691
+ # for "shoddy".
3692
+ class GoogleCloudRetailV2betaRuleIgnoreAction
3693
+ include Google::Apis::Core::Hashable
3694
+
3695
+ # Terms to ignore in the search query.
3696
+ # Corresponds to the JSON property `ignoreTerms`
3697
+ # @return [Array<String>]
3698
+ attr_accessor :ignore_terms
3699
+
3700
+ def initialize(**args)
3701
+ update!(**args)
3702
+ end
3703
+
3704
+ # Update properties of this object
3705
+ def update!(**args)
3706
+ @ignore_terms = args[:ignore_terms] if args.key?(:ignore_terms)
3707
+ end
3708
+ end
3709
+
3710
+ # Maps a set of terms to a set of synonyms. Set of synonyms will be treated as
3711
+ # synonyms of each query term only. `query_terms` will not be treated as
3712
+ # synonyms of each other. Example: "sneakers" will use a synonym of "shoes". "
3713
+ # shoes" will not use a synonym of "sneakers".
3714
+ class GoogleCloudRetailV2betaRuleOnewaySynonymsAction
3715
+ include Google::Apis::Core::Hashable
3716
+
3717
+ # Will be [deprecated = true] post migration;
3718
+ # Corresponds to the JSON property `onewayTerms`
3719
+ # @return [Array<String>]
3720
+ attr_accessor :oneway_terms
3721
+
3722
+ # Terms from the search query. Will treat synonyms as their synonyms. Not
3723
+ # themselves synonyms of the synonyms. Can specify up to 100 terms.
3724
+ # Corresponds to the JSON property `queryTerms`
3725
+ # @return [Array<String>]
3726
+ attr_accessor :query_terms
3727
+
3728
+ # Defines a set of synonyms. Cannot contain duplicates. Can specify up to 100
3729
+ # synonyms.
3730
+ # Corresponds to the JSON property `synonyms`
3731
+ # @return [Array<String>]
3732
+ attr_accessor :synonyms
3733
+
3734
+ def initialize(**args)
3735
+ update!(**args)
3736
+ end
3737
+
3738
+ # Update properties of this object
3739
+ def update!(**args)
3740
+ @oneway_terms = args[:oneway_terms] if args.key?(:oneway_terms)
3741
+ @query_terms = args[:query_terms] if args.key?(:query_terms)
3742
+ @synonyms = args[:synonyms] if args.key?(:synonyms)
3743
+ end
3744
+ end
3745
+
3746
+ # Redirects a shopper to a specific page. * Rule Condition: - Must specify
3747
+ # Condition. * Action Input: Request Query * Action Result: Redirects shopper to
3748
+ # provided uri.
3749
+ class GoogleCloudRetailV2betaRuleRedirectAction
3750
+ include Google::Apis::Core::Hashable
3751
+
3752
+ # URL must have length equal or less than 2000 characters.
3753
+ # Corresponds to the JSON property `redirectUri`
3754
+ # @return [String]
3755
+ attr_accessor :redirect_uri
3756
+
3757
+ def initialize(**args)
3758
+ update!(**args)
3759
+ end
3760
+
3761
+ # Update properties of this object
3762
+ def update!(**args)
3763
+ @redirect_uri = args[:redirect_uri] if args.key?(:redirect_uri)
3764
+ end
3765
+ end
3766
+
3767
+ # Replaces a term in the query. Multiple replacement candidates can be specified.
3768
+ # All `query_terms` will be replaced with the replacement term. Example:
3769
+ # Replace "gShoe" with "google shoe".
3770
+ class GoogleCloudRetailV2betaRuleReplacementAction
3771
+ include Google::Apis::Core::Hashable
3772
+
3773
+ # Terms from the search query. Will be replaced by replacement term. Can specify
3774
+ # up to 100 terms.
3775
+ # Corresponds to the JSON property `queryTerms`
3776
+ # @return [Array<String>]
3777
+ attr_accessor :query_terms
3778
+
3779
+ # Term that will be used for replacement.
3780
+ # Corresponds to the JSON property `replacementTerm`
3781
+ # @return [String]
3782
+ attr_accessor :replacement_term
3783
+
3784
+ # Will be [deprecated = true] post migration;
3785
+ # Corresponds to the JSON property `term`
3786
+ # @return [String]
3787
+ attr_accessor :term
3788
+
3789
+ def initialize(**args)
3790
+ update!(**args)
3791
+ end
3792
+
3793
+ # Update properties of this object
3794
+ def update!(**args)
3795
+ @query_terms = args[:query_terms] if args.key?(:query_terms)
3796
+ @replacement_term = args[:replacement_term] if args.key?(:replacement_term)
3797
+ @term = args[:term] if args.key?(:term)
3798
+ end
3799
+ end
3800
+
3801
+ # Creates a set of terms that will be treated as synonyms of each other. Example:
3802
+ # synonyms of "sneakers" and "shoes". * "sneakers" will use a synonym of "shoes"
3803
+ # . * "shoes" will use a synonym of "sneakers".
3804
+ class GoogleCloudRetailV2betaRuleTwowaySynonymsAction
3805
+ include Google::Apis::Core::Hashable
3806
+
3807
+ # Defines a set of synonyms. Can specify up to 100 synonyms. Must specify at
3808
+ # least 2 synonyms.
3809
+ # Corresponds to the JSON property `synonyms`
3810
+ # @return [Array<String>]
3811
+ attr_accessor :synonyms
3812
+
3813
+ def initialize(**args)
3814
+ update!(**args)
3815
+ end
3816
+
3817
+ # Update properties of this object
3818
+ def update!(**args)
3819
+ @synonyms = args[:synonyms] if args.key?(:synonyms)
3820
+ end
3821
+ end
3822
+
3251
3823
  # Request message for SearchService.Search method.
3252
3824
  class GoogleCloudRetailV2betaSearchRequest
3253
3825
  include Google::Apis::Core::Hashable
@@ -3360,25 +3932,26 @@ module Google
3360
3932
  # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaUserInfo]
3361
3933
  attr_accessor :user_info
3362
3934
 
3363
- # The keys to fetch and rollup the matching variant Products attributes. The
3364
- # attributes from all the matching variant Products are merged and de-duplicated.
3365
- # Notice that rollup variant Products attributes will lead to extra query
3366
- # latency. Maximum number of keys is 10. For FulfillmentInfo, a fulfillment type
3367
- # and a fulfillment ID must be provided in the format of "fulfillmentType.
3368
- # fulfillmentId". E.g., in "pickupInStore.store123", "pickupInStore" is
3369
- # fulfillment type and "store123" is the store ID. Supported keys are: *
3370
- # colorFamilies * price * originalPrice * discount * inventory(place_id,price) *
3371
- # inventory(place_id,attributes.key), where key is any key in the Product.
3372
- # inventories.attributes map. * attributes.key, where key is any key in the
3373
- # Product.attributes map. * pickupInStore.id, where id is any FulfillmentInfo.
3374
- # place_ids for FulfillmentInfo.type "pickup-in-store". * shipToStore.id, where
3375
- # id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "ship-to-store". *
3376
- # sameDayDelivery.id, where id is any FulfillmentInfo.place_ids for
3377
- # FulfillmentInfo.type "same-day-delivery". * nextDayDelivery.id, where id is
3378
- # any FulfillmentInfo.place_ids for FulfillmentInfo.type "next-day-delivery". *
3379
- # customFulfillment1.id, where id is any FulfillmentInfo.place_ids for
3380
- # FulfillmentInfo.type "custom-type-1". * customFulfillment2.id, where id is any
3381
- # FulfillmentInfo.place_ids for FulfillmentInfo.type "custom-type-2". *
3935
+ # The keys to fetch and rollup the matching variant Products attributes,
3936
+ # FulfillmentInfo or LocalInventorys attributes. The attributes from all the
3937
+ # matching variant Products or LocalInventorys are merged and de-duplicated.
3938
+ # Notice that rollup attributes will lead to extra query latency. Maximum number
3939
+ # of keys is 30. For FulfillmentInfo, a fulfillment type and a fulfillment ID
3940
+ # must be provided in the format of "fulfillmentType.fulfillmentId". E.g., in "
3941
+ # pickupInStore.store123", "pickupInStore" is fulfillment type and "store123" is
3942
+ # the store ID. Supported keys are: * colorFamilies * price * originalPrice *
3943
+ # discount * variantId * inventory(place_id,price) * inventory(place_id,
3944
+ # original_price) * inventory(place_id,attributes.key), where key is any key in
3945
+ # the Product.inventories.attributes map. * attributes.key, where key is any key
3946
+ # in the Product.attributes map. * pickupInStore.id, where id is any
3947
+ # FulfillmentInfo.place_ids for FulfillmentInfo.type "pickup-in-store". *
3948
+ # shipToStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.
3949
+ # type "ship-to-store". * sameDayDelivery.id, where id is any FulfillmentInfo.
3950
+ # place_ids for FulfillmentInfo.type "same-day-delivery". * nextDayDelivery.id,
3951
+ # where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "next-day-
3952
+ # delivery". * customFulfillment1.id, where id is any FulfillmentInfo.place_ids
3953
+ # for FulfillmentInfo.type "custom-type-1". * customFulfillment2.id, where id is
3954
+ # any FulfillmentInfo.place_ids for FulfillmentInfo.type "custom-type-2". *
3382
3955
  # customFulfillment3.id, where id is any FulfillmentInfo.place_ids for
3383
3956
  # FulfillmentInfo.type "custom-type-3". * customFulfillment4.id, where id is any
3384
3957
  # FulfillmentInfo.place_ids for FulfillmentInfo.type "custom-type-4". *
@@ -3392,9 +3965,9 @@ module Google
3392
3965
  # Required. A unique identifier for tracking visitors. For example, this could
3393
3966
  # be implemented with an HTTP cookie, which should be able to uniquely identify
3394
3967
  # a visitor on a single device. This unique identifier should not change if the
3395
- # visitor logs in or out of the website. The field must be a UTF-8 encoded
3396
- # string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT
3397
- # error is returned.
3968
+ # visitor logs in or out of the website. This should be the same identifier as
3969
+ # UserEvent.visitor_id. The field must be a UTF-8 encoded string with a length
3970
+ # limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
3398
3971
  # Corresponds to the JSON property `visitorId`
3399
3972
  # @return [String]
3400
3973
  attr_accessor :visitor_id
@@ -3598,8 +4171,8 @@ module Google
3598
4171
  # customFulfillment1" * "customFulfillment2" * "customFulfillment3" * "
3599
4172
  # customFulfillment4" * "customFulfillment5" * "inventory(place_id,attributes.
3600
4173
  # key)" * numerical_field = * "price" * "discount" * "rating" * "ratingCount" * "
3601
- # attributes.key" * "inventory(place_id,price)" * "inventory(place_id,attributes.
3602
- # key)"
4174
+ # attributes.key" * "inventory(place_id,price)" * "inventory(place_id,
4175
+ # original_price)" * "inventory(place_id,attributes.key)"
3603
4176
  # Corresponds to the JSON property `key`
3604
4177
  # @return [String]
3605
4178
  attr_accessor :key
@@ -3698,6 +4271,12 @@ module Google
3698
4271
  class GoogleCloudRetailV2betaSearchResponse
3699
4272
  include Google::Apis::Core::Hashable
3700
4273
 
4274
+ # The fully qualified resource name of applied [controls](https://cloud.google.
4275
+ # com/retail/docs/serving-control-rules).
4276
+ # Corresponds to the JSON property `appliedControls`
4277
+ # @return [Array<String>]
4278
+ attr_accessor :applied_controls
4279
+
3701
4280
  # A unique search token. This should be included in the UserEvent logs resulting
3702
4281
  # from this search, which enables accurate attribution of search model
3703
4282
  # performance.
@@ -3752,6 +4331,7 @@ module Google
3752
4331
 
3753
4332
  # Update properties of this object
3754
4333
  def update!(**args)
4334
+ @applied_controls = args[:applied_controls] if args.key?(:applied_controls)
3755
4335
  @attribution_token = args[:attribution_token] if args.key?(:attribution_token)
3756
4336
  @corrected_query = args[:corrected_query] if args.key?(:corrected_query)
3757
4337
  @facets = args[:facets] if args.key?(:facets)
@@ -3914,6 +4494,183 @@ module Google
3914
4494
  end
3915
4495
  end
3916
4496
 
4497
+ # Configures metadata that is used to generate serving time results (e.g. search
4498
+ # results or recommendation predictions). The ServingConfig is passed in the
4499
+ # search and predict request and together with the Catalog.default_branch,
4500
+ # generates results.
4501
+ class GoogleCloudRetailV2betaServingConfig
4502
+ include Google::Apis::Core::Hashable
4503
+
4504
+ # Condition boost specifications. If a product matches multiple conditions in
4505
+ # the specifications, boost scores from these specifications are all applied and
4506
+ # combined in a non-linear way. Maximum number of specifications is 10. Notice
4507
+ # that if both ServingConfig.boost_control_ids and [SearchRequest.boost_spec]
4508
+ # are set, the boost conditions from both places are evaluated. If a search
4509
+ # request matches multiple boost conditions, the final boost score is equal to
4510
+ # the sum of the boost scores from all matched boost conditions. Can only be set
4511
+ # if solution_types is SOLUTION_TYPE_SEARCH.
4512
+ # Corresponds to the JSON property `boostControlIds`
4513
+ # @return [Array<String>]
4514
+ attr_accessor :boost_control_ids
4515
+
4516
+ # Required. The human readable serving config display name. Used in Retail UI.
4517
+ # This field must be a UTF-8 encoded string with a length limit of 128
4518
+ # characters. Otherwise, an INVALID_ARGUMENT error is returned.
4519
+ # Corresponds to the JSON property `displayName`
4520
+ # @return [String]
4521
+ attr_accessor :display_name
4522
+
4523
+ # How much diversity to use in recommendation model results e.g. 'medium-
4524
+ # diversity' or 'high-diversity'. Currently supported values: * 'no-diversity' *
4525
+ # 'low-diversity' * 'medium-diversity' * 'high-diversity' * 'auto-diversity' If
4526
+ # not specified, we choose default based on recommendation model type. Default
4527
+ # value: 'no-diversity'. Can only be set if solution_types is
4528
+ # SOLUTION_TYPE_RECOMMENDATION.
4529
+ # Corresponds to the JSON property `diversityLevel`
4530
+ # @return [String]
4531
+ attr_accessor :diversity_level
4532
+
4533
+ # Condition do not associate specifications. If multiple do not associate
4534
+ # conditions match, all matching do not associate controls in the list will
4535
+ # execute. - Order does not matter. - Maximum number of specifications is 100.
4536
+ # Can only be set if solution_types is SOLUTION_TYPE_SEARCH.
4537
+ # Corresponds to the JSON property `doNotAssociateControlIds`
4538
+ # @return [Array<String>]
4539
+ attr_accessor :do_not_associate_control_ids
4540
+
4541
+ # The specifications of dynamically generated facets.
4542
+ # Corresponds to the JSON property `dynamicFacetSpec`
4543
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchRequestDynamicFacetSpec]
4544
+ attr_accessor :dynamic_facet_spec
4545
+
4546
+ # Whether to add additional category filters on the 'similar-items' model. If
4547
+ # not specified, we enable it by default. Allowed values are: * 'no-category-
4548
+ # match': No additional filtering of original results from the model and the
4549
+ # customer's filters. * 'relaxed-category-match': Only keep results with
4550
+ # categories that match at least one item categories in the PredictRequests's
4551
+ # context item. * If customer also sends filters in the PredictRequest, then the
4552
+ # results will satisfy both conditions (user given and category match). Can only
4553
+ # be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.
4554
+ # Corresponds to the JSON property `enableCategoryFilterLevel`
4555
+ # @return [String]
4556
+ attr_accessor :enable_category_filter_level
4557
+
4558
+ # Facet specifications for faceted search. If empty, no facets are returned. The
4559
+ # ids refer to the ids of Control resources with only the Facet control set.
4560
+ # These controls are assumed to be in the same Catalog as the ServingConfig. A
4561
+ # maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is
4562
+ # returned. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.
4563
+ # Corresponds to the JSON property `facetControlIds`
4564
+ # @return [Array<String>]
4565
+ attr_accessor :facet_control_ids
4566
+
4567
+ # Condition filter specifications. If a product matches multiple conditions in
4568
+ # the specifications, filters from these specifications are all applied and
4569
+ # combined via the AND operator. Maximum number of specifications is 100. Can
4570
+ # only be set if solution_types is SOLUTION_TYPE_SEARCH.
4571
+ # Corresponds to the JSON property `filterControlIds`
4572
+ # @return [Array<String>]
4573
+ attr_accessor :filter_control_ids
4574
+
4575
+ # Condition ignore specifications. If multiple ignore conditions match, all
4576
+ # matching ignore controls in the list will execute. - Order does not matter. -
4577
+ # Maximum number of specifications is 100. Can only be set if solution_types is
4578
+ # SOLUTION_TYPE_SEARCH.
4579
+ # Corresponds to the JSON property `ignoreControlIds`
4580
+ # @return [Array<String>]
4581
+ attr_accessor :ignore_control_ids
4582
+
4583
+ # The id of the model to use at serving time. Currently only
4584
+ # RecommendationModels are supported: https://cloud.google.com/retail/
4585
+ # recommendations-ai/docs/create-models Can be changed but only to a compatible
4586
+ # model (e.g. others-you-may-like CTR to others-you-may-like CVR). Required when
4587
+ # solution_types is SOLUTION_TYPE_RECOMMENDATION.
4588
+ # Corresponds to the JSON property `modelId`
4589
+ # @return [String]
4590
+ attr_accessor :model_id
4591
+
4592
+ # Immutable. Fully qualified name projects/*/locations/global/catalogs/*/
4593
+ # servingConfig/*
4594
+ # Corresponds to the JSON property `name`
4595
+ # @return [String]
4596
+ attr_accessor :name
4597
+
4598
+ # Condition oneway synonyms specifications. If multiple oneway synonyms
4599
+ # conditions match, all matching oneway synonyms controls in the list will
4600
+ # execute. Order of controls in the list will not matter. Maximum number of
4601
+ # specifications is 100. Can only be set if solution_types is
4602
+ # SOLUTION_TYPE_SEARCH.
4603
+ # Corresponds to the JSON property `onewaySynonymsControlIds`
4604
+ # @return [Array<String>]
4605
+ attr_accessor :oneway_synonyms_control_ids
4606
+
4607
+ # How much price ranking we want in serving results. Price reranking causes
4608
+ # product items with a similar recommendation probability to be ordered by price,
4609
+ # with the highest-priced items first. This setting could result in a decrease
4610
+ # in click-through and conversion rates. Allowed values are: * 'no-price-
4611
+ # reranking' * 'low-price-raranking' * 'medium-price-reranking' * 'high-price-
4612
+ # reranking' If not specified, we choose default based on model type. Default
4613
+ # value: 'no-price-reranking'. Can only be set if solution_types is
4614
+ # SOLUTION_TYPE_RECOMMENDATION.
4615
+ # Corresponds to the JSON property `priceRerankingLevel`
4616
+ # @return [String]
4617
+ attr_accessor :price_reranking_level
4618
+
4619
+ # Condition redirect specifications. Only the first triggered redirect action is
4620
+ # applied, even if multiple apply. Maximum number of specifications is 100. Can
4621
+ # only be set if solution_types is SOLUTION_TYPE_SEARCH.
4622
+ # Corresponds to the JSON property `redirectControlIds`
4623
+ # @return [Array<String>]
4624
+ attr_accessor :redirect_control_ids
4625
+
4626
+ # Condition replacement specifications. - Applied according to the order in the
4627
+ # list. - A previously replaced term can not be re-replaced. - Maximum number of
4628
+ # specifications is 100. Can only be set if solution_types is
4629
+ # SOLUTION_TYPE_SEARCH.
4630
+ # Corresponds to the JSON property `replacementControlIds`
4631
+ # @return [Array<String>]
4632
+ attr_accessor :replacement_control_ids
4633
+
4634
+ # Required. Immutable. Specifies the solution types that a serving config can be
4635
+ # associated with. Currently we support setting only one type of solution.
4636
+ # Corresponds to the JSON property `solutionTypes`
4637
+ # @return [Array<String>]
4638
+ attr_accessor :solution_types
4639
+
4640
+ # Condition synonyms specifications. If multiple syonyms conditions match, all
4641
+ # matching synonyms control in the list will execute. Order of controls in the
4642
+ # list will not matter. Maximum number of specifications is 100. Can only be set
4643
+ # if solution_types is SOLUTION_TYPE_SEARCH.
4644
+ # Corresponds to the JSON property `twowaySynonymsControlIds`
4645
+ # @return [Array<String>]
4646
+ attr_accessor :twoway_synonyms_control_ids
4647
+
4648
+ def initialize(**args)
4649
+ update!(**args)
4650
+ end
4651
+
4652
+ # Update properties of this object
4653
+ def update!(**args)
4654
+ @boost_control_ids = args[:boost_control_ids] if args.key?(:boost_control_ids)
4655
+ @display_name = args[:display_name] if args.key?(:display_name)
4656
+ @diversity_level = args[:diversity_level] if args.key?(:diversity_level)
4657
+ @do_not_associate_control_ids = args[:do_not_associate_control_ids] if args.key?(:do_not_associate_control_ids)
4658
+ @dynamic_facet_spec = args[:dynamic_facet_spec] if args.key?(:dynamic_facet_spec)
4659
+ @enable_category_filter_level = args[:enable_category_filter_level] if args.key?(:enable_category_filter_level)
4660
+ @facet_control_ids = args[:facet_control_ids] if args.key?(:facet_control_ids)
4661
+ @filter_control_ids = args[:filter_control_ids] if args.key?(:filter_control_ids)
4662
+ @ignore_control_ids = args[:ignore_control_ids] if args.key?(:ignore_control_ids)
4663
+ @model_id = args[:model_id] if args.key?(:model_id)
4664
+ @name = args[:name] if args.key?(:name)
4665
+ @oneway_synonyms_control_ids = args[:oneway_synonyms_control_ids] if args.key?(:oneway_synonyms_control_ids)
4666
+ @price_reranking_level = args[:price_reranking_level] if args.key?(:price_reranking_level)
4667
+ @redirect_control_ids = args[:redirect_control_ids] if args.key?(:redirect_control_ids)
4668
+ @replacement_control_ids = args[:replacement_control_ids] if args.key?(:replacement_control_ids)
4669
+ @solution_types = args[:solution_types] if args.key?(:solution_types)
4670
+ @twoway_synonyms_control_ids = args[:twoway_synonyms_control_ids] if args.key?(:twoway_synonyms_control_ids)
4671
+ end
4672
+ end
4673
+
3917
4674
  # Request message to set a specified branch as new default_branch.
3918
4675
  class GoogleCloudRetailV2betaSetDefaultBranchRequest
3919
4676
  include Google::Apis::Core::Hashable
@@ -3977,10 +4734,9 @@ module Google
3977
4734
  # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaProduct]
3978
4735
  attr_accessor :inventory
3979
4736
 
3980
- # Indicates which inventory fields in the provided Product to update. If not set
3981
- # or set with empty paths, all inventory fields will be updated. If an
3982
- # unsupported or unknown field is provided, an INVALID_ARGUMENT error is
3983
- # returned and the entire update will be ignored.
4737
+ # Indicates which inventory fields in the provided Product to update. At least
4738
+ # one field must be provided. If an unsupported or unknown field is provided, an
4739
+ # INVALID_ARGUMENT error is returned and the entire update will be ignored.
3984
4740
  # Corresponds to the JSON property `setMask`
3985
4741
  # @return [String]
3986
4742
  attr_accessor :set_mask
@@ -4024,12 +4780,15 @@ module Google
4024
4780
  class GoogleCloudRetailV2betaUserEvent
4025
4781
  include Google::Apis::Core::Hashable
4026
4782
 
4027
- # Extra user event features to include in the recommendation model. The key must
4028
- # be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise,
4029
- # an INVALID_ARGUMENT error is returned. For product recommendation, an example
4030
- # of extra user information is traffic_channel, i.e. how user arrives at the
4031
- # site. Users can arrive at the site by coming to the site directly, or coming
4032
- # through Google search, and etc.
4783
+ # Extra user event features to include in the recommendation model. This field
4784
+ # needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is
4785
+ # returned: * The key must be a UTF-8 encoded string with a length limit of 5,
4786
+ # 000 characters. * For text attributes, at most 400 values are allowed. Empty
4787
+ # values are not allowed. Each value must be a UTF-8 encoded string with a
4788
+ # length limit of 256 characters. * For number attributes, at most 400 values
4789
+ # are allowed. For product recommendation, an example of extra user information
4790
+ # is traffic_channel, i.e. how user arrives at the site. Users can arrive at the
4791
+ # site by coming to the site directly, or coming through Google search, and etc.
4033
4792
  # Corresponds to the JSON property `attributes`
4034
4793
  # @return [Hash<String,Google::Apis::RetailV2beta::GoogleCloudRetailV2betaCustomAttribute>]
4035
4794
  attr_accessor :attributes
@@ -4071,12 +4830,11 @@ module Google
4071
4830
 
4072
4831
  # Required. User event type. Allowed values are: * `add-to-cart`: Products being
4073
4832
  # added to cart. * `category-page-view`: Special pages such as sale or promotion
4074
- # pages viewed. * `completion`: Completion query result showed/clicked. * `
4075
- # detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage
4076
- # viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-
4077
- # not-offered`: Promotion is not offered to a user. * `purchase-complete`: User
4078
- # finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`:
4079
- # User viewing a shopping cart.
4833
+ # pages viewed. * `detail-page-view`: Products detail page viewed. * `home-page-
4834
+ # view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user.
4835
+ # * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-
4836
+ # complete`: User finishing a purchase. * `search`: Product search. * `shopping-
4837
+ # cart-page-view`: User viewing a shopping cart.
4080
4838
  # Corresponds to the JSON property `eventType`
4081
4839
  # @return [String]
4082
4840
  attr_accessor :event_type
@@ -4143,12 +4901,12 @@ module Google
4143
4901
 
4144
4902
  # The main product details related to the event. This field is required for the
4145
4903
  # following event types: * `add-to-cart` * `detail-page-view` * `purchase-
4146
- # complete` In a `search` event, this field represents the products returned to
4147
- # the end user on the current page (the end user may have not finished browsing
4148
- # the whole page yet). When a new page is returned to the end user, after
4149
- # pagination/filtering/ordering even for the same query, a new `search` event
4150
- # with different product_details is desired. The end user may have not finished
4151
- # browsing the whole page yet.
4904
+ # complete` * `search` In a `search` event, this field represents the products
4905
+ # returned to the end user on the current page (the end user may have not
4906
+ # finished browsing the whole page yet). When a new page is returned to the end
4907
+ # user, after pagination/filtering/ordering even for the same query, a new `
4908
+ # search` event with different product_details is desired. The end user may have
4909
+ # not finished browsing the whole page yet.
4152
4910
  # Corresponds to the JSON property `productDetails`
4153
4911
  # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaProductDetail>]
4154
4912
  attr_accessor :product_details