google-apis-retail_v2beta 0.22.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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