google-apis-retail_v2alpha 0.25.0 → 0.29.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -618,6 +618,26 @@ module Google
618
618
  end
619
619
  end
620
620
 
621
+ # Request for AddControl method.
622
+ class GoogleCloudRetailV2alphaAddControlRequest
623
+ include Google::Apis::Core::Hashable
624
+
625
+ # Required. The id of the control to apply. Assumed to be in the same catalog as
626
+ # the serving config - if id is not found a NOT_FOUND error is returned.
627
+ # Corresponds to the JSON property `controlId`
628
+ # @return [String]
629
+ attr_accessor :control_id
630
+
631
+ def initialize(**args)
632
+ update!(**args)
633
+ end
634
+
635
+ # Update properties of this object
636
+ def update!(**args)
637
+ @control_id = args[:control_id] if args.key?(:control_id)
638
+ end
639
+ end
640
+
621
641
  # Metadata related to the progress of the AddFulfillmentPlaces operation.
622
642
  # Currently empty because there is no meaningful metadata populated from the
623
643
  # AddFulfillmentPlaces method.
@@ -831,7 +851,11 @@ module Google
831
851
  # Importing catalog data from Merchant Center](https://cloud.google.com/retail/
832
852
  # recommendations-ai/docs/upload-catalog#mc). Supported values for user events
833
853
  # imports: * `user_event` (default): One JSON UserEvent per line. * `
834
- # user_event_ga360`: Using https://support.google.com/analytics/answer/3437719.
854
+ # user_event_ga360`: The schema is available here: https://support.google.com/
855
+ # analytics/answer/3437719. * `user_event_ga4`: This feature is in private
856
+ # preview. Please contact the support team for importing Google Analytics 4
857
+ # events. The schema is available here: https://support.google.com/analytics/
858
+ # answer/7029846.
835
859
  # Corresponds to the JSON property `dataSchema`
836
860
  # @return [String]
837
861
  attr_accessor :data_schema
@@ -853,10 +877,10 @@ module Google
853
877
  # day and time zone are either specified elsewhere or are insignificant. The
854
878
  # date is relative to the Gregorian Calendar. This can represent one of the
855
879
  # following: * A full date, with non-zero year, month, and day values * A month
856
- # and day value, with a zero year, such as an anniversary * A year on its own,
857
- # with zero month and day values * A year and month value, with a zero day, such
858
- # as a credit card expiration date Related types are google.type.TimeOfDay and `
859
- # google.protobuf.Timestamp`.
880
+ # and day, with a zero year (e.g., an anniversary) * A year on its own, with a
881
+ # zero month and a zero day * A year and month, with a zero day (e.g., a credit
882
+ # card expiration date) Related types: * google.type.TimeOfDay * google.type.
883
+ # DateTime * google.protobuf.Timestamp
860
884
  # Corresponds to the JSON property `partitionDate`
861
885
  # @return [Google::Apis::RetailV2alpha::GoogleTypeDate]
862
886
  attr_accessor :partition_date
@@ -1108,14 +1132,163 @@ module Google
1108
1132
  end
1109
1133
  end
1110
1134
 
1135
+ # Metadata that is used to define a condition that triggers an action. A valid
1136
+ # condition must specify at least one of 'query_terms' or 'products_filter'. If
1137
+ # multiple fields are specified, the condition is met if all the fields are
1138
+ # satisfied e.g. if a set of query terms and product_filter are set, then only
1139
+ # items matching the product_filter for requests with a query matching the query
1140
+ # terms wil get boosted.
1141
+ class GoogleCloudRetailV2alphaCondition
1142
+ include Google::Apis::Core::Hashable
1143
+
1144
+ # Range of time(s) specifying when Condition is active. Condition true if any
1145
+ # time range matches.
1146
+ # Corresponds to the JSON property `activeTimeRange`
1147
+ # @return [Array<Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaConditionTimeRange>]
1148
+ attr_accessor :active_time_range
1149
+
1150
+ # A list (up to 10 entries) of terms to match the query on. If not specified,
1151
+ # match all queries. If many query terms are specified, the condition is matched
1152
+ # if any of the terms is a match (i.e. using the OR operator).
1153
+ # Corresponds to the JSON property `queryTerms`
1154
+ # @return [Array<Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaConditionQueryTerm>]
1155
+ attr_accessor :query_terms
1156
+
1157
+ def initialize(**args)
1158
+ update!(**args)
1159
+ end
1160
+
1161
+ # Update properties of this object
1162
+ def update!(**args)
1163
+ @active_time_range = args[:active_time_range] if args.key?(:active_time_range)
1164
+ @query_terms = args[:query_terms] if args.key?(:query_terms)
1165
+ end
1166
+ end
1167
+
1168
+ # Query terms that we want to match on.
1169
+ class GoogleCloudRetailV2alphaConditionQueryTerm
1170
+ include Google::Apis::Core::Hashable
1171
+
1172
+ # Whether this is supposed to be a full or partial match.
1173
+ # Corresponds to the JSON property `fullMatch`
1174
+ # @return [Boolean]
1175
+ attr_accessor :full_match
1176
+ alias_method :full_match?, :full_match
1177
+
1178
+ # The value of the term to match on. Value cannot be empty. Value can have at
1179
+ # most 3 terms if specified as a partial match. Each space separated string is
1180
+ # considered as one term. Example) "a b c" is 3 terms and allowed, " a b c d" is
1181
+ # 4 terms and not allowed for partial match.
1182
+ # Corresponds to the JSON property `value`
1183
+ # @return [String]
1184
+ attr_accessor :value
1185
+
1186
+ def initialize(**args)
1187
+ update!(**args)
1188
+ end
1189
+
1190
+ # Update properties of this object
1191
+ def update!(**args)
1192
+ @full_match = args[:full_match] if args.key?(:full_match)
1193
+ @value = args[:value] if args.key?(:value)
1194
+ end
1195
+ end
1196
+
1197
+ # Used for time-dependent conditions. Example: Want to have rule applied for
1198
+ # week long sale.
1199
+ class GoogleCloudRetailV2alphaConditionTimeRange
1200
+ include Google::Apis::Core::Hashable
1201
+
1202
+ # End of time range. Range is inclusive.
1203
+ # Corresponds to the JSON property `endTime`
1204
+ # @return [String]
1205
+ attr_accessor :end_time
1206
+
1207
+ # Start of time range. Range is inclusive.
1208
+ # Corresponds to the JSON property `startTime`
1209
+ # @return [String]
1210
+ attr_accessor :start_time
1211
+
1212
+ def initialize(**args)
1213
+ update!(**args)
1214
+ end
1215
+
1216
+ # Update properties of this object
1217
+ def update!(**args)
1218
+ @end_time = args[:end_time] if args.key?(:end_time)
1219
+ @start_time = args[:start_time] if args.key?(:start_time)
1220
+ end
1221
+ end
1222
+
1223
+ # Configures dynamic serving time metadata that is used to pre and post process
1224
+ # search/recommendation model results.
1225
+ class GoogleCloudRetailV2alphaControl
1226
+ include Google::Apis::Core::Hashable
1227
+
1228
+ # Output only. List of serving configuration ids that that are associated with
1229
+ # this control. Note the association is managed via the ServingConfig, this is
1230
+ # an output only denormalizeed view. Assumed to be in the same catalog.
1231
+ # Corresponds to the JSON property `associatedServingConfigIds`
1232
+ # @return [Array<String>]
1233
+ attr_accessor :associated_serving_config_ids
1234
+
1235
+ # Required. The human readable control display name. Used in Retail UI. This
1236
+ # field must be a UTF-8 encoded string with a length limit of 128 characters.
1237
+ # Otherwise, an INVALID_ARGUMENT error is thrown.
1238
+ # Corresponds to the JSON property `displayName`
1239
+ # @return [String]
1240
+ attr_accessor :display_name
1241
+
1242
+ # A facet specification to perform faceted search.
1243
+ # Corresponds to the JSON property `facetSpec`
1244
+ # @return [Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaSearchRequestFacetSpec]
1245
+ attr_accessor :facet_spec
1246
+
1247
+ # Immutable. Fully qualified name projects/*/locations/global/catalogs/*/
1248
+ # controls/*
1249
+ # Corresponds to the JSON property `name`
1250
+ # @return [String]
1251
+ attr_accessor :name
1252
+
1253
+ # A rule is a condition-action pair * A condition defines when a rule is to be
1254
+ # triggered. * An action specifies what occurs on that trigger. Currently only
1255
+ # boost rules are supported. Currently only supported by the search endpoint.
1256
+ # Corresponds to the JSON property `rule`
1257
+ # @return [Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaRule]
1258
+ attr_accessor :rule
1259
+
1260
+ # Required. Immutable. The solution types that the serving config is used for.
1261
+ # Currently we support setting only one type of solution at creation time. Only `
1262
+ # SOLUTION_TYPE_SEARCH` value is supported at the moment.
1263
+ # Corresponds to the JSON property `solutionTypes`
1264
+ # @return [Array<String>]
1265
+ attr_accessor :solution_types
1266
+
1267
+ def initialize(**args)
1268
+ update!(**args)
1269
+ end
1270
+
1271
+ # Update properties of this object
1272
+ def update!(**args)
1273
+ @associated_serving_config_ids = args[:associated_serving_config_ids] if args.key?(:associated_serving_config_ids)
1274
+ @display_name = args[:display_name] if args.key?(:display_name)
1275
+ @facet_spec = args[:facet_spec] if args.key?(:facet_spec)
1276
+ @name = args[:name] if args.key?(:name)
1277
+ @rule = args[:rule] if args.key?(:rule)
1278
+ @solution_types = args[:solution_types] if args.key?(:solution_types)
1279
+ end
1280
+ end
1281
+
1111
1282
  # A custom attribute that is not explicitly modeled in Product.
1112
1283
  class GoogleCloudRetailV2alphaCustomAttribute
1113
1284
  include Google::Apis::Core::Hashable
1114
1285
 
1115
- # If true, custom attribute values are indexed, so that it can be filtered,
1116
- # faceted or boosted in SearchService.Search. This field is ignored in a
1117
- # UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and
1118
- # SearchRequest.boost_spec for more details.
1286
+ # This field will only be used when AttributesConfig.attribute_config_level of
1287
+ # the Catalog is 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute
1288
+ # values are indexed, so that it can be filtered, faceted or boosted in
1289
+ # SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.
1290
+ # filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more
1291
+ # details.
1119
1292
  # Corresponds to the JSON property `indexable`
1120
1293
  # @return [Boolean]
1121
1294
  attr_accessor :indexable
@@ -1128,9 +1301,11 @@ module Google
1128
1301
  # @return [Array<Float>]
1129
1302
  attr_accessor :numbers
1130
1303
 
1131
- # If true, custom attribute values are searchable by text queries in
1132
- # SearchService.Search. This field is ignored in a UserEvent. Only set if type
1133
- # text is set. Otherwise, a INVALID_ARGUMENT error is returned.
1304
+ # This field will only be used when AttributesConfig.attribute_config_level of
1305
+ # the Catalog is 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute
1306
+ # values are searchable by text queries in SearchService.Search. This field is
1307
+ # ignored in a UserEvent. Only set if type text is set. Otherwise, a
1308
+ # INVALID_ARGUMENT error is returned.
1134
1309
  # Corresponds to the JSON property `searchable`
1135
1310
  # @return [Boolean]
1136
1311
  attr_accessor :searchable
@@ -1306,7 +1481,8 @@ module Google
1306
1481
  # imports: * `user_event` (default): One JSON UserEvent per line. * `
1307
1482
  # user_event_ga360`: Using https://support.google.com/analytics/answer/3437719.
1308
1483
  # Supported values for control imports: * 'control' (default): One JSON Control
1309
- # per line.
1484
+ # per line. Supported values for catalog attribute imports: * 'catalog_attribute'
1485
+ # (default): One CSV CatalogAttribute per line.
1310
1486
  # Corresponds to the JSON property `dataSchema`
1311
1487
  # @return [String]
1312
1488
  attr_accessor :data_schema
@@ -1735,6 +1911,31 @@ module Google
1735
1911
  end
1736
1912
  end
1737
1913
 
1914
+ # Response for ListControls method.
1915
+ class GoogleCloudRetailV2alphaListControlsResponse
1916
+ include Google::Apis::Core::Hashable
1917
+
1918
+ # All the Controls for a given catalog.
1919
+ # Corresponds to the JSON property `controls`
1920
+ # @return [Array<Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaControl>]
1921
+ attr_accessor :controls
1922
+
1923
+ # Pagination token, if not returned indicates the last page.
1924
+ # Corresponds to the JSON property `nextPageToken`
1925
+ # @return [String]
1926
+ attr_accessor :next_page_token
1927
+
1928
+ def initialize(**args)
1929
+ update!(**args)
1930
+ end
1931
+
1932
+ # Update properties of this object
1933
+ def update!(**args)
1934
+ @controls = args[:controls] if args.key?(:controls)
1935
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1936
+ end
1937
+ end
1938
+
1738
1939
  # Response message for ProductService.ListProducts method.
1739
1940
  class GoogleCloudRetailV2alphaListProductsResponse
1740
1941
  include Google::Apis::Core::Hashable
@@ -1770,6 +1971,31 @@ module Google
1770
1971
  end
1771
1972
  end
1772
1973
 
1974
+ # Response for ListServingConfigs method.
1975
+ class GoogleCloudRetailV2alphaListServingConfigsResponse
1976
+ include Google::Apis::Core::Hashable
1977
+
1978
+ # Pagination token, if not returned indicates the last page.
1979
+ # Corresponds to the JSON property `nextPageToken`
1980
+ # @return [String]
1981
+ attr_accessor :next_page_token
1982
+
1983
+ # All the ServingConfigs for a given catalog.
1984
+ # Corresponds to the JSON property `servingConfigs`
1985
+ # @return [Array<Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaServingConfig>]
1986
+ attr_accessor :serving_configs
1987
+
1988
+ def initialize(**args)
1989
+ update!(**args)
1990
+ end
1991
+
1992
+ # Update properties of this object
1993
+ def update!(**args)
1994
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1995
+ @serving_configs = args[:serving_configs] if args.key?(:serving_configs)
1996
+ end
1997
+ end
1998
+
1773
1999
  # The inventory information at a place (e.g. a store) identified by a place ID.
1774
2000
  class GoogleCloudRetailV2alphaLocalInventory
1775
2001
  include Google::Apis::Core::Hashable
@@ -1835,9 +2061,9 @@ module Google
1835
2061
  attr_accessor :destinations
1836
2062
 
1837
2063
  # Language of the title/description and other string attributes. Use language
1838
- # tags defined by BCP 47. ISO 639-1. This specifies the language of offers in
1839
- # Merchant Center that will be accepted. If empty no language filtering will be
1840
- # performed.
2064
+ # tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). ISO
2065
+ # 639-1. This specifies the language of offers in Merchant Center that will be
2066
+ # accepted. If empty no language filtering will be performed.
1841
2067
  # Corresponds to the JSON property `languageCode`
1842
2068
  # @return [String]
1843
2069
  attr_accessor :language_code
@@ -1850,9 +2076,9 @@ module Google
1850
2076
  attr_accessor :merchant_center_account_id
1851
2077
 
1852
2078
  # Region code of offers to accept. 2-letter Uppercase ISO 3166-1 alpha-2 code.
1853
- # List of values can be found here under the `region` tag. [https://www.iana.org/
1854
- # assignments/language-subtag-registry/language-subtag-registry]. If left blank
1855
- # no region filtering will be performed. Ex. `US`.
2079
+ # List of values can be found [here](https://www.iana.org/assignments/language-
2080
+ # subtag-registry/language-subtag-registry) under the `region` tag. If left
2081
+ # blank no region filtering will be performed. Example value: `US`.
1856
2082
  # Corresponds to the JSON property `regionCode`
1857
2083
  # @return [String]
1858
2084
  attr_accessor :region_code
@@ -2239,7 +2465,9 @@ module Google
2239
2465
  # @return [Array<String>]
2240
2466
  attr_accessor :categories
2241
2467
 
2242
- # The id of the collection members when type is Type.COLLECTION. Should not set
2468
+ # The id of the collection members when type is Type.COLLECTION. Non-existent
2469
+ # product ids are allowed. The type of the members must be either Type.PRIMARY
2470
+ # or Type.VARIANT otherwise and INVALID_ARGUMENT error is thrown. Should not set
2243
2471
  # it for other types. A maximum of 1000 values are allowed. Otherwise, an
2244
2472
  # INVALID_ARGUMENT error is return.
2245
2473
  # Corresponds to the JSON property `collectionMemberIds`
@@ -2335,7 +2563,7 @@ module Google
2335
2563
 
2336
2564
  # The material of the product. For example, "leather", "wooden". A maximum of 20
2337
2565
  # values are allowed. Each value must be a UTF-8 encoded string with a length
2338
- # limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
2566
+ # limit of 200 characters. Otherwise, an INVALID_ARGUMENT error is returned.
2339
2567
  # Corresponding properties: Google Merchant Center property [material](https://
2340
2568
  # support.google.com/merchants/answer/6324410). Schema.org property [Product.
2341
2569
  # material](https://schema.org/material).
@@ -2378,7 +2606,8 @@ module Google
2378
2606
  attr_accessor :primary_product_id
2379
2607
 
2380
2608
  # The promotions applied to the product. A maximum of 10 values are allowed per
2381
- # Product.
2609
+ # Product. Only Promotion.promotion_id will be used, other fields will be
2610
+ # ignored if set.
2382
2611
  # Corresponds to the JSON property `promotions`
2383
2612
  # @return [Array<Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaPromotion>]
2384
2613
  attr_accessor :promotions
@@ -2657,7 +2886,7 @@ module Google
2657
2886
  class GoogleCloudRetailV2alphaPromotion
2658
2887
  include Google::Apis::Core::Hashable
2659
2888
 
2660
- # ID of the promotion. For example, "free gift". The value value must be a UTF-8
2889
+ # ID of the promotion. For example, "free gift". The value must be a UTF-8
2661
2890
  # encoded string with a length limit of 128 characters, and match the pattern: `
2662
2891
  # a-zA-Z*`. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an
2663
2892
  # INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion]
@@ -2888,6 +3117,26 @@ module Google
2888
3117
  end
2889
3118
  end
2890
3119
 
3120
+ # Request for RemoveControl method.
3121
+ class GoogleCloudRetailV2alphaRemoveControlRequest
3122
+ include Google::Apis::Core::Hashable
3123
+
3124
+ # Required. The id of the control to apply. Assumed to be in the same catalog as
3125
+ # the serving config.
3126
+ # Corresponds to the JSON property `controlId`
3127
+ # @return [String]
3128
+ attr_accessor :control_id
3129
+
3130
+ def initialize(**args)
3131
+ update!(**args)
3132
+ end
3133
+
3134
+ # Update properties of this object
3135
+ def update!(**args)
3136
+ @control_id = args[:control_id] if args.key?(:control_id)
3137
+ end
3138
+ end
3139
+
2891
3140
  # Metadata related to the progress of the RemoveFulfillmentPlaces operation.
2892
3141
  # Currently empty because there is no meaningful metadata populated from the
2893
3142
  # RemoveFulfillmentPlaces method.
@@ -3038,6 +3287,333 @@ module Google
3038
3287
  end
3039
3288
  end
3040
3289
 
3290
+ # A rule is a condition-action pair * A condition defines when a rule is to be
3291
+ # triggered. * An action specifies what occurs on that trigger. Currently only
3292
+ # boost rules are supported. Currently only supported by the search endpoint.
3293
+ class GoogleCloudRetailV2alphaRule
3294
+ include Google::Apis::Core::Hashable
3295
+
3296
+ # A boost action to apply to results matching condition specified above.
3297
+ # Corresponds to the JSON property `boostAction`
3298
+ # @return [Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaRuleBoostAction]
3299
+ attr_accessor :boost_action
3300
+
3301
+ # Metadata that is used to define a condition that triggers an action. A valid
3302
+ # condition must specify at least one of 'query_terms' or 'products_filter'. If
3303
+ # multiple fields are specified, the condition is met if all the fields are
3304
+ # satisfied e.g. if a set of query terms and product_filter are set, then only
3305
+ # items matching the product_filter for requests with a query matching the query
3306
+ # terms wil get boosted.
3307
+ # Corresponds to the JSON property `condition`
3308
+ # @return [Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaCondition]
3309
+ attr_accessor :condition
3310
+
3311
+ # Prevents `query_term` from being associated with specified terms during search.
3312
+ # Example: Don't associate "gShoe" and "cheap".
3313
+ # Corresponds to the JSON property `doNotAssociateAction`
3314
+ # @return [Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaRuleDoNotAssociateAction]
3315
+ attr_accessor :do_not_associate_action
3316
+
3317
+ # * Rule Condition: - No Condition provided is a global match. - 1 or more
3318
+ # Condition provided is combined with OR operator. * Action Input: The request
3319
+ # query and filter that will be applied to the retrieved products, in addition
3320
+ # to any filters already provided with the SearchRequest. The AND operator is
3321
+ # used to combine the query's existing filters with the filter rule(s). NOTE:
3322
+ # May result in 0 results when filters conflict. * Action Result: Filters the
3323
+ # returned objects to be ONLY those that passed the filter.
3324
+ # Corresponds to the JSON property `filterAction`
3325
+ # @return [Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaRuleFilterAction]
3326
+ attr_accessor :filter_action
3327
+
3328
+ # Prevents a term in the query from being used in search. Example: Don't search
3329
+ # for "shoddy".
3330
+ # Corresponds to the JSON property `ignoreAction`
3331
+ # @return [Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaRuleIgnoreAction]
3332
+ attr_accessor :ignore_action
3333
+
3334
+ # Maps a set of terms to a set of synonyms. Set of synonyms will be treated as
3335
+ # synonyms of each query term only. `query_terms` will not be treated as
3336
+ # synonyms of each other. Example: "sneakers" will use a synonym of "shoes". "
3337
+ # shoes" will not use a synonym of "sneakers".
3338
+ # Corresponds to the JSON property `onewaySynonymsAction`
3339
+ # @return [Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaRuleOnewaySynonymsAction]
3340
+ attr_accessor :oneway_synonyms_action
3341
+
3342
+ # Redirects a shopper to a specific page. * Rule Condition: - Must specify
3343
+ # Condition. * Action Input: Request Query * Action Result: Redirects shopper to
3344
+ # provided uri.
3345
+ # Corresponds to the JSON property `redirectAction`
3346
+ # @return [Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaRuleRedirectAction]
3347
+ attr_accessor :redirect_action
3348
+
3349
+ # Replaces a term in the query. Multiple replacement candidates can be specified.
3350
+ # All `query_terms` will be replaced with the replacement term. Example:
3351
+ # Replace "gShoe" with "google shoe".
3352
+ # Corresponds to the JSON property `replacementAction`
3353
+ # @return [Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaRuleReplacementAction]
3354
+ attr_accessor :replacement_action
3355
+
3356
+ # Creates a set of terms that will be treated as synonyms of each other. Example:
3357
+ # synonyms of "sneakers" and "shoes". * "sneakers" will use a synonym of "shoes"
3358
+ # . * "shoes" will use a synonym of "sneakers".
3359
+ # Corresponds to the JSON property `twowaySynonymsAction`
3360
+ # @return [Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaRuleTwowaySynonymsAction]
3361
+ attr_accessor :twoway_synonyms_action
3362
+
3363
+ def initialize(**args)
3364
+ update!(**args)
3365
+ end
3366
+
3367
+ # Update properties of this object
3368
+ def update!(**args)
3369
+ @boost_action = args[:boost_action] if args.key?(:boost_action)
3370
+ @condition = args[:condition] if args.key?(:condition)
3371
+ @do_not_associate_action = args[:do_not_associate_action] if args.key?(:do_not_associate_action)
3372
+ @filter_action = args[:filter_action] if args.key?(:filter_action)
3373
+ @ignore_action = args[:ignore_action] if args.key?(:ignore_action)
3374
+ @oneway_synonyms_action = args[:oneway_synonyms_action] if args.key?(:oneway_synonyms_action)
3375
+ @redirect_action = args[:redirect_action] if args.key?(:redirect_action)
3376
+ @replacement_action = args[:replacement_action] if args.key?(:replacement_action)
3377
+ @twoway_synonyms_action = args[:twoway_synonyms_action] if args.key?(:twoway_synonyms_action)
3378
+ end
3379
+ end
3380
+
3381
+ # A boost action to apply to results matching condition specified above.
3382
+ class GoogleCloudRetailV2alphaRuleBoostAction
3383
+ include Google::Apis::Core::Hashable
3384
+
3385
+ # Strength of the condition boost, which must be in [-1, 1]. Negative boost
3386
+ # means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion.
3387
+ # However, it does not necessarily mean that the boosted item will be the top
3388
+ # result at all times, nor that other items will be excluded. Results could
3389
+ # still be shown even when none of them matches the condition. And results that
3390
+ # are significantly more relevant to the search query can still trump your
3391
+ # heavily favored but irrelevant items. Setting to -1.0 gives the item a big
3392
+ # demotion. However, results that are deeply relevant might still be shown. The
3393
+ # item will have an upstream battle to get a fairly high ranking, but it is not
3394
+ # blocked out completely. Setting to 0.0 means no boost applied. The boosting
3395
+ # condition is ignored.
3396
+ # Corresponds to the JSON property `boost`
3397
+ # @return [Float]
3398
+ attr_accessor :boost
3399
+
3400
+ # The filter can have a max size of 5000 characters. An expression which
3401
+ # specifies which products to apply an action to. The syntax and supported
3402
+ # fields are the same as a filter expression. See SearchRequest.filter for
3403
+ # detail syntax and limitations. Examples: * To boost products with product ID "
3404
+ # product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "
3405
+ # product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
3406
+ # Corresponds to the JSON property `productsFilter`
3407
+ # @return [String]
3408
+ attr_accessor :products_filter
3409
+
3410
+ def initialize(**args)
3411
+ update!(**args)
3412
+ end
3413
+
3414
+ # Update properties of this object
3415
+ def update!(**args)
3416
+ @boost = args[:boost] if args.key?(:boost)
3417
+ @products_filter = args[:products_filter] if args.key?(:products_filter)
3418
+ end
3419
+ end
3420
+
3421
+ # Prevents `query_term` from being associated with specified terms during search.
3422
+ # Example: Don't associate "gShoe" and "cheap".
3423
+ class GoogleCloudRetailV2alphaRuleDoNotAssociateAction
3424
+ include Google::Apis::Core::Hashable
3425
+
3426
+ # Cannot contain duplicates or the query term. Can specify up to 100 terms.
3427
+ # Corresponds to the JSON property `doNotAssociateTerms`
3428
+ # @return [Array<String>]
3429
+ attr_accessor :do_not_associate_terms
3430
+
3431
+ # Terms from the search query. Will not consider do_not_associate_terms for
3432
+ # search if in search query. Can specify up to 100 terms.
3433
+ # Corresponds to the JSON property `queryTerms`
3434
+ # @return [Array<String>]
3435
+ attr_accessor :query_terms
3436
+
3437
+ # Will be [deprecated = true] post migration;
3438
+ # Corresponds to the JSON property `terms`
3439
+ # @return [Array<String>]
3440
+ attr_accessor :terms
3441
+
3442
+ def initialize(**args)
3443
+ update!(**args)
3444
+ end
3445
+
3446
+ # Update properties of this object
3447
+ def update!(**args)
3448
+ @do_not_associate_terms = args[:do_not_associate_terms] if args.key?(:do_not_associate_terms)
3449
+ @query_terms = args[:query_terms] if args.key?(:query_terms)
3450
+ @terms = args[:terms] if args.key?(:terms)
3451
+ end
3452
+ end
3453
+
3454
+ # * Rule Condition: - No Condition provided is a global match. - 1 or more
3455
+ # Condition provided is combined with OR operator. * Action Input: The request
3456
+ # query and filter that will be applied to the retrieved products, in addition
3457
+ # to any filters already provided with the SearchRequest. The AND operator is
3458
+ # used to combine the query's existing filters with the filter rule(s). NOTE:
3459
+ # May result in 0 results when filters conflict. * Action Result: Filters the
3460
+ # returned objects to be ONLY those that passed the filter.
3461
+ class GoogleCloudRetailV2alphaRuleFilterAction
3462
+ include Google::Apis::Core::Hashable
3463
+
3464
+ # A filter to apply on the matching condition results. Supported features: *
3465
+ # filter must be set. * Filter syntax is identical to SearchRequest.filter. See
3466
+ # more details at the Retail Search [user guide](/retail/search/docs/filter-and-
3467
+ # order#filter). * To filter products with product ID "product_1" or "product_2",
3468
+ # and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(
3469
+ # colorFamilies: ANY("Red", "Blue")) *
3470
+ # Corresponds to the JSON property `filter`
3471
+ # @return [String]
3472
+ attr_accessor :filter
3473
+
3474
+ def initialize(**args)
3475
+ update!(**args)
3476
+ end
3477
+
3478
+ # Update properties of this object
3479
+ def update!(**args)
3480
+ @filter = args[:filter] if args.key?(:filter)
3481
+ end
3482
+ end
3483
+
3484
+ # Prevents a term in the query from being used in search. Example: Don't search
3485
+ # for "shoddy".
3486
+ class GoogleCloudRetailV2alphaRuleIgnoreAction
3487
+ include Google::Apis::Core::Hashable
3488
+
3489
+ # Terms to ignore in the search query.
3490
+ # Corresponds to the JSON property `ignoreTerms`
3491
+ # @return [Array<String>]
3492
+ attr_accessor :ignore_terms
3493
+
3494
+ def initialize(**args)
3495
+ update!(**args)
3496
+ end
3497
+
3498
+ # Update properties of this object
3499
+ def update!(**args)
3500
+ @ignore_terms = args[:ignore_terms] if args.key?(:ignore_terms)
3501
+ end
3502
+ end
3503
+
3504
+ # Maps a set of terms to a set of synonyms. Set of synonyms will be treated as
3505
+ # synonyms of each query term only. `query_terms` will not be treated as
3506
+ # synonyms of each other. Example: "sneakers" will use a synonym of "shoes". "
3507
+ # shoes" will not use a synonym of "sneakers".
3508
+ class GoogleCloudRetailV2alphaRuleOnewaySynonymsAction
3509
+ include Google::Apis::Core::Hashable
3510
+
3511
+ # Will be [deprecated = true] post migration;
3512
+ # Corresponds to the JSON property `onewayTerms`
3513
+ # @return [Array<String>]
3514
+ attr_accessor :oneway_terms
3515
+
3516
+ # Terms from the search query. Will treat synonyms as their synonyms. Not
3517
+ # themselves synonyms of the synonyms. Can specify up to 100 terms.
3518
+ # Corresponds to the JSON property `queryTerms`
3519
+ # @return [Array<String>]
3520
+ attr_accessor :query_terms
3521
+
3522
+ # Defines a set of synonyms. Cannot contain duplicates. Can specify up to 100
3523
+ # synonyms.
3524
+ # Corresponds to the JSON property `synonyms`
3525
+ # @return [Array<String>]
3526
+ attr_accessor :synonyms
3527
+
3528
+ def initialize(**args)
3529
+ update!(**args)
3530
+ end
3531
+
3532
+ # Update properties of this object
3533
+ def update!(**args)
3534
+ @oneway_terms = args[:oneway_terms] if args.key?(:oneway_terms)
3535
+ @query_terms = args[:query_terms] if args.key?(:query_terms)
3536
+ @synonyms = args[:synonyms] if args.key?(:synonyms)
3537
+ end
3538
+ end
3539
+
3540
+ # Redirects a shopper to a specific page. * Rule Condition: - Must specify
3541
+ # Condition. * Action Input: Request Query * Action Result: Redirects shopper to
3542
+ # provided uri.
3543
+ class GoogleCloudRetailV2alphaRuleRedirectAction
3544
+ include Google::Apis::Core::Hashable
3545
+
3546
+ # URL must have length equal or less than 2000 characters.
3547
+ # Corresponds to the JSON property `redirectUri`
3548
+ # @return [String]
3549
+ attr_accessor :redirect_uri
3550
+
3551
+ def initialize(**args)
3552
+ update!(**args)
3553
+ end
3554
+
3555
+ # Update properties of this object
3556
+ def update!(**args)
3557
+ @redirect_uri = args[:redirect_uri] if args.key?(:redirect_uri)
3558
+ end
3559
+ end
3560
+
3561
+ # Replaces a term in the query. Multiple replacement candidates can be specified.
3562
+ # All `query_terms` will be replaced with the replacement term. Example:
3563
+ # Replace "gShoe" with "google shoe".
3564
+ class GoogleCloudRetailV2alphaRuleReplacementAction
3565
+ include Google::Apis::Core::Hashable
3566
+
3567
+ # Terms from the search query. Will be replaced by replacement term. Can specify
3568
+ # up to 100 terms.
3569
+ # Corresponds to the JSON property `queryTerms`
3570
+ # @return [Array<String>]
3571
+ attr_accessor :query_terms
3572
+
3573
+ # Term that will be used for replacement.
3574
+ # Corresponds to the JSON property `replacementTerm`
3575
+ # @return [String]
3576
+ attr_accessor :replacement_term
3577
+
3578
+ # Will be [deprecated = true] post migration;
3579
+ # Corresponds to the JSON property `term`
3580
+ # @return [String]
3581
+ attr_accessor :term
3582
+
3583
+ def initialize(**args)
3584
+ update!(**args)
3585
+ end
3586
+
3587
+ # Update properties of this object
3588
+ def update!(**args)
3589
+ @query_terms = args[:query_terms] if args.key?(:query_terms)
3590
+ @replacement_term = args[:replacement_term] if args.key?(:replacement_term)
3591
+ @term = args[:term] if args.key?(:term)
3592
+ end
3593
+ end
3594
+
3595
+ # Creates a set of terms that will be treated as synonyms of each other. Example:
3596
+ # synonyms of "sneakers" and "shoes". * "sneakers" will use a synonym of "shoes"
3597
+ # . * "shoes" will use a synonym of "sneakers".
3598
+ class GoogleCloudRetailV2alphaRuleTwowaySynonymsAction
3599
+ include Google::Apis::Core::Hashable
3600
+
3601
+ # Defines a set of synonyms. Can specify up to 100 synonyms. Must specify at
3602
+ # least 2 synonyms.
3603
+ # Corresponds to the JSON property `synonyms`
3604
+ # @return [Array<String>]
3605
+ attr_accessor :synonyms
3606
+
3607
+ def initialize(**args)
3608
+ update!(**args)
3609
+ end
3610
+
3611
+ # Update properties of this object
3612
+ def update!(**args)
3613
+ @synonyms = args[:synonyms] if args.key?(:synonyms)
3614
+ end
3615
+ end
3616
+
3041
3617
  # Request message for SearchService.Search method.
3042
3618
  class GoogleCloudRetailV2alphaSearchRequest
3043
3619
  include Google::Apis::Core::Hashable
@@ -3129,6 +3705,11 @@ module Google
3129
3705
  # @return [String]
3130
3706
  attr_accessor :page_token
3131
3707
 
3708
+ # The specification for personalization.
3709
+ # Corresponds to the JSON property `personalizationSpec`
3710
+ # @return [Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaSearchRequestPersonalizationSpec]
3711
+ attr_accessor :personalization_spec
3712
+
3132
3713
  # Raw search query.
3133
3714
  # Corresponds to the JSON property `query`
3134
3715
  # @return [String]
@@ -3215,6 +3796,7 @@ module Google
3215
3796
  @page_categories = args[:page_categories] if args.key?(:page_categories)
3216
3797
  @page_size = args[:page_size] if args.key?(:page_size)
3217
3798
  @page_token = args[:page_token] if args.key?(:page_token)
3799
+ @personalization_spec = args[:personalization_spec] if args.key?(:personalization_spec)
3218
3800
  @query = args[:query] if args.key?(:query)
3219
3801
  @query_expansion_spec = args[:query_expansion_spec] if args.key?(:query_expansion_spec)
3220
3802
  @relevance_threshold = args[:relevance_threshold] if args.key?(:relevance_threshold)
@@ -3236,6 +3818,14 @@ module Google
3236
3818
  # @return [Array<Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaSearchRequestBoostSpecConditionBoostSpec>]
3237
3819
  attr_accessor :condition_boost_specs
3238
3820
 
3821
+ # Whether to skip boostspec validation. If this field is set to true, invalid
3822
+ # BoostSpec.condition_boost_specs will be ignored and valid BoostSpec.
3823
+ # condition_boost_specs will still be applied.
3824
+ # Corresponds to the JSON property `skipBoostSpecValidation`
3825
+ # @return [Boolean]
3826
+ attr_accessor :skip_boost_spec_validation
3827
+ alias_method :skip_boost_spec_validation?, :skip_boost_spec_validation
3828
+
3239
3829
  def initialize(**args)
3240
3830
  update!(**args)
3241
3831
  end
@@ -3243,6 +3833,7 @@ module Google
3243
3833
  # Update properties of this object
3244
3834
  def update!(**args)
3245
3835
  @condition_boost_specs = args[:condition_boost_specs] if args.key?(:condition_boost_specs)
3836
+ @skip_boost_spec_validation = args[:skip_boost_spec_validation] if args.key?(:skip_boost_spec_validation)
3246
3837
  end
3247
3838
  end
3248
3839
 
@@ -3465,6 +4056,25 @@ module Google
3465
4056
  end
3466
4057
  end
3467
4058
 
4059
+ # The specification for personalization.
4060
+ class GoogleCloudRetailV2alphaSearchRequestPersonalizationSpec
4061
+ include Google::Apis::Core::Hashable
4062
+
4063
+ # Defaults to Mode.AUTO.
4064
+ # Corresponds to the JSON property `mode`
4065
+ # @return [String]
4066
+ attr_accessor :mode
4067
+
4068
+ def initialize(**args)
4069
+ update!(**args)
4070
+ end
4071
+
4072
+ # Update properties of this object
4073
+ def update!(**args)
4074
+ @mode = args[:mode] if args.key?(:mode)
4075
+ end
4076
+ end
4077
+
3468
4078
  # Specification to determine under which conditions query expansion should occur.
3469
4079
  class GoogleCloudRetailV2alphaSearchRequestQueryExpansionSpec
3470
4080
  include Google::Apis::Core::Hashable
@@ -3521,6 +4131,12 @@ module Google
3521
4131
  # @return [Array<Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaSearchResponseFacet>]
3522
4132
  attr_accessor :facets
3523
4133
 
4134
+ # The invalid SearchRequest.BoostSpec.condition_boost_specs that are not applied
4135
+ # during serving.
4136
+ # Corresponds to the JSON property `invalidConditionBoostSpecs`
4137
+ # @return [Array<Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaSearchRequestBoostSpecConditionBoostSpec>]
4138
+ attr_accessor :invalid_condition_boost_specs
4139
+
3524
4140
  # A token that can be sent as SearchRequest.page_token to retrieve the next page.
3525
4141
  # If this field is omitted, there are no subsequent pages.
3526
4142
  # Corresponds to the JSON property `nextPageToken`
@@ -3562,6 +4178,7 @@ module Google
3562
4178
  @attribution_token = args[:attribution_token] if args.key?(:attribution_token)
3563
4179
  @corrected_query = args[:corrected_query] if args.key?(:corrected_query)
3564
4180
  @facets = args[:facets] if args.key?(:facets)
4181
+ @invalid_condition_boost_specs = args[:invalid_condition_boost_specs] if args.key?(:invalid_condition_boost_specs)
3565
4182
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3566
4183
  @query_expansion_info = args[:query_expansion_info] if args.key?(:query_expansion_info)
3567
4184
  @redirect_uri = args[:redirect_uri] if args.key?(:redirect_uri)
@@ -3721,6 +4338,183 @@ module Google
3721
4338
  end
3722
4339
  end
3723
4340
 
4341
+ # Configures metadata that is used to generate serving time results (e.g. search
4342
+ # results or recommendation predictions). The ServingConfig is passed in the
4343
+ # search and predict request and together with the Catalog.default_branch,
4344
+ # generates results.
4345
+ class GoogleCloudRetailV2alphaServingConfig
4346
+ include Google::Apis::Core::Hashable
4347
+
4348
+ # Condition boost specifications. If a product matches multiple conditions in
4349
+ # the specifications, boost scores from these specifications are all applied and
4350
+ # combined in a non-linear way. Maximum number of specifications is 10. Notice
4351
+ # that if both ServingConfig.boost_control_ids and [SearchRequest.boost_spec]
4352
+ # are set, the boost conditions from both places are evaluated. If a search
4353
+ # request matches multiple boost conditions, the final boost score is equal to
4354
+ # the sum of the boost scores from all matched boost conditions. Can only be set
4355
+ # if solution_types is SOLUTION_TYPE_SEARCH.
4356
+ # Corresponds to the JSON property `boostControlIds`
4357
+ # @return [Array<String>]
4358
+ attr_accessor :boost_control_ids
4359
+
4360
+ # Required. The human readable serving config display name. Used in Retail UI.
4361
+ # This field must be a UTF-8 encoded string with a length limit of 128
4362
+ # characters. Otherwise, an INVALID_ARGUMENT error is returned.
4363
+ # Corresponds to the JSON property `displayName`
4364
+ # @return [String]
4365
+ attr_accessor :display_name
4366
+
4367
+ # How much diversity to use in recommendation model results e.g. 'medium-
4368
+ # diversity' or 'high-diversity'. Currently supported values: * 'no-diversity' *
4369
+ # 'low-diversity' * 'medium-diversity' * 'high-diversity' * 'auto-diversity' If
4370
+ # not specified, we choose default based on recommendation model type. Default
4371
+ # value: 'no-diversity'. Can only be set if solution_types is
4372
+ # SOLUTION_TYPE_RECOMMENDATION.
4373
+ # Corresponds to the JSON property `diversityLevel`
4374
+ # @return [String]
4375
+ attr_accessor :diversity_level
4376
+
4377
+ # Condition do not associate specifications. If multiple do not associate
4378
+ # conditions match, all matching do not associate controls in the list will
4379
+ # execute. - Order does not matter. - Maximum number of specifications is 100.
4380
+ # Can only be set if solution_types is SOLUTION_TYPE_SEARCH.
4381
+ # Corresponds to the JSON property `doNotAssociateControlIds`
4382
+ # @return [Array<String>]
4383
+ attr_accessor :do_not_associate_control_ids
4384
+
4385
+ # The specifications of dynamically generated facets.
4386
+ # Corresponds to the JSON property `dynamicFacetSpec`
4387
+ # @return [Google::Apis::RetailV2alpha::GoogleCloudRetailV2alphaSearchRequestDynamicFacetSpec]
4388
+ attr_accessor :dynamic_facet_spec
4389
+
4390
+ # Whether to add additional category filters on the 'similar-items' model. If
4391
+ # not specified, we enable it by default. Allowed values are: * 'no-category-
4392
+ # match': No additional filtering of original results from the model and the
4393
+ # customer's filters. * 'relaxed-category-match': Only keep results with
4394
+ # categories that match at least one item categories in the PredictRequests's
4395
+ # context item. * If customer also sends filters in the PredictRequest, then the
4396
+ # results will satisfy both conditions (user given and category match). Can only
4397
+ # be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.
4398
+ # Corresponds to the JSON property `enableCategoryFilterLevel`
4399
+ # @return [String]
4400
+ attr_accessor :enable_category_filter_level
4401
+
4402
+ # Facet specifications for faceted search. If empty, no facets are returned. The
4403
+ # ids refer to the ids of Control resources with only the Facet control set.
4404
+ # These controls are assumed to be in the same Catalog as the ServingConfig. A
4405
+ # maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is
4406
+ # returned. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.
4407
+ # Corresponds to the JSON property `facetControlIds`
4408
+ # @return [Array<String>]
4409
+ attr_accessor :facet_control_ids
4410
+
4411
+ # Condition filter specifications. If a product matches multiple conditions in
4412
+ # the specifications, filters from these specifications are all applied and
4413
+ # combined via the AND operator. Maximum number of specifications is 100. Can
4414
+ # only be set if solution_types is SOLUTION_TYPE_SEARCH.
4415
+ # Corresponds to the JSON property `filterControlIds`
4416
+ # @return [Array<String>]
4417
+ attr_accessor :filter_control_ids
4418
+
4419
+ # Condition ignore specifications. If multiple ignore conditions match, all
4420
+ # matching ignore controls in the list will execute. - Order does not matter. -
4421
+ # Maximum number of specifications is 100. Can only be set if solution_types is
4422
+ # SOLUTION_TYPE_SEARCH.
4423
+ # Corresponds to the JSON property `ignoreControlIds`
4424
+ # @return [Array<String>]
4425
+ attr_accessor :ignore_control_ids
4426
+
4427
+ # The id of the model to use at serving time. Currently only
4428
+ # RecommendationModels are supported: https://cloud.google.com/retail/
4429
+ # recommendations-ai/docs/create-models Can be changed but only to a compatible
4430
+ # model (e.g. others-you-may-like CTR to others-you-may-like CVR). Required when
4431
+ # solution_types is SOLUTION_TYPE_RECOMMENDATION.
4432
+ # Corresponds to the JSON property `modelId`
4433
+ # @return [String]
4434
+ attr_accessor :model_id
4435
+
4436
+ # Immutable. Fully qualified name projects/*/locations/global/catalogs/*/
4437
+ # servingConfig/*
4438
+ # Corresponds to the JSON property `name`
4439
+ # @return [String]
4440
+ attr_accessor :name
4441
+
4442
+ # Condition oneway synonyms specifications. If multiple oneway synonyms
4443
+ # conditions match, all matching oneway synonyms controls in the list will
4444
+ # execute. Order of controls in the list will not matter. Maximum number of
4445
+ # specifications is 100. Can only be set if solution_types is
4446
+ # SOLUTION_TYPE_SEARCH.
4447
+ # Corresponds to the JSON property `onewaySynonymsControlIds`
4448
+ # @return [Array<String>]
4449
+ attr_accessor :oneway_synonyms_control_ids
4450
+
4451
+ # How much price ranking we want in serving results. Price reranking causes
4452
+ # product items with a similar recommendation probability to be ordered by price,
4453
+ # with the highest-priced items first. This setting could result in a decrease
4454
+ # in click-through and conversion rates. Allowed values are: * 'no-price-
4455
+ # reranking' * 'low-price-raranking' * 'medium-price-reranking' * 'high-price-
4456
+ # reranking' If not specified, we choose default based on model type. Default
4457
+ # value: 'no-price-reranking'. Can only be set if solution_types is
4458
+ # SOLUTION_TYPE_RECOMMENDATION.
4459
+ # Corresponds to the JSON property `priceRerankingLevel`
4460
+ # @return [String]
4461
+ attr_accessor :price_reranking_level
4462
+
4463
+ # Condition redirect specifications. Only the first triggered redirect action is
4464
+ # applied, even if multiple apply. Maximum number of specifications is 100. Can
4465
+ # only be set if solution_types is SOLUTION_TYPE_SEARCH.
4466
+ # Corresponds to the JSON property `redirectControlIds`
4467
+ # @return [Array<String>]
4468
+ attr_accessor :redirect_control_ids
4469
+
4470
+ # Condition replacement specifications. - Applied according to the order in the
4471
+ # list. - A previously replaced term can not be re-replaced. - Maximum number of
4472
+ # specifications is 100. Can only be set if solution_types is
4473
+ # SOLUTION_TYPE_SEARCH.
4474
+ # Corresponds to the JSON property `replacementControlIds`
4475
+ # @return [Array<String>]
4476
+ attr_accessor :replacement_control_ids
4477
+
4478
+ # Required. Immutable. Specifies the solution types that a serving config can be
4479
+ # associated with. Currently we support setting only one type of solution.
4480
+ # Corresponds to the JSON property `solutionTypes`
4481
+ # @return [Array<String>]
4482
+ attr_accessor :solution_types
4483
+
4484
+ # Condition synonyms specifications. If multiple syonyms conditions match, all
4485
+ # matching synonyms control in the list will execute. Order of controls in the
4486
+ # list will not matter. Maximum number of specifications is 100. Can only be set
4487
+ # if solution_types is SOLUTION_TYPE_SEARCH.
4488
+ # Corresponds to the JSON property `twowaySynonymsControlIds`
4489
+ # @return [Array<String>]
4490
+ attr_accessor :twoway_synonyms_control_ids
4491
+
4492
+ def initialize(**args)
4493
+ update!(**args)
4494
+ end
4495
+
4496
+ # Update properties of this object
4497
+ def update!(**args)
4498
+ @boost_control_ids = args[:boost_control_ids] if args.key?(:boost_control_ids)
4499
+ @display_name = args[:display_name] if args.key?(:display_name)
4500
+ @diversity_level = args[:diversity_level] if args.key?(:diversity_level)
4501
+ @do_not_associate_control_ids = args[:do_not_associate_control_ids] if args.key?(:do_not_associate_control_ids)
4502
+ @dynamic_facet_spec = args[:dynamic_facet_spec] if args.key?(:dynamic_facet_spec)
4503
+ @enable_category_filter_level = args[:enable_category_filter_level] if args.key?(:enable_category_filter_level)
4504
+ @facet_control_ids = args[:facet_control_ids] if args.key?(:facet_control_ids)
4505
+ @filter_control_ids = args[:filter_control_ids] if args.key?(:filter_control_ids)
4506
+ @ignore_control_ids = args[:ignore_control_ids] if args.key?(:ignore_control_ids)
4507
+ @model_id = args[:model_id] if args.key?(:model_id)
4508
+ @name = args[:name] if args.key?(:name)
4509
+ @oneway_synonyms_control_ids = args[:oneway_synonyms_control_ids] if args.key?(:oneway_synonyms_control_ids)
4510
+ @price_reranking_level = args[:price_reranking_level] if args.key?(:price_reranking_level)
4511
+ @redirect_control_ids = args[:redirect_control_ids] if args.key?(:redirect_control_ids)
4512
+ @replacement_control_ids = args[:replacement_control_ids] if args.key?(:replacement_control_ids)
4513
+ @solution_types = args[:solution_types] if args.key?(:solution_types)
4514
+ @twoway_synonyms_control_ids = args[:twoway_synonyms_control_ids] if args.key?(:twoway_synonyms_control_ids)
4515
+ end
4516
+ end
4517
+
3724
4518
  # Request message to set a specified branch as new default_branch.
3725
4519
  class GoogleCloudRetailV2alphaSetDefaultBranchRequest
3726
4520
  include Google::Apis::Core::Hashable
@@ -4765,10 +5559,10 @@ module Google
4765
5559
  # day and time zone are either specified elsewhere or are insignificant. The
4766
5560
  # date is relative to the Gregorian Calendar. This can represent one of the
4767
5561
  # following: * A full date, with non-zero year, month, and day values * A month
4768
- # and day value, with a zero year, such as an anniversary * A year on its own,
4769
- # with zero month and day values * A year and month value, with a zero day, such
4770
- # as a credit card expiration date Related types are google.type.TimeOfDay and `
4771
- # google.protobuf.Timestamp`.
5562
+ # and day, with a zero year (e.g., an anniversary) * A year on its own, with a
5563
+ # zero month and a zero day * A year and month, with a zero day (e.g., a credit
5564
+ # card expiration date) Related types: * google.type.TimeOfDay * google.type.
5565
+ # DateTime * google.protobuf.Timestamp
4772
5566
  class GoogleTypeDate
4773
5567
  include Google::Apis::Core::Hashable
4774
5568