google-apis-retail_v2 0.51.0 → 0.54.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.
@@ -299,6 +299,26 @@ module Google
299
299
  end
300
300
  end
301
301
 
302
+ # Request for AddControl method.
303
+ class GoogleCloudRetailV2AddControlRequest
304
+ include Google::Apis::Core::Hashable
305
+
306
+ # Required. The id of the control to apply. Assumed to be in the same catalog as
307
+ # the serving config - if id is not found a NOT_FOUND error is returned.
308
+ # Corresponds to the JSON property `controlId`
309
+ # @return [String]
310
+ attr_accessor :control_id
311
+
312
+ def initialize(**args)
313
+ update!(**args)
314
+ end
315
+
316
+ # Update properties of this object
317
+ def update!(**args)
318
+ @control_id = args[:control_id] if args.key?(:control_id)
319
+ end
320
+ end
321
+
302
322
  # Metadata related to the progress of the AddFulfillmentPlaces operation.
303
323
  # Currently empty because there is no meaningful metadata populated from the
304
324
  # ProductService.AddFulfillmentPlaces method.
@@ -664,11 +684,12 @@ module Google
664
684
  # Otherwise, this field is `False`. CatalogAttribute can be pre-loaded by using
665
685
  # CatalogService.AddCatalogAttribute, CatalogService.ImportCatalogAttributes, or
666
686
  # CatalogService.UpdateAttributesConfig APIs. This field is `False` for pre-
667
- # loaded CatalogAttributes. Only pre-loaded CatalogAttributes that are neither
668
- # in use by products nor predefined can be deleted. CatalogAttributes that are
669
- # either in use by products or are predefined cannot be deleted; however, their
670
- # configuration properties will reset to default values upon removal request.
671
- # After catalog changes, it takes about 10 minutes for this field to update.
687
+ # loaded CatalogAttributes. Only pre-loaded catalog attributes that are neither
688
+ # in use by products nor predefined can be deleted. Catalog attributes that are
689
+ # either in use by products or are predefined attributes cannot be deleted;
690
+ # however, their configuration properties will reset to default values upon
691
+ # removal request. After catalog changes, it takes about 10 minutes for this
692
+ # field to update.
672
693
  # Corresponds to the JSON property `inUse`
673
694
  # @return [Boolean]
674
695
  attr_accessor :in_use
@@ -1000,6 +1021,157 @@ module Google
1000
1021
  end
1001
1022
  end
1002
1023
 
1024
+ # Metadata that is used to define a condition that triggers an action. A valid
1025
+ # condition must specify at least one of 'query_terms' or 'products_filter'. If
1026
+ # multiple fields are specified, the condition is met if all the fields are
1027
+ # satisfied e.g. if a set of query terms and product_filter are set, then only
1028
+ # items matching the product_filter for requests with a query matching the query
1029
+ # terms wil get boosted.
1030
+ class GoogleCloudRetailV2Condition
1031
+ include Google::Apis::Core::Hashable
1032
+
1033
+ # Range of time(s) specifying when Condition is active. Condition true if any
1034
+ # time range matches.
1035
+ # Corresponds to the JSON property `activeTimeRange`
1036
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2ConditionTimeRange>]
1037
+ attr_accessor :active_time_range
1038
+
1039
+ # A list (up to 10 entries) of terms to match the query on. If not specified,
1040
+ # match all queries. If many query terms are specified, the condition is matched
1041
+ # if any of the terms is a match (i.e. using the OR operator).
1042
+ # Corresponds to the JSON property `queryTerms`
1043
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2ConditionQueryTerm>]
1044
+ attr_accessor :query_terms
1045
+
1046
+ def initialize(**args)
1047
+ update!(**args)
1048
+ end
1049
+
1050
+ # Update properties of this object
1051
+ def update!(**args)
1052
+ @active_time_range = args[:active_time_range] if args.key?(:active_time_range)
1053
+ @query_terms = args[:query_terms] if args.key?(:query_terms)
1054
+ end
1055
+ end
1056
+
1057
+ # Query terms that we want to match on.
1058
+ class GoogleCloudRetailV2ConditionQueryTerm
1059
+ include Google::Apis::Core::Hashable
1060
+
1061
+ # Whether this is supposed to be a full or partial match.
1062
+ # Corresponds to the JSON property `fullMatch`
1063
+ # @return [Boolean]
1064
+ attr_accessor :full_match
1065
+ alias_method :full_match?, :full_match
1066
+
1067
+ # The value of the term to match on. Value cannot be empty. Value can have at
1068
+ # most 3 terms if specified as a partial match. Each space separated string is
1069
+ # considered as one term. For example, "a b c" is 3 terms and allowed, but " a b
1070
+ # c d" is 4 terms and not allowed for a partial match.
1071
+ # Corresponds to the JSON property `value`
1072
+ # @return [String]
1073
+ attr_accessor :value
1074
+
1075
+ def initialize(**args)
1076
+ update!(**args)
1077
+ end
1078
+
1079
+ # Update properties of this object
1080
+ def update!(**args)
1081
+ @full_match = args[:full_match] if args.key?(:full_match)
1082
+ @value = args[:value] if args.key?(:value)
1083
+ end
1084
+ end
1085
+
1086
+ # Used for time-dependent conditions. Example: Want to have rule applied for
1087
+ # week long sale.
1088
+ class GoogleCloudRetailV2ConditionTimeRange
1089
+ include Google::Apis::Core::Hashable
1090
+
1091
+ # End of time range. Range is inclusive.
1092
+ # Corresponds to the JSON property `endTime`
1093
+ # @return [String]
1094
+ attr_accessor :end_time
1095
+
1096
+ # Start of time range. Range is inclusive.
1097
+ # Corresponds to the JSON property `startTime`
1098
+ # @return [String]
1099
+ attr_accessor :start_time
1100
+
1101
+ def initialize(**args)
1102
+ update!(**args)
1103
+ end
1104
+
1105
+ # Update properties of this object
1106
+ def update!(**args)
1107
+ @end_time = args[:end_time] if args.key?(:end_time)
1108
+ @start_time = args[:start_time] if args.key?(:start_time)
1109
+ end
1110
+ end
1111
+
1112
+ # Configures dynamic metadata that can be linked to a ServingConfig and affect
1113
+ # search or recommendation results at serving time.
1114
+ class GoogleCloudRetailV2Control
1115
+ include Google::Apis::Core::Hashable
1116
+
1117
+ # Output only. List of serving configuration ids that are associated with this
1118
+ # control in the same Catalog. Note the association is managed via the
1119
+ # ServingConfig, this is an output only denormalized view.
1120
+ # Corresponds to the JSON property `associatedServingConfigIds`
1121
+ # @return [Array<String>]
1122
+ attr_accessor :associated_serving_config_ids
1123
+
1124
+ # Required. The human readable control display name. Used in Retail UI. This
1125
+ # field must be a UTF-8 encoded string with a length limit of 128 characters.
1126
+ # Otherwise, an INVALID_ARGUMENT error is thrown.
1127
+ # Corresponds to the JSON property `displayName`
1128
+ # @return [String]
1129
+ attr_accessor :display_name
1130
+
1131
+ # Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/
1132
+ # controls/*`
1133
+ # Corresponds to the JSON property `name`
1134
+ # @return [String]
1135
+ attr_accessor :name
1136
+
1137
+ # A rule is a condition-action pair * A condition defines when a rule is to be
1138
+ # triggered. * An action specifies what occurs on that trigger. Currently rules
1139
+ # only work for controls with SOLUTION_TYPE_SEARCH.
1140
+ # Corresponds to the JSON property `rule`
1141
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Rule]
1142
+ attr_accessor :rule
1143
+
1144
+ # Specifies the use case for the control. Affects what condition fields can be
1145
+ # set. Only settable by search controls. Will default to
1146
+ # SEARCH_SOLUTION_USE_CASE_SEARCH if not specified. Currently only allow one
1147
+ # search_solution_use_case per control.
1148
+ # Corresponds to the JSON property `searchSolutionUseCase`
1149
+ # @return [Array<String>]
1150
+ attr_accessor :search_solution_use_case
1151
+
1152
+ # Required. Immutable. The solution types that the control is used for.
1153
+ # Currently we support setting only one type of solution at creation time. Only `
1154
+ # SOLUTION_TYPE_SEARCH` value is supported at the moment. If no solution type is
1155
+ # provided at creation time, will default to SOLUTION_TYPE_SEARCH.
1156
+ # Corresponds to the JSON property `solutionTypes`
1157
+ # @return [Array<String>]
1158
+ attr_accessor :solution_types
1159
+
1160
+ def initialize(**args)
1161
+ update!(**args)
1162
+ end
1163
+
1164
+ # Update properties of this object
1165
+ def update!(**args)
1166
+ @associated_serving_config_ids = args[:associated_serving_config_ids] if args.key?(:associated_serving_config_ids)
1167
+ @display_name = args[:display_name] if args.key?(:display_name)
1168
+ @name = args[:name] if args.key?(:name)
1169
+ @rule = args[:rule] if args.key?(:rule)
1170
+ @search_solution_use_case = args[:search_solution_use_case] if args.key?(:search_solution_use_case)
1171
+ @solution_types = args[:solution_types] if args.key?(:solution_types)
1172
+ end
1173
+ end
1174
+
1003
1175
  # A custom attribute that is not explicitly modeled in Product.
1004
1176
  class GoogleCloudRetailV2CustomAttribute
1005
1177
  include Google::Apis::Core::Hashable
@@ -1535,6 +1707,31 @@ module Google
1535
1707
  end
1536
1708
  end
1537
1709
 
1710
+ # Response for ListControls method.
1711
+ class GoogleCloudRetailV2ListControlsResponse
1712
+ include Google::Apis::Core::Hashable
1713
+
1714
+ # All the Controls for a given catalog.
1715
+ # Corresponds to the JSON property `controls`
1716
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2Control>]
1717
+ attr_accessor :controls
1718
+
1719
+ # Pagination token, if not returned indicates the last page.
1720
+ # Corresponds to the JSON property `nextPageToken`
1721
+ # @return [String]
1722
+ attr_accessor :next_page_token
1723
+
1724
+ def initialize(**args)
1725
+ update!(**args)
1726
+ end
1727
+
1728
+ # Update properties of this object
1729
+ def update!(**args)
1730
+ @controls = args[:controls] if args.key?(:controls)
1731
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1732
+ end
1733
+ end
1734
+
1538
1735
  # Response message for ProductService.ListProducts method.
1539
1736
  class GoogleCloudRetailV2ListProductsResponse
1540
1737
  include Google::Apis::Core::Hashable
@@ -1561,6 +1758,31 @@ module Google
1561
1758
  end
1562
1759
  end
1563
1760
 
1761
+ # Response for ListServingConfigs method.
1762
+ class GoogleCloudRetailV2ListServingConfigsResponse
1763
+ include Google::Apis::Core::Hashable
1764
+
1765
+ # Pagination token, if not returned indicates the last page.
1766
+ # Corresponds to the JSON property `nextPageToken`
1767
+ # @return [String]
1768
+ attr_accessor :next_page_token
1769
+
1770
+ # All the ServingConfigs for a given catalog.
1771
+ # Corresponds to the JSON property `servingConfigs`
1772
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2ServingConfig>]
1773
+ attr_accessor :serving_configs
1774
+
1775
+ def initialize(**args)
1776
+ update!(**args)
1777
+ end
1778
+
1779
+ # Update properties of this object
1780
+ def update!(**args)
1781
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1782
+ @serving_configs = args[:serving_configs] if args.key?(:serving_configs)
1783
+ end
1784
+ end
1785
+
1564
1786
  # The inventory information at a place (e.g. a store) identified by a place ID.
1565
1787
  class GoogleCloudRetailV2LocalInventory
1566
1788
  include Google::Apis::Core::Hashable
@@ -1938,6 +2160,8 @@ module Google
1938
2160
  attr_accessor :available_quantity
1939
2161
 
1940
2162
  # The timestamp when this Product becomes available for SearchService.Search.
2163
+ # Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and
2164
+ # ignored for Type.VARIANT.
1941
2165
  # Corresponds to the JSON property `availableTime`
1942
2166
  # @return [String]
1943
2167
  attr_accessor :available_time
@@ -1955,11 +2179,11 @@ module Google
1955
2179
  # belonging to several parallel categories. Strongly recommended using the full
1956
2180
  # path for better search / recommendation quality. To represent full path of
1957
2181
  # category, use '>' sign to separate different hierarchies. If '>' is part of
1958
- # the category name, please replace it with other character(s). For example, if
1959
- # a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["
1960
- # Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented
1961
- # as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness >
1962
- # Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an
2182
+ # the category name, replace it with other character(s). For example, if a shoes
2183
+ # product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports &
2184
+ # Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "
2185
+ # categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic
2186
+ # Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an
1963
2187
  # INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product.
1964
2188
  # Empty values are not allowed. Each value must be a UTF-8 encoded string with
1965
2189
  # a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is
@@ -2006,7 +2230,10 @@ module Google
2006
2230
  attr_accessor :description
2007
2231
 
2008
2232
  # The timestamp when this product becomes unavailable for SearchService.Search.
2009
- # If it is set, the Product is not available for SearchService.Search after
2233
+ # Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and
2234
+ # ignored for Type.VARIANT. In general, we suggest the users to delete the stale
2235
+ # products explicitly, instead of using this field to determine staleness. If it
2236
+ # is set, the Product is not available for SearchService.Search after
2010
2237
  # expire_time. However, the product can still be retrieved by ProductService.
2011
2238
  # GetProduct and ProductService.ListProducts. expire_time must be later than
2012
2239
  # available_time and publish_time, otherwise an INVALID_ARGUMENT error is thrown.
@@ -2067,6 +2294,14 @@ module Google
2067
2294
  # @return [String]
2068
2295
  attr_accessor :language_code
2069
2296
 
2297
+ # Output only. A list of local inventories specific to different places. This is
2298
+ # only available for users who have Retail Search enabled, and it can be managed
2299
+ # by ProductService.AddLocalInventories and ProductService.
2300
+ # RemoveLocalInventories APIs.
2301
+ # Corresponds to the JSON property `localInventories`
2302
+ # @return [Array<Google::Apis::RetailV2::GoogleCloudRetailV2LocalInventory>]
2303
+ attr_accessor :local_inventories
2304
+
2070
2305
  # The material of the product. For example, "leather", "wooden". A maximum of 20
2071
2306
  # values are allowed. Each value must be a UTF-8 encoded string with a length
2072
2307
  # limit of 200 characters. Otherwise, an INVALID_ARGUMENT error is returned.
@@ -2185,7 +2420,10 @@ module Google
2185
2420
  # @return [String]
2186
2421
  attr_accessor :title
2187
2422
 
2188
- # Input only. The TTL (time to live) of the product. If it is set, it must be a
2423
+ # Input only. The TTL (time to live) of the product. Note that this is only
2424
+ # applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT.
2425
+ # In general, we suggest the users to delete the stale products explicitly,
2426
+ # instead of using this field to determine staleness. If it is set, it must be a
2189
2427
  # non-negative value, and expire_time is set as current timestamp plus ttl. The
2190
2428
  # derived expire_time is returned in the output and ttl is left blank when
2191
2429
  # retrieving the Product. If it is set, the product is not available for
@@ -2245,6 +2483,7 @@ module Google
2245
2483
  @id = args[:id] if args.key?(:id)
2246
2484
  @images = args[:images] if args.key?(:images)
2247
2485
  @language_code = args[:language_code] if args.key?(:language_code)
2486
+ @local_inventories = args[:local_inventories] if args.key?(:local_inventories)
2248
2487
  @materials = args[:materials] if args.key?(:materials)
2249
2488
  @name = args[:name] if args.key?(:name)
2250
2489
  @patterns = args[:patterns] if args.key?(:patterns)
@@ -2571,7 +2810,7 @@ module Google
2571
2810
  end
2572
2811
  end
2573
2812
 
2574
- # Metadata for RejoinUserEvents method.
2813
+ # Metadata for `RejoinUserEvents` method.
2575
2814
  class GoogleCloudRetailV2RejoinUserEventsMetadata
2576
2815
  include Google::Apis::Core::Hashable
2577
2816
 
@@ -2589,8 +2828,8 @@ module Google
2589
2828
  include Google::Apis::Core::Hashable
2590
2829
 
2591
2830
  # The type of the user event rejoin to define the scope and range of the user
2592
- # events to be rejoined with the latest product catalog. Defaults to
2593
- # USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an
2831
+ # events to be rejoined with the latest product catalog. Defaults to `
2832
+ # USER_EVENT_REJOIN_SCOPE_UNSPECIFIED` if this field is not set, or set to an
2594
2833
  # invalid integer value.
2595
2834
  # Corresponds to the JSON property `userEventRejoinScope`
2596
2835
  # @return [String]
@@ -2606,7 +2845,7 @@ module Google
2606
2845
  end
2607
2846
  end
2608
2847
 
2609
- # Response message for RejoinUserEvents method.
2848
+ # Response message for `RejoinUserEvents` method.
2610
2849
  class GoogleCloudRetailV2RejoinUserEventsResponse
2611
2850
  include Google::Apis::Core::Hashable
2612
2851
 
@@ -2644,6 +2883,26 @@ module Google
2644
2883
  end
2645
2884
  end
2646
2885
 
2886
+ # Request for RemoveControl method.
2887
+ class GoogleCloudRetailV2RemoveControlRequest
2888
+ include Google::Apis::Core::Hashable
2889
+
2890
+ # Required. The id of the control to apply. Assumed to be in the same catalog as
2891
+ # the serving config.
2892
+ # Corresponds to the JSON property `controlId`
2893
+ # @return [String]
2894
+ attr_accessor :control_id
2895
+
2896
+ def initialize(**args)
2897
+ update!(**args)
2898
+ end
2899
+
2900
+ # Update properties of this object
2901
+ def update!(**args)
2902
+ @control_id = args[:control_id] if args.key?(:control_id)
2903
+ end
2904
+ end
2905
+
2647
2906
  # Metadata related to the progress of the RemoveFulfillmentPlaces operation.
2648
2907
  # Currently empty because there is no meaningful metadata populated from the
2649
2908
  # ProductService.RemoveFulfillmentPlaces method.
@@ -2796,6 +3055,361 @@ module Google
2796
3055
  end
2797
3056
  end
2798
3057
 
3058
+ # Request for CatalogService.ReplaceCatalogAttribute method.
3059
+ class GoogleCloudRetailV2ReplaceCatalogAttributeRequest
3060
+ include Google::Apis::Core::Hashable
3061
+
3062
+ # Catalog level attribute config for an attribute. For example, if customers
3063
+ # want to enable/disable facet for a specific attribute.
3064
+ # Corresponds to the JSON property `catalogAttribute`
3065
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2CatalogAttribute]
3066
+ attr_accessor :catalog_attribute
3067
+
3068
+ # Indicates which fields in the provided CatalogAttribute to update. The
3069
+ # following are NOT supported: * CatalogAttribute.key If not set, all supported
3070
+ # fields are updated.
3071
+ # Corresponds to the JSON property `updateMask`
3072
+ # @return [String]
3073
+ attr_accessor :update_mask
3074
+
3075
+ def initialize(**args)
3076
+ update!(**args)
3077
+ end
3078
+
3079
+ # Update properties of this object
3080
+ def update!(**args)
3081
+ @catalog_attribute = args[:catalog_attribute] if args.key?(:catalog_attribute)
3082
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
3083
+ end
3084
+ end
3085
+
3086
+ # A rule is a condition-action pair * A condition defines when a rule is to be
3087
+ # triggered. * An action specifies what occurs on that trigger. Currently rules
3088
+ # only work for controls with SOLUTION_TYPE_SEARCH.
3089
+ class GoogleCloudRetailV2Rule
3090
+ include Google::Apis::Core::Hashable
3091
+
3092
+ # A boost action to apply to results matching condition specified above.
3093
+ # Corresponds to the JSON property `boostAction`
3094
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2RuleBoostAction]
3095
+ attr_accessor :boost_action
3096
+
3097
+ # Metadata that is used to define a condition that triggers an action. A valid
3098
+ # condition must specify at least one of 'query_terms' or 'products_filter'. If
3099
+ # multiple fields are specified, the condition is met if all the fields are
3100
+ # satisfied e.g. if a set of query terms and product_filter are set, then only
3101
+ # items matching the product_filter for requests with a query matching the query
3102
+ # terms wil get boosted.
3103
+ # Corresponds to the JSON property `condition`
3104
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2Condition]
3105
+ attr_accessor :condition
3106
+
3107
+ # Prevents `query_term` from being associated with specified terms during search.
3108
+ # Example: Don't associate "gShoe" and "cheap".
3109
+ # Corresponds to the JSON property `doNotAssociateAction`
3110
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2RuleDoNotAssociateAction]
3111
+ attr_accessor :do_not_associate_action
3112
+
3113
+ # * Rule Condition: - No Condition.query_terms provided is a global match. - 1
3114
+ # or more Condition.query_terms provided are combined with OR operator. * Action
3115
+ # Input: The request query and filter that are applied to the retrieved products,
3116
+ # in addition to any filters already provided with the SearchRequest. The AND
3117
+ # operator is used to combine the query's existing filters with the filter rule(
3118
+ # s). NOTE: May result in 0 results when filters conflict. * Action Result:
3119
+ # Filters the returned objects to be ONLY those that passed the filter.
3120
+ # Corresponds to the JSON property `filterAction`
3121
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2RuleFilterAction]
3122
+ attr_accessor :filter_action
3123
+
3124
+ # Prevents a term in the query from being used in search. Example: Don't search
3125
+ # for "shoddy".
3126
+ # Corresponds to the JSON property `ignoreAction`
3127
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2RuleIgnoreAction]
3128
+ attr_accessor :ignore_action
3129
+
3130
+ # Maps a set of terms to a set of synonyms. Set of synonyms will be treated as
3131
+ # synonyms of each query term only. `query_terms` will not be treated as
3132
+ # synonyms of each other. Example: "sneakers" will use a synonym of "shoes". "
3133
+ # shoes" will not use a synonym of "sneakers".
3134
+ # Corresponds to the JSON property `onewaySynonymsAction`
3135
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2RuleOnewaySynonymsAction]
3136
+ attr_accessor :oneway_synonyms_action
3137
+
3138
+ # Redirects a shopper to a specific page. * Rule Condition: - Must specify
3139
+ # Condition.query_terms. * Action Input: Request Query * Action Result:
3140
+ # Redirects shopper to provided uri.
3141
+ # Corresponds to the JSON property `redirectAction`
3142
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2RuleRedirectAction]
3143
+ attr_accessor :redirect_action
3144
+
3145
+ # Replaces a term in the query. Multiple replacement candidates can be specified.
3146
+ # All `query_terms` will be replaced with the replacement term. Example:
3147
+ # Replace "gShoe" with "google shoe".
3148
+ # Corresponds to the JSON property `replacementAction`
3149
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2RuleReplacementAction]
3150
+ attr_accessor :replacement_action
3151
+
3152
+ # Creates a set of terms that will be treated as synonyms of each other. Example:
3153
+ # synonyms of "sneakers" and "shoes". * "sneakers" will use a synonym of "shoes"
3154
+ # . * "shoes" will use a synonym of "sneakers".
3155
+ # Corresponds to the JSON property `twowaySynonymsAction`
3156
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2RuleTwowaySynonymsAction]
3157
+ attr_accessor :twoway_synonyms_action
3158
+
3159
+ def initialize(**args)
3160
+ update!(**args)
3161
+ end
3162
+
3163
+ # Update properties of this object
3164
+ def update!(**args)
3165
+ @boost_action = args[:boost_action] if args.key?(:boost_action)
3166
+ @condition = args[:condition] if args.key?(:condition)
3167
+ @do_not_associate_action = args[:do_not_associate_action] if args.key?(:do_not_associate_action)
3168
+ @filter_action = args[:filter_action] if args.key?(:filter_action)
3169
+ @ignore_action = args[:ignore_action] if args.key?(:ignore_action)
3170
+ @oneway_synonyms_action = args[:oneway_synonyms_action] if args.key?(:oneway_synonyms_action)
3171
+ @redirect_action = args[:redirect_action] if args.key?(:redirect_action)
3172
+ @replacement_action = args[:replacement_action] if args.key?(:replacement_action)
3173
+ @twoway_synonyms_action = args[:twoway_synonyms_action] if args.key?(:twoway_synonyms_action)
3174
+ end
3175
+ end
3176
+
3177
+ # A boost action to apply to results matching condition specified above.
3178
+ class GoogleCloudRetailV2RuleBoostAction
3179
+ include Google::Apis::Core::Hashable
3180
+
3181
+ # Strength of the condition boost, which must be in [-1, 1]. Negative boost
3182
+ # means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion.
3183
+ # However, it does not necessarily mean that the boosted item will be the top
3184
+ # result at all times, nor that other items will be excluded. Results could
3185
+ # still be shown even when none of them matches the condition. And results that
3186
+ # are significantly more relevant to the search query can still trump your
3187
+ # heavily favored but irrelevant items. Setting to -1.0 gives the item a big
3188
+ # demotion. However, results that are deeply relevant might still be shown. The
3189
+ # item will have an upstream battle to get a fairly high ranking, but it is not
3190
+ # blocked out completely. Setting to 0.0 means no boost applied. The boosting
3191
+ # condition is ignored.
3192
+ # Corresponds to the JSON property `boost`
3193
+ # @return [Float]
3194
+ attr_accessor :boost
3195
+
3196
+ # The filter can have a max size of 5000 characters. An expression which
3197
+ # specifies which products to apply an action to. The syntax and supported
3198
+ # fields are the same as a filter expression. See SearchRequest.filter for
3199
+ # detail syntax and limitations. Examples: * To boost products with product ID "
3200
+ # product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "
3201
+ # product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
3202
+ # Corresponds to the JSON property `productsFilter`
3203
+ # @return [String]
3204
+ attr_accessor :products_filter
3205
+
3206
+ def initialize(**args)
3207
+ update!(**args)
3208
+ end
3209
+
3210
+ # Update properties of this object
3211
+ def update!(**args)
3212
+ @boost = args[:boost] if args.key?(:boost)
3213
+ @products_filter = args[:products_filter] if args.key?(:products_filter)
3214
+ end
3215
+ end
3216
+
3217
+ # Prevents `query_term` from being associated with specified terms during search.
3218
+ # Example: Don't associate "gShoe" and "cheap".
3219
+ class GoogleCloudRetailV2RuleDoNotAssociateAction
3220
+ include Google::Apis::Core::Hashable
3221
+
3222
+ # Cannot contain duplicates or the query term. Can specify up to 100 terms.
3223
+ # Corresponds to the JSON property `doNotAssociateTerms`
3224
+ # @return [Array<String>]
3225
+ attr_accessor :do_not_associate_terms
3226
+
3227
+ # Terms from the search query. Will not consider do_not_associate_terms for
3228
+ # search if in search query. Can specify up to 100 terms.
3229
+ # Corresponds to the JSON property `queryTerms`
3230
+ # @return [Array<String>]
3231
+ attr_accessor :query_terms
3232
+
3233
+ # Will be [deprecated = true] post migration;
3234
+ # Corresponds to the JSON property `terms`
3235
+ # @return [Array<String>]
3236
+ attr_accessor :terms
3237
+
3238
+ def initialize(**args)
3239
+ update!(**args)
3240
+ end
3241
+
3242
+ # Update properties of this object
3243
+ def update!(**args)
3244
+ @do_not_associate_terms = args[:do_not_associate_terms] if args.key?(:do_not_associate_terms)
3245
+ @query_terms = args[:query_terms] if args.key?(:query_terms)
3246
+ @terms = args[:terms] if args.key?(:terms)
3247
+ end
3248
+ end
3249
+
3250
+ # * Rule Condition: - No Condition.query_terms provided is a global match. - 1
3251
+ # or more Condition.query_terms provided are combined with OR operator. * Action
3252
+ # Input: The request query and filter that are applied to the retrieved products,
3253
+ # in addition to any filters already provided with the SearchRequest. The AND
3254
+ # operator is used to combine the query's existing filters with the filter rule(
3255
+ # s). NOTE: May result in 0 results when filters conflict. * Action Result:
3256
+ # Filters the returned objects to be ONLY those that passed the filter.
3257
+ class GoogleCloudRetailV2RuleFilterAction
3258
+ include Google::Apis::Core::Hashable
3259
+
3260
+ # A filter to apply on the matching condition results. Supported features: *
3261
+ # filter must be set. * Filter syntax is identical to SearchRequest.filter. See
3262
+ # more details at the Retail Search [user guide](/retail/search/docs/filter-and-
3263
+ # order#filter). * To filter products with product ID "product_1" or "product_2",
3264
+ # and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(
3265
+ # colorFamilies: ANY("Red", "Blue")) *
3266
+ # Corresponds to the JSON property `filter`
3267
+ # @return [String]
3268
+ attr_accessor :filter
3269
+
3270
+ def initialize(**args)
3271
+ update!(**args)
3272
+ end
3273
+
3274
+ # Update properties of this object
3275
+ def update!(**args)
3276
+ @filter = args[:filter] if args.key?(:filter)
3277
+ end
3278
+ end
3279
+
3280
+ # Prevents a term in the query from being used in search. Example: Don't search
3281
+ # for "shoddy".
3282
+ class GoogleCloudRetailV2RuleIgnoreAction
3283
+ include Google::Apis::Core::Hashable
3284
+
3285
+ # Terms to ignore in the search query.
3286
+ # Corresponds to the JSON property `ignoreTerms`
3287
+ # @return [Array<String>]
3288
+ attr_accessor :ignore_terms
3289
+
3290
+ def initialize(**args)
3291
+ update!(**args)
3292
+ end
3293
+
3294
+ # Update properties of this object
3295
+ def update!(**args)
3296
+ @ignore_terms = args[:ignore_terms] if args.key?(:ignore_terms)
3297
+ end
3298
+ end
3299
+
3300
+ # Maps a set of terms to a set of synonyms. Set of synonyms will be treated as
3301
+ # synonyms of each query term only. `query_terms` will not be treated as
3302
+ # synonyms of each other. Example: "sneakers" will use a synonym of "shoes". "
3303
+ # shoes" will not use a synonym of "sneakers".
3304
+ class GoogleCloudRetailV2RuleOnewaySynonymsAction
3305
+ include Google::Apis::Core::Hashable
3306
+
3307
+ # Will be [deprecated = true] post migration;
3308
+ # Corresponds to the JSON property `onewayTerms`
3309
+ # @return [Array<String>]
3310
+ attr_accessor :oneway_terms
3311
+
3312
+ # Terms from the search query. Will treat synonyms as their synonyms. Not
3313
+ # themselves synonyms of the synonyms. Can specify up to 100 terms.
3314
+ # Corresponds to the JSON property `queryTerms`
3315
+ # @return [Array<String>]
3316
+ attr_accessor :query_terms
3317
+
3318
+ # Defines a set of synonyms. Cannot contain duplicates. Can specify up to 100
3319
+ # synonyms.
3320
+ # Corresponds to the JSON property `synonyms`
3321
+ # @return [Array<String>]
3322
+ attr_accessor :synonyms
3323
+
3324
+ def initialize(**args)
3325
+ update!(**args)
3326
+ end
3327
+
3328
+ # Update properties of this object
3329
+ def update!(**args)
3330
+ @oneway_terms = args[:oneway_terms] if args.key?(:oneway_terms)
3331
+ @query_terms = args[:query_terms] if args.key?(:query_terms)
3332
+ @synonyms = args[:synonyms] if args.key?(:synonyms)
3333
+ end
3334
+ end
3335
+
3336
+ # Redirects a shopper to a specific page. * Rule Condition: - Must specify
3337
+ # Condition.query_terms. * Action Input: Request Query * Action Result:
3338
+ # Redirects shopper to provided uri.
3339
+ class GoogleCloudRetailV2RuleRedirectAction
3340
+ include Google::Apis::Core::Hashable
3341
+
3342
+ # URL must have length equal or less than 2000 characters.
3343
+ # Corresponds to the JSON property `redirectUri`
3344
+ # @return [String]
3345
+ attr_accessor :redirect_uri
3346
+
3347
+ def initialize(**args)
3348
+ update!(**args)
3349
+ end
3350
+
3351
+ # Update properties of this object
3352
+ def update!(**args)
3353
+ @redirect_uri = args[:redirect_uri] if args.key?(:redirect_uri)
3354
+ end
3355
+ end
3356
+
3357
+ # Replaces a term in the query. Multiple replacement candidates can be specified.
3358
+ # All `query_terms` will be replaced with the replacement term. Example:
3359
+ # Replace "gShoe" with "google shoe".
3360
+ class GoogleCloudRetailV2RuleReplacementAction
3361
+ include Google::Apis::Core::Hashable
3362
+
3363
+ # Terms from the search query. Will be replaced by replacement term. Can specify
3364
+ # up to 100 terms.
3365
+ # Corresponds to the JSON property `queryTerms`
3366
+ # @return [Array<String>]
3367
+ attr_accessor :query_terms
3368
+
3369
+ # Term that will be used for replacement.
3370
+ # Corresponds to the JSON property `replacementTerm`
3371
+ # @return [String]
3372
+ attr_accessor :replacement_term
3373
+
3374
+ # Will be [deprecated = true] post migration;
3375
+ # Corresponds to the JSON property `term`
3376
+ # @return [String]
3377
+ attr_accessor :term
3378
+
3379
+ def initialize(**args)
3380
+ update!(**args)
3381
+ end
3382
+
3383
+ # Update properties of this object
3384
+ def update!(**args)
3385
+ @query_terms = args[:query_terms] if args.key?(:query_terms)
3386
+ @replacement_term = args[:replacement_term] if args.key?(:replacement_term)
3387
+ @term = args[:term] if args.key?(:term)
3388
+ end
3389
+ end
3390
+
3391
+ # Creates a set of terms that will be treated as synonyms of each other. Example:
3392
+ # synonyms of "sneakers" and "shoes". * "sneakers" will use a synonym of "shoes"
3393
+ # . * "shoes" will use a synonym of "sneakers".
3394
+ class GoogleCloudRetailV2RuleTwowaySynonymsAction
3395
+ include Google::Apis::Core::Hashable
3396
+
3397
+ # Defines a set of synonyms. Can specify up to 100 synonyms. Must specify at
3398
+ # least 2 synonyms.
3399
+ # Corresponds to the JSON property `synonyms`
3400
+ # @return [Array<String>]
3401
+ attr_accessor :synonyms
3402
+
3403
+ def initialize(**args)
3404
+ update!(**args)
3405
+ end
3406
+
3407
+ # Update properties of this object
3408
+ def update!(**args)
3409
+ @synonyms = args[:synonyms] if args.key?(:synonyms)
3410
+ end
3411
+ end
3412
+
2799
3413
  # Request message for SearchService.Search method.
2800
3414
  class GoogleCloudRetailV2SearchRequest
2801
3415
  include Google::Apis::Core::Hashable
@@ -2880,9 +3494,9 @@ module Google
2880
3494
  # navigation queries to achieve good search quality. The format should be the
2881
3495
  # same as UserEvent.page_categories; To represent full path of category, use '>'
2882
3496
  # sign to separate different hierarchies. If '>' is part of the category name,
2883
- # please replace it with other character(s). Category pages include special
2884
- # pages such as sales or promotions. For instance, a special sale page may have
2885
- # the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"].
3497
+ # replace it with other character(s). Category pages include special pages such
3498
+ # as sales or promotions. For instance, a special sale page may have the
3499
+ # category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"].
2886
3500
  # Corresponds to the JSON property `pageCategories`
2887
3501
  # @return [Array<String>]
2888
3502
  attr_accessor :page_categories
@@ -3607,6 +4221,193 @@ module Google
3607
4221
  end
3608
4222
  end
3609
4223
 
4224
+ # Configures metadata that is used to generate serving time results (e.g. search
4225
+ # results or recommendation predictions).
4226
+ class GoogleCloudRetailV2ServingConfig
4227
+ include Google::Apis::Core::Hashable
4228
+
4229
+ # Condition boost specifications. If a product matches multiple conditions in
4230
+ # the specifications, boost scores from these specifications are all applied and
4231
+ # combined in a non-linear way. Maximum number of specifications is 100. Notice
4232
+ # that if both ServingConfig.boost_control_ids and SearchRequest.boost_spec are
4233
+ # set, the boost conditions from both places are evaluated. If a search request
4234
+ # matches multiple boost conditions, the final boost score is equal to the sum
4235
+ # of the boost scores from all matched boost conditions. Can only be set if
4236
+ # solution_types is SOLUTION_TYPE_SEARCH.
4237
+ # Corresponds to the JSON property `boostControlIds`
4238
+ # @return [Array<String>]
4239
+ attr_accessor :boost_control_ids
4240
+
4241
+ # Required. The human readable serving config display name. Used in Retail UI.
4242
+ # This field must be a UTF-8 encoded string with a length limit of 128
4243
+ # characters. Otherwise, an INVALID_ARGUMENT error is returned.
4244
+ # Corresponds to the JSON property `displayName`
4245
+ # @return [String]
4246
+ attr_accessor :display_name
4247
+
4248
+ # How much diversity to use in recommendation model results e.g. `medium-
4249
+ # diversity` or `high-diversity`. Currently supported values: * `no-diversity` *
4250
+ # `low-diversity` * `medium-diversity` * `high-diversity` * `auto-diversity` If
4251
+ # not specified, we choose default based on recommendation model type. Default
4252
+ # value: `no-diversity`. Can only be set if solution_types is
4253
+ # SOLUTION_TYPE_RECOMMENDATION.
4254
+ # Corresponds to the JSON property `diversityLevel`
4255
+ # @return [String]
4256
+ attr_accessor :diversity_level
4257
+
4258
+ # What kind of diversity to use - data driven or rule based.
4259
+ # Corresponds to the JSON property `diversityType`
4260
+ # @return [String]
4261
+ attr_accessor :diversity_type
4262
+
4263
+ # Condition do not associate specifications. If multiple do not associate
4264
+ # conditions match, all matching do not associate controls in the list will
4265
+ # execute. - Order does not matter. - Maximum number of specifications is 100.
4266
+ # Can only be set if solution_types is SOLUTION_TYPE_SEARCH.
4267
+ # Corresponds to the JSON property `doNotAssociateControlIds`
4268
+ # @return [Array<String>]
4269
+ attr_accessor :do_not_associate_control_ids
4270
+
4271
+ # The specifications of dynamically generated facets.
4272
+ # Corresponds to the JSON property `dynamicFacetSpec`
4273
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2SearchRequestDynamicFacetSpec]
4274
+ attr_accessor :dynamic_facet_spec
4275
+
4276
+ # Whether to add additional category filters on the `similar-items` model. If
4277
+ # not specified, we enable it by default. Allowed values are: * `no-category-
4278
+ # match`: No additional filtering of original results from the model and the
4279
+ # customer's filters. * `relaxed-category-match`: Only keep results with
4280
+ # categories that match at least one item categories in the PredictRequests's
4281
+ # context item. * If customer also sends filters in the PredictRequest, then the
4282
+ # results will satisfy both conditions (user given and category match). Can only
4283
+ # be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.
4284
+ # Corresponds to the JSON property `enableCategoryFilterLevel`
4285
+ # @return [String]
4286
+ attr_accessor :enable_category_filter_level
4287
+
4288
+ # Facet specifications for faceted search. If empty, no facets are returned. The
4289
+ # ids refer to the ids of Control resources with only the Facet control set.
4290
+ # These controls are assumed to be in the same Catalog as the ServingConfig. A
4291
+ # maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is
4292
+ # returned. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.
4293
+ # Corresponds to the JSON property `facetControlIds`
4294
+ # @return [Array<String>]
4295
+ attr_accessor :facet_control_ids
4296
+
4297
+ # Condition filter specifications. If a product matches multiple conditions in
4298
+ # the specifications, filters from these specifications are all applied and
4299
+ # combined via the AND operator. Maximum number of specifications is 100. Can
4300
+ # only be set if solution_types is SOLUTION_TYPE_SEARCH.
4301
+ # Corresponds to the JSON property `filterControlIds`
4302
+ # @return [Array<String>]
4303
+ attr_accessor :filter_control_ids
4304
+
4305
+ # Condition ignore specifications. If multiple ignore conditions match, all
4306
+ # matching ignore controls in the list will execute. - Order does not matter. -
4307
+ # Maximum number of specifications is 100. Can only be set if solution_types is
4308
+ # SOLUTION_TYPE_SEARCH.
4309
+ # Corresponds to the JSON property `ignoreControlIds`
4310
+ # @return [Array<String>]
4311
+ attr_accessor :ignore_control_ids
4312
+
4313
+ # The id of the model in the same Catalog to use at serving time. Currently only
4314
+ # RecommendationModels are supported: https://cloud.google.com/retail/
4315
+ # recommendations-ai/docs/create-models Can be changed but only to a compatible
4316
+ # model (e.g. others-you-may-like CTR to others-you-may-like CVR). Required when
4317
+ # solution_types is SOLUTION_TYPE_RECOMMENDATION.
4318
+ # Corresponds to the JSON property `modelId`
4319
+ # @return [String]
4320
+ attr_accessor :model_id
4321
+
4322
+ # Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/
4323
+ # servingConfig/*`
4324
+ # Corresponds to the JSON property `name`
4325
+ # @return [String]
4326
+ attr_accessor :name
4327
+
4328
+ # Condition oneway synonyms specifications. If multiple oneway synonyms
4329
+ # conditions match, all matching oneway synonyms controls in the list will
4330
+ # execute. Order of controls in the list will not matter. Maximum number of
4331
+ # specifications is 100. Can only be set if solution_types is
4332
+ # SOLUTION_TYPE_SEARCH.
4333
+ # Corresponds to the JSON property `onewaySynonymsControlIds`
4334
+ # @return [Array<String>]
4335
+ attr_accessor :oneway_synonyms_control_ids
4336
+
4337
+ # The specification for personalization.
4338
+ # Corresponds to the JSON property `personalizationSpec`
4339
+ # @return [Google::Apis::RetailV2::GoogleCloudRetailV2SearchRequestPersonalizationSpec]
4340
+ attr_accessor :personalization_spec
4341
+
4342
+ # How much price ranking we want in serving results. Price reranking causes
4343
+ # product items with a similar recommendation probability to be ordered by price,
4344
+ # with the highest-priced items first. This setting could result in a decrease
4345
+ # in click-through and conversion rates. Allowed values are: * `no-price-
4346
+ # reranking` * `low-price-raranking` * `medium-price-reranking` * `high-price-
4347
+ # reranking` If not specified, we choose default based on model type. Default
4348
+ # value: `no-price-reranking`. Can only be set if solution_types is
4349
+ # SOLUTION_TYPE_RECOMMENDATION.
4350
+ # Corresponds to the JSON property `priceRerankingLevel`
4351
+ # @return [String]
4352
+ attr_accessor :price_reranking_level
4353
+
4354
+ # Condition redirect specifications. Only the first triggered redirect action is
4355
+ # applied, even if multiple apply. Maximum number of specifications is 1000. Can
4356
+ # only be set if solution_types is SOLUTION_TYPE_SEARCH.
4357
+ # Corresponds to the JSON property `redirectControlIds`
4358
+ # @return [Array<String>]
4359
+ attr_accessor :redirect_control_ids
4360
+
4361
+ # Condition replacement specifications. - Applied according to the order in the
4362
+ # list. - A previously replaced term can not be re-replaced. - Maximum number of
4363
+ # specifications is 100. Can only be set if solution_types is
4364
+ # SOLUTION_TYPE_SEARCH.
4365
+ # Corresponds to the JSON property `replacementControlIds`
4366
+ # @return [Array<String>]
4367
+ attr_accessor :replacement_control_ids
4368
+
4369
+ # Required. Immutable. Specifies the solution types that a serving config can be
4370
+ # associated with. Currently we support setting only one type of solution.
4371
+ # Corresponds to the JSON property `solutionTypes`
4372
+ # @return [Array<String>]
4373
+ attr_accessor :solution_types
4374
+
4375
+ # Condition synonyms specifications. If multiple syonyms conditions match, all
4376
+ # matching synonyms control in the list will execute. Order of controls in the
4377
+ # list will not matter. Maximum number of specifications is 100. Can only be set
4378
+ # if solution_types is SOLUTION_TYPE_SEARCH.
4379
+ # Corresponds to the JSON property `twowaySynonymsControlIds`
4380
+ # @return [Array<String>]
4381
+ attr_accessor :twoway_synonyms_control_ids
4382
+
4383
+ def initialize(**args)
4384
+ update!(**args)
4385
+ end
4386
+
4387
+ # Update properties of this object
4388
+ def update!(**args)
4389
+ @boost_control_ids = args[:boost_control_ids] if args.key?(:boost_control_ids)
4390
+ @display_name = args[:display_name] if args.key?(:display_name)
4391
+ @diversity_level = args[:diversity_level] if args.key?(:diversity_level)
4392
+ @diversity_type = args[:diversity_type] if args.key?(:diversity_type)
4393
+ @do_not_associate_control_ids = args[:do_not_associate_control_ids] if args.key?(:do_not_associate_control_ids)
4394
+ @dynamic_facet_spec = args[:dynamic_facet_spec] if args.key?(:dynamic_facet_spec)
4395
+ @enable_category_filter_level = args[:enable_category_filter_level] if args.key?(:enable_category_filter_level)
4396
+ @facet_control_ids = args[:facet_control_ids] if args.key?(:facet_control_ids)
4397
+ @filter_control_ids = args[:filter_control_ids] if args.key?(:filter_control_ids)
4398
+ @ignore_control_ids = args[:ignore_control_ids] if args.key?(:ignore_control_ids)
4399
+ @model_id = args[:model_id] if args.key?(:model_id)
4400
+ @name = args[:name] if args.key?(:name)
4401
+ @oneway_synonyms_control_ids = args[:oneway_synonyms_control_ids] if args.key?(:oneway_synonyms_control_ids)
4402
+ @personalization_spec = args[:personalization_spec] if args.key?(:personalization_spec)
4403
+ @price_reranking_level = args[:price_reranking_level] if args.key?(:price_reranking_level)
4404
+ @redirect_control_ids = args[:redirect_control_ids] if args.key?(:redirect_control_ids)
4405
+ @replacement_control_ids = args[:replacement_control_ids] if args.key?(:replacement_control_ids)
4406
+ @solution_types = args[:solution_types] if args.key?(:solution_types)
4407
+ @twoway_synonyms_control_ids = args[:twoway_synonyms_control_ids] if args.key?(:twoway_synonyms_control_ids)
4408
+ end
4409
+ end
4410
+
3610
4411
  # Request message to set a specified branch as new default_branch.
3611
4412
  class GoogleCloudRetailV2SetDefaultBranchRequest
3612
4413
  include Google::Apis::Core::Hashable
@@ -3829,12 +4630,12 @@ module Google
3829
4630
 
3830
4631
  # The categories associated with a category page. To represent full path of
3831
4632
  # category, use '>' sign to separate different hierarchies. If '>' is part of
3832
- # the category name, please replace it with other character(s). Category pages
3833
- # include special pages such as sales or promotions. For instance, a special
3834
- # sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017
3835
- # Black Friday Deals"]. Required for `category-page-view` events. At least one
3836
- # of search_query or page_categories is required for `search` events. Other
3837
- # event types should not set this field. Otherwise, an INVALID_ARGUMENT error is
4633
+ # the category name, replace it with other character(s). Category pages include
4634
+ # special pages such as sales or promotions. For instance, a special sale page
4635
+ # may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black
4636
+ # Friday Deals"]. Required for `category-page-view` events. At least one of
4637
+ # search_query or page_categories is required for `search` events. Other event
4638
+ # types should not set this field. Otherwise, an INVALID_ARGUMENT error is
3838
4639
  # returned.
3839
4640
  # Corresponds to the JSON property `pageCategories`
3840
4641
  # @return [Array<String>]
@@ -4172,8 +4973,9 @@ module Google
4172
4973
  class GoogleCloudRetailV2alphaCreateModelMetadata
4173
4974
  include Google::Apis::Core::Hashable
4174
4975
 
4175
- # The resource name of the model that this create applies to. Format: projects/`
4976
+ # The resource name of the model that this create applies to. Format: `projects/`
4176
4977
  # project_number`/locations/`location_id`/catalogs/`catalog_id`/models/`model_id`
4978
+ # `
4177
4979
  # Corresponds to the JSON property `model`
4178
4980
  # @return [String]
4179
4981
  attr_accessor :model
@@ -4209,8 +5011,8 @@ module Google
4209
5011
  end
4210
5012
  end
4211
5013
 
4212
- # Metadata related to the progress of the Export operation. This will be
4213
- # returned by the google.longrunning.Operation.metadata field.
5014
+ # Metadata related to the progress of the Export operation. This is returned by
5015
+ # the google.longrunning.Operation.metadata field.
4214
5016
  class GoogleCloudRetailV2alphaExportMetadata
4215
5017
  include Google::Apis::Core::Hashable
4216
5018
 
@@ -4515,7 +5317,13 @@ module Google
4515
5317
  # ctr`, `cvr`, `revenue-per-order`. If not specified, we choose default based on
4516
5318
  # model type. Default depends on type of recommendation: `recommended-for-you` =>
4517
5319
  # `ctr` `others-you-may-like` => `ctr` `frequently-bought-together` => `
4518
- # revenue_per_order`
5320
+ # revenue_per_order` This field together with optimization_objective describe
5321
+ # model metadata to use to control model training and serving. See https://cloud.
5322
+ # google.com/retail/docs/models for more details on what the model metadata
5323
+ # control and which combination of parameters are valid. For invalid
5324
+ # combinations of parameters (e.g. type = `frequently-bought-together` and
5325
+ # optimization_objective = `ctr`), you receive an error 400 if you try to create/
5326
+ # update a recommendation with this set of knobs.
4519
5327
  # Corresponds to the JSON property `optimizationObjective`
4520
5328
  # @return [String]
4521
5329
  attr_accessor :optimization_objective
@@ -4565,7 +5373,13 @@ module Google
4565
5373
  # Required. The type of model e.g. `home-page`. Currently supported values: `
4566
5374
  # recommended-for-you`, `others-you-may-like`, `frequently-bought-together`, `
4567
5375
  # page-optimization`, `similar-items`, `buy-it-again`, and `recently-viewed`(
4568
- # readonly value).
5376
+ # readonly value). This field together with optimization_objective describe
5377
+ # model metadata to use to control model training and serving. See https://cloud.
5378
+ # google.com/retail/docs/models for more details on what the model metadata
5379
+ # control and which combination of parameters are valid. For invalid
5380
+ # combinations of parameters (e.g. type = `frequently-bought-together` and
5381
+ # optimization_objective = `ctr`), you receive an error 400 if you try to create/
5382
+ # update a recommendation with this set of knobs.
4569
5383
  # Corresponds to the JSON property `type`
4570
5384
  # @return [String]
4571
5385
  attr_accessor :type
@@ -4842,7 +5656,7 @@ module Google
4842
5656
  end
4843
5657
  end
4844
5658
 
4845
- # Metadata for RejoinUserEvents method.
5659
+ # Metadata for `RejoinUserEvents` method.
4846
5660
  class GoogleCloudRetailV2alphaRejoinUserEventsMetadata
4847
5661
  include Google::Apis::Core::Hashable
4848
5662
 
@@ -4855,7 +5669,7 @@ module Google
4855
5669
  end
4856
5670
  end
4857
5671
 
4858
- # Response message for RejoinUserEvents method.
5672
+ # Response message for `RejoinUserEvents` method.
4859
5673
  class GoogleCloudRetailV2alphaRejoinUserEventsResponse
4860
5674
  include Google::Apis::Core::Hashable
4861
5675
 
@@ -4993,8 +5807,9 @@ module Google
4993
5807
  class GoogleCloudRetailV2alphaTuneModelMetadata
4994
5808
  include Google::Apis::Core::Hashable
4995
5809
 
4996
- # The resource name of the model that this tune applies to. Format: projects/`
5810
+ # The resource name of the model that this tune applies to. Format: `projects/`
4997
5811
  # project_number`/locations/`location_id`/catalogs/`catalog_id`/models/`model_id`
5812
+ # `
4998
5813
  # Corresponds to the JSON property `model`
4999
5814
  # @return [String]
5000
5815
  attr_accessor :model
@@ -5155,8 +5970,8 @@ module Google
5155
5970
  end
5156
5971
  end
5157
5972
 
5158
- # Metadata related to the progress of the Export operation. This will be
5159
- # returned by the google.longrunning.Operation.metadata field.
5973
+ # Metadata related to the progress of the Export operation. This is returned by
5974
+ # the google.longrunning.Operation.metadata field.
5160
5975
  class GoogleCloudRetailV2betaExportMetadata
5161
5976
  include Google::Apis::Core::Hashable
5162
5977
 
@@ -5459,7 +6274,7 @@ module Google
5459
6274
  end
5460
6275
  end
5461
6276
 
5462
- # Metadata for RejoinUserEvents method.
6277
+ # Metadata for `RejoinUserEvents` method.
5463
6278
  class GoogleCloudRetailV2betaRejoinUserEventsMetadata
5464
6279
  include Google::Apis::Core::Hashable
5465
6280
 
@@ -5472,7 +6287,7 @@ module Google
5472
6287
  end
5473
6288
  end
5474
6289
 
5475
- # Response message for RejoinUserEvents method.
6290
+ # Response message for `RejoinUserEvents` method.
5476
6291
  class GoogleCloudRetailV2betaRejoinUserEventsResponse
5477
6292
  include Google::Apis::Core::Hashable
5478
6293