google-apis-retail_v2beta 0.99.0 → 0.101.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2635,6 +2635,85 @@ module Google
2635
2635
  end
2636
2636
  end
2637
2637
 
2638
+ # Project level alert config.
2639
+ class GoogleCloudRetailV2betaAlertConfig
2640
+ include Google::Apis::Core::Hashable
2641
+
2642
+ # Alert policies for a customer. They must be unique by [AlertPolicy.alert_group]
2643
+ # Corresponds to the JSON property `alertPolicies`
2644
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaAlertConfigAlertPolicy>]
2645
+ attr_accessor :alert_policies
2646
+
2647
+ # Required. Immutable. The name of the AlertConfig singleton resource. Format:
2648
+ # projects/*/alertConfig
2649
+ # Corresponds to the JSON property `name`
2650
+ # @return [String]
2651
+ attr_accessor :name
2652
+
2653
+ def initialize(**args)
2654
+ update!(**args)
2655
+ end
2656
+
2657
+ # Update properties of this object
2658
+ def update!(**args)
2659
+ @alert_policies = args[:alert_policies] if args.key?(:alert_policies)
2660
+ @name = args[:name] if args.key?(:name)
2661
+ end
2662
+ end
2663
+
2664
+ # Alert policy for a customer.
2665
+ class GoogleCloudRetailV2betaAlertConfigAlertPolicy
2666
+ include Google::Apis::Core::Hashable
2667
+
2668
+ # The feature that provides alerting capability. Supported value: - `search-data-
2669
+ # quality` for retail search customers. - `conv-data-quality` for retail
2670
+ # conversation customers.
2671
+ # Corresponds to the JSON property `alertGroup`
2672
+ # @return [String]
2673
+ attr_accessor :alert_group
2674
+
2675
+ # The enrollment status of a customer.
2676
+ # Corresponds to the JSON property `enrollStatus`
2677
+ # @return [String]
2678
+ attr_accessor :enroll_status
2679
+
2680
+ # Recipients for the alert policy. One alert policy should not exceed 20
2681
+ # recipients.
2682
+ # Corresponds to the JSON property `recipients`
2683
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaAlertConfigAlertPolicyRecipient>]
2684
+ attr_accessor :recipients
2685
+
2686
+ def initialize(**args)
2687
+ update!(**args)
2688
+ end
2689
+
2690
+ # Update properties of this object
2691
+ def update!(**args)
2692
+ @alert_group = args[:alert_group] if args.key?(:alert_group)
2693
+ @enroll_status = args[:enroll_status] if args.key?(:enroll_status)
2694
+ @recipients = args[:recipients] if args.key?(:recipients)
2695
+ end
2696
+ end
2697
+
2698
+ # Recipient contact information.
2699
+ class GoogleCloudRetailV2betaAlertConfigAlertPolicyRecipient
2700
+ include Google::Apis::Core::Hashable
2701
+
2702
+ # Email address of the recipient.
2703
+ # Corresponds to the JSON property `emailAddress`
2704
+ # @return [String]
2705
+ attr_accessor :email_address
2706
+
2707
+ def initialize(**args)
2708
+ update!(**args)
2709
+ end
2710
+
2711
+ # Update properties of this object
2712
+ def update!(**args)
2713
+ @email_address = args[:email_address] if args.key?(:email_address)
2714
+ end
2715
+ end
2716
+
2638
2717
  # Catalog level attribute config.
2639
2718
  class GoogleCloudRetailV2betaAttributesConfig
2640
2719
  include Google::Apis::Core::Hashable
@@ -2757,6 +2836,44 @@ module Google
2757
2836
  end
2758
2837
  end
2759
2838
 
2839
+ # Request for BatchUpdateGenerativeQuestionConfig method.
2840
+ class GoogleCloudRetailV2betaBatchUpdateGenerativeQuestionConfigsRequest
2841
+ include Google::Apis::Core::Hashable
2842
+
2843
+ # Required. The updates question configs.
2844
+ # Corresponds to the JSON property `requests`
2845
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaUpdateGenerativeQuestionConfigRequest>]
2846
+ attr_accessor :requests
2847
+
2848
+ def initialize(**args)
2849
+ update!(**args)
2850
+ end
2851
+
2852
+ # Update properties of this object
2853
+ def update!(**args)
2854
+ @requests = args[:requests] if args.key?(:requests)
2855
+ end
2856
+ end
2857
+
2858
+ # Aggregated response for UpdateGenerativeQuestionConfig method.
2859
+ class GoogleCloudRetailV2betaBatchUpdateGenerativeQuestionConfigsResponse
2860
+ include Google::Apis::Core::Hashable
2861
+
2862
+ # Optional. The updates question configs.
2863
+ # Corresponds to the JSON property `generativeQuestionConfigs`
2864
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaGenerativeQuestionConfig>]
2865
+ attr_accessor :generative_question_configs
2866
+
2867
+ def initialize(**args)
2868
+ update!(**args)
2869
+ end
2870
+
2871
+ # Update properties of this object
2872
+ def update!(**args)
2873
+ @generative_question_configs = args[:generative_question_configs] if args.key?(:generative_question_configs)
2874
+ end
2875
+ end
2876
+
2760
2877
  # A BigQuery output result.
2761
2878
  class GoogleCloudRetailV2betaBigQueryOutputResult
2762
2879
  include Google::Apis::Core::Hashable
@@ -2926,14 +3043,13 @@ module Google
2926
3043
  # Output only. Indicates whether this attribute has been used by any products. `
2927
3044
  # True` if at least one Product is using this attribute in Product.attributes.
2928
3045
  # Otherwise, this field is `False`. CatalogAttribute can be pre-loaded by using
2929
- # CatalogService.AddCatalogAttribute, CatalogService.ImportCatalogAttributes, or
2930
- # CatalogService.UpdateAttributesConfig APIs. This field is `False` for pre-
2931
- # loaded CatalogAttributes. Only pre-loaded catalog attributes that are neither
2932
- # in use by products nor predefined can be deleted. Catalog attributes that are
2933
- # either in use by products or are predefined attributes cannot be deleted;
2934
- # however, their configuration properties will reset to default values upon
2935
- # removal request. After catalog changes, it takes about 10 minutes for this
2936
- # field to update.
3046
+ # CatalogService.AddCatalogAttribute or CatalogService.UpdateAttributesConfig
3047
+ # APIs. This field is `False` for pre-loaded CatalogAttributes. Only pre-loaded
3048
+ # catalog attributes that are neither in use by products nor predefined can be
3049
+ # deleted. Catalog attributes that are either in use by products or are
3050
+ # predefined attributes cannot be deleted; however, their configuration
3051
+ # properties will reset to default values upon removal request. After catalog
3052
+ # changes, it takes about 10 minutes for this field to update.
2937
3053
  # Corresponds to the JSON property `inUse`
2938
3054
  # @return [Boolean]
2939
3055
  attr_accessor :in_use
@@ -3134,13 +3250,6 @@ module Google
3134
3250
  # @return [String]
3135
3251
  attr_accessor :merged_facet_key
3136
3252
 
3137
- # Each instance is a list of facet values that map into the same (possibly
3138
- # different) merged facet value. For the current attribute config, each facet
3139
- # value should map to at most one merged facet value.
3140
- # Corresponds to the JSON property `mergedFacetValues`
3141
- # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaCatalogAttributeFacetConfigMergedFacetValue>]
3142
- attr_accessor :merged_facet_values
3143
-
3144
3253
  def initialize(**args)
3145
3254
  update!(**args)
3146
3255
  end
@@ -3148,7 +3257,6 @@ module Google
3148
3257
  # Update properties of this object
3149
3258
  def update!(**args)
3150
3259
  @merged_facet_key = args[:merged_facet_key] if args.key?(:merged_facet_key)
3151
- @merged_facet_values = args[:merged_facet_values] if args.key?(:merged_facet_values)
3152
3260
  end
3153
3261
  end
3154
3262
 
@@ -3261,6 +3369,12 @@ module Google
3261
3369
  class GoogleCloudRetailV2betaCompleteQueryResponse
3262
3370
  include Google::Apis::Core::Hashable
3263
3371
 
3372
+ # A map of matched attribute suggestions. This field is only available for "
3373
+ # cloud-retail" dataset. Current supported keys: * `brands` * `categories`
3374
+ # Corresponds to the JSON property `attributeResults`
3375
+ # @return [Hash<String,Google::Apis::RetailV2beta::GoogleCloudRetailV2betaCompleteQueryResponseAttributeResult>]
3376
+ attr_accessor :attribute_results
3377
+
3264
3378
  # A unique complete token. This should be included in the UserEvent.
3265
3379
  # completion_detail for search events resulting from this completion, which
3266
3380
  # enables accurate attribution of complete model performance.
@@ -3293,12 +3407,33 @@ module Google
3293
3407
 
3294
3408
  # Update properties of this object
3295
3409
  def update!(**args)
3410
+ @attribute_results = args[:attribute_results] if args.key?(:attribute_results)
3296
3411
  @attribution_token = args[:attribution_token] if args.key?(:attribution_token)
3297
3412
  @completion_results = args[:completion_results] if args.key?(:completion_results)
3298
3413
  @recent_search_results = args[:recent_search_results] if args.key?(:recent_search_results)
3299
3414
  end
3300
3415
  end
3301
3416
 
3417
+ # Resource that represents attribute results. The list of suggestions for the
3418
+ # attribute.
3419
+ class GoogleCloudRetailV2betaCompleteQueryResponseAttributeResult
3420
+ include Google::Apis::Core::Hashable
3421
+
3422
+ #
3423
+ # Corresponds to the JSON property `suggestions`
3424
+ # @return [Array<String>]
3425
+ attr_accessor :suggestions
3426
+
3427
+ def initialize(**args)
3428
+ update!(**args)
3429
+ end
3430
+
3431
+ # Update properties of this object
3432
+ def update!(**args)
3433
+ @suggestions = args[:suggestions] if args.key?(:suggestions)
3434
+ end
3435
+ end
3436
+
3302
3437
  # Resource that represents completion results.
3303
3438
  class GoogleCloudRetailV2betaCompleteQueryResponseCompletionResult
3304
3439
  include Google::Apis::Core::Hashable
@@ -3327,7 +3462,7 @@ module Google
3327
3462
  end
3328
3463
  end
3329
3464
 
3330
- # Recent search of this user.
3465
+ # Deprecated: Recent search of this user.
3331
3466
  class GoogleCloudRetailV2betaCompleteQueryResponseRecentSearchResult
3332
3467
  include Google::Apis::Core::Hashable
3333
3468
 
@@ -3739,7 +3874,7 @@ module Google
3739
3874
  end
3740
3875
  end
3741
3876
 
3742
- # Metadata for active A/B testing Experiment.
3877
+ # Metadata for active A/B testing experiment.
3743
3878
  class GoogleCloudRetailV2betaExperimentInfo
3744
3879
  include Google::Apis::Core::Hashable
3745
3880
 
@@ -3770,8 +3905,8 @@ module Google
3770
3905
  class GoogleCloudRetailV2betaExperimentInfoServingConfigExperiment
3771
3906
  include Google::Apis::Core::Hashable
3772
3907
 
3773
- # The fully qualified resource name of the serving config Experiment.VariantArm.
3774
- # serving_config_id responsible for generating the search response. For example:
3908
+ # The fully qualified resource name of the serving config `Experiment.VariantArm.
3909
+ # serving_config_id` responsible for generating the search response. For example:
3775
3910
  # `projects/*/locations/*/catalogs/*/servingConfigs/*`.
3776
3911
  # Corresponds to the JSON property `experimentServingConfig`
3777
3912
  # @return [String]
@@ -3910,6 +4045,58 @@ module Google
3910
4045
  end
3911
4046
  end
3912
4047
 
4048
+ # Request message for ExportProducts method.
4049
+ class GoogleCloudRetailV2betaExportProductsRequest
4050
+ include Google::Apis::Core::Hashable
4051
+
4052
+ # A filtering expression to specify restrictions on returned events. The
4053
+ # expression is a sequence of terms. Each term applies a restriction to the
4054
+ # returned products. Use this expression to restrict results to a specific time
4055
+ # range, tag, or stock state or to filter products by product type. For example,
4056
+ # `lastModifiedTime > "2012-04-23T18:25:43.511Z" lastModifiedTime<"2012-04-23T18:
4057
+ # 25:43.511Z" productType=primary` We expect only four types of fields: * `
4058
+ # lastModifiedTime`: This can be specified twice, once with a less than operator
4059
+ # and once with a greater than operator. The `lastModifiedTime` restriction
4060
+ # should result in one, contiguous, valid, last-modified, time range. * `
4061
+ # productType`: Supported values are `primary` and `variant`. The Boolean
4062
+ # operators `OR` and `NOT` are supported if the expression is enclosed in
4063
+ # parentheses and must be separated from the `productType` values by a space. * `
4064
+ # availability`: Supported values are `IN_STOCK`, `OUT_OF_STOCK`, `PREORDER`,
4065
+ # and `BACKORDER`. Boolean operators `OR` and `NOT` are supported if the
4066
+ # expression is enclosed in parentheses and must be separated from the `
4067
+ # availability` values by a space. * `Tag expressions`: Restricts output to
4068
+ # products that match all of the specified tags. Boolean operators `OR` and `NOT`
4069
+ # are supported if the expression is enclosed in parentheses and the operators
4070
+ # are separated from the tag values by a space. Also supported is '`-"tagA"`',
4071
+ # which is equivalent to '`NOT "tagA"`'. Tag values must be double-quoted, UTF-8
4072
+ # encoded strings and have a size limit of 1,000 characters. Some examples of
4073
+ # valid filters expressions: * Example 1: `lastModifiedTime > "2012-04-23T18:25:
4074
+ # 43.511Z" lastModifiedTime < "2012-04-23T18:30:43.511Z"` * Example 2: `
4075
+ # lastModifiedTime > "2012-04-23T18:25:43.511Z" productType = "variant"` *
4076
+ # Example 3: `tag=("Red" OR "Blue") tag="New-Arrival" tag=(NOT "promotional")
4077
+ # productType = "primary" lastModifiedTime < "2018-04-23T18:30:43.511Z"` *
4078
+ # Example 4: `lastModifiedTime > "2012-04-23T18:25:43.511Z"` * Example 5: `
4079
+ # availability = (IN_STOCK OR BACKORDER)`
4080
+ # Corresponds to the JSON property `filter`
4081
+ # @return [String]
4082
+ attr_accessor :filter
4083
+
4084
+ # The output configuration setting.
4085
+ # Corresponds to the JSON property `outputConfig`
4086
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaOutputConfig]
4087
+ attr_accessor :output_config
4088
+
4089
+ def initialize(**args)
4090
+ update!(**args)
4091
+ end
4092
+
4093
+ # Update properties of this object
4094
+ def update!(**args)
4095
+ @filter = args[:filter] if args.key?(:filter)
4096
+ @output_config = args[:output_config] if args.key?(:output_config)
4097
+ end
4098
+ end
4099
+
3913
4100
  # Response of the ExportProductsRequest. If the long running operation is done,
3914
4101
  # then this message is returned by the google.longrunning.Operations.response
3915
4102
  # field if the operation was successful.
@@ -3944,6 +4131,51 @@ module Google
3944
4131
  end
3945
4132
  end
3946
4133
 
4134
+ # Request message for the `ExportUserEvents` method.
4135
+ class GoogleCloudRetailV2betaExportUserEventsRequest
4136
+ include Google::Apis::Core::Hashable
4137
+
4138
+ # A filtering expression to specify restrictions on returned events. The
4139
+ # expression is a sequence of terms. Each term applies a restriction to the
4140
+ # returned user events. Use this expression to restrict results to a specific
4141
+ # time range or to filter events by eventType. For example, `eventTime > "2012-
4142
+ # 04-23T18:25:43.511Z" eventsMissingCatalogItems eventTime<"2012-04-23T18:25:43.
4143
+ # 511Z" eventType=search` We expect only three types of fields: * `eventTime`:
4144
+ # This can be specified twice, once with a less than operator and once with a
4145
+ # greater than operator. The `eventTime` restriction should result in one,
4146
+ # contiguous, valid, `eventTime` range. * `eventType`: Boolean operators `OR`
4147
+ # and `NOT` are supported if the expression is enclosed in parentheses and the
4148
+ # operators are separated from the tag values by a space. * `
4149
+ # eventsMissingCatalogItems`: This restricts results to events for which catalog
4150
+ # items were not found in the catalog. The default behavior is to return only
4151
+ # those events for which catalog items were found. Some examples of valid
4152
+ # filters expressions: * Example 1: `eventTime > "2012-04-23T18:25:43.511Z"
4153
+ # eventTime < "2012-04-23T18:30:43.511Z"` * Example 2: `eventTime > "2012-04-
4154
+ # 23T18:25:43.511Z" eventType = detail-page-view` * Example 3: `
4155
+ # eventsMissingCatalogItems eventType = (NOT search) eventTime < "2018-04-23T18:
4156
+ # 30:43.511Z"` * Example 4: `eventTime > "2012-04-23T18:25:43.511Z"` * Example 5:
4157
+ # `eventType = (detail-page-view OR search)` * Example 6: `
4158
+ # eventsMissingCatalogItems`
4159
+ # Corresponds to the JSON property `filter`
4160
+ # @return [String]
4161
+ attr_accessor :filter
4162
+
4163
+ # The output configuration setting.
4164
+ # Corresponds to the JSON property `outputConfig`
4165
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaOutputConfig]
4166
+ attr_accessor :output_config
4167
+
4168
+ def initialize(**args)
4169
+ update!(**args)
4170
+ end
4171
+
4172
+ # Update properties of this object
4173
+ def update!(**args)
4174
+ @filter = args[:filter] if args.key?(:filter)
4175
+ @output_config = args[:output_config] if args.key?(:output_config)
4176
+ end
4177
+ end
4178
+
3947
4179
  # Response of the ExportUserEventsRequest. If the long running operation was
3948
4180
  # successful, then this message is returned by the google.longrunning.Operations.
3949
4181
  # response field if the operation was successful.
@@ -4073,6 +4305,99 @@ module Google
4073
4305
  end
4074
4306
  end
4075
4307
 
4308
+ # Configuration for a single generated question.
4309
+ class GoogleCloudRetailV2betaGenerativeQuestionConfig
4310
+ include Google::Apis::Core::Hashable
4311
+
4312
+ # Optional. Whether the question is asked at serving time.
4313
+ # Corresponds to the JSON property `allowedInConversation`
4314
+ # @return [Boolean]
4315
+ attr_accessor :allowed_in_conversation
4316
+ alias_method :allowed_in_conversation?, :allowed_in_conversation
4317
+
4318
+ # Required. Resource name of the catalog. Format: projects/`project`/locations/`
4319
+ # location`/catalogs/`catalog`
4320
+ # Corresponds to the JSON property `catalog`
4321
+ # @return [String]
4322
+ attr_accessor :catalog
4323
+
4324
+ # Output only. Values that can be used to answer the question.
4325
+ # Corresponds to the JSON property `exampleValues`
4326
+ # @return [Array<String>]
4327
+ attr_accessor :example_values
4328
+
4329
+ # Required. The facet to which the question is associated.
4330
+ # Corresponds to the JSON property `facet`
4331
+ # @return [String]
4332
+ attr_accessor :facet
4333
+
4334
+ # Optional. The question that will be used at serving time. Question can have a
4335
+ # max length of 300 bytes. When not populated, generated_question should be used.
4336
+ # Corresponds to the JSON property `finalQuestion`
4337
+ # @return [String]
4338
+ attr_accessor :final_question
4339
+
4340
+ # Output only. The ratio of how often a question was asked.
4341
+ # Corresponds to the JSON property `frequency`
4342
+ # @return [Float]
4343
+ attr_accessor :frequency
4344
+
4345
+ # Output only. The LLM generated question.
4346
+ # Corresponds to the JSON property `generatedQuestion`
4347
+ # @return [String]
4348
+ attr_accessor :generated_question
4349
+
4350
+ def initialize(**args)
4351
+ update!(**args)
4352
+ end
4353
+
4354
+ # Update properties of this object
4355
+ def update!(**args)
4356
+ @allowed_in_conversation = args[:allowed_in_conversation] if args.key?(:allowed_in_conversation)
4357
+ @catalog = args[:catalog] if args.key?(:catalog)
4358
+ @example_values = args[:example_values] if args.key?(:example_values)
4359
+ @facet = args[:facet] if args.key?(:facet)
4360
+ @final_question = args[:final_question] if args.key?(:final_question)
4361
+ @frequency = args[:frequency] if args.key?(:frequency)
4362
+ @generated_question = args[:generated_question] if args.key?(:generated_question)
4363
+ end
4364
+ end
4365
+
4366
+ # Configuration for overall generative question feature state.
4367
+ class GoogleCloudRetailV2betaGenerativeQuestionsFeatureConfig
4368
+ include Google::Apis::Core::Hashable
4369
+
4370
+ # Required. Resource name of the affected catalog. Format: projects/`project`/
4371
+ # locations/`location`/catalogs/`catalog`
4372
+ # Corresponds to the JSON property `catalog`
4373
+ # @return [String]
4374
+ attr_accessor :catalog
4375
+
4376
+ # Optional. Determines whether questions will be used at serving time. Note:
4377
+ # This feature cannot be enabled until initial data requirements are satisfied.
4378
+ # Corresponds to the JSON property `featureEnabled`
4379
+ # @return [Boolean]
4380
+ attr_accessor :feature_enabled
4381
+ alias_method :feature_enabled?, :feature_enabled
4382
+
4383
+ # Optional. Minimum number of products in the response to trigger follow-up
4384
+ # questions. Value must be 0 or positive.
4385
+ # Corresponds to the JSON property `minimumProducts`
4386
+ # @return [Fixnum]
4387
+ attr_accessor :minimum_products
4388
+
4389
+ def initialize(**args)
4390
+ update!(**args)
4391
+ end
4392
+
4393
+ # Update properties of this object
4394
+ def update!(**args)
4395
+ @catalog = args[:catalog] if args.key?(:catalog)
4396
+ @feature_enabled = args[:feature_enabled] if args.key?(:feature_enabled)
4397
+ @minimum_products = args[:minimum_products] if args.key?(:minimum_products)
4398
+ end
4399
+ end
4400
+
4076
4401
  # Response message of CatalogService.GetDefaultBranch.
4077
4402
  class GoogleCloudRetailV2betaGetDefaultBranchResponse
4078
4403
  include Google::Apis::Core::Hashable
@@ -4105,10 +4430,11 @@ module Google
4105
4430
  end
4106
4431
  end
4107
4432
 
4108
- # Product image. Recommendations AI and Retail Search do not use product images
4109
- # to improve prediction and search results. However, product images can be
4110
- # returned in results, and are shown in prediction or search previews in the
4111
- # console.
4433
+ # Product image. Recommendations AI and Retail Search use product images to
4434
+ # improve prediction and search results. Product images can be returned in
4435
+ # results, and are shown in prediction or search previews in the console. Please
4436
+ # try to provide correct product images and avoid using images with size too
4437
+ # small.
4112
4438
  class GoogleCloudRetailV2betaImage
4113
4439
  include Google::Apis::Core::Hashable
4114
4440
 
@@ -4503,6 +4829,25 @@ module Google
4503
4829
  end
4504
4830
  end
4505
4831
 
4832
+ # Response for ListQuestions method.
4833
+ class GoogleCloudRetailV2betaListGenerativeQuestionConfigsResponse
4834
+ include Google::Apis::Core::Hashable
4835
+
4836
+ # All the questions for a given catalog.
4837
+ # Corresponds to the JSON property `generativeQuestionConfigs`
4838
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaGenerativeQuestionConfig>]
4839
+ attr_accessor :generative_question_configs
4840
+
4841
+ def initialize(**args)
4842
+ update!(**args)
4843
+ end
4844
+
4845
+ # Update properties of this object
4846
+ def update!(**args)
4847
+ @generative_question_configs = args[:generative_question_configs] if args.key?(:generative_question_configs)
4848
+ end
4849
+ end
4850
+
4506
4851
  # Response to a ListModelRequest.
4507
4852
  class GoogleCloudRetailV2betaListModelsResponse
4508
4853
  include Google::Apis::Core::Hashable
@@ -4583,8 +4928,8 @@ module Google
4583
4928
  class GoogleCloudRetailV2betaLocalInventory
4584
4929
  include Google::Apis::Core::Hashable
4585
4930
 
4586
- # Additional local inventory attributes, for example, store name, promotion tags,
4587
- # etc. This field needs to pass all below criteria, otherwise an
4931
+ # Optional. Additional local inventory attributes, for example, store name,
4932
+ # promotion tags, etc. This field needs to pass all below criteria, otherwise an
4588
4933
  # INVALID_ARGUMENT error is returned: * At most 30 attributes are allowed. * The
4589
4934
  # key must be a UTF-8 encoded string with a length limit of 32 characters. * The
4590
4935
  # key must match the pattern: `a-zA-Z0-9*`. For example, key0LikeThis or
@@ -4597,7 +4942,20 @@ module Google
4597
4942
  # @return [Hash<String,Google::Apis::RetailV2beta::GoogleCloudRetailV2betaCustomAttribute>]
4598
4943
  attr_accessor :attributes
4599
4944
 
4600
- # Input only. Supported fulfillment types. Valid fulfillment type values include
4945
+ # Optional. The availability of the Product at this place_id. Default to
4946
+ # Availability.IN_STOCK. For primary products with variants set the availability
4947
+ # of the primary as Availability.OUT_OF_STOCK and set the true availability at
4948
+ # the variant level. This way the primary product will be considered "in stock"
4949
+ # as long as it has at least one variant in stock. For primary products with no
4950
+ # variants set the true availability at the primary level. Corresponding
4951
+ # properties: Google Merchant Center property [availability](https://support.
4952
+ # google.com/merchants/answer/6324448). Schema.org property [Offer.availability](
4953
+ # https://schema.org/availability).
4954
+ # Corresponds to the JSON property `availability`
4955
+ # @return [String]
4956
+ attr_accessor :availability
4957
+
4958
+ # Optional. Supported fulfillment types. Valid fulfillment type values include
4601
4959
  # commonly used types (such as pickup in store and same day delivery), and
4602
4960
  # custom types. Customers have to map custom types to their display names before
4603
4961
  # rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-
@@ -4609,7 +4967,7 @@ module Google
4609
4967
  # @return [Array<String>]
4610
4968
  attr_accessor :fulfillment_types
4611
4969
 
4612
- # The place ID for the current set of inventory information.
4970
+ # Required. The place ID for the current set of inventory information.
4613
4971
  # Corresponds to the JSON property `placeId`
4614
4972
  # @return [String]
4615
4973
  attr_accessor :place_id
@@ -4626,6 +4984,7 @@ module Google
4626
4984
  # Update properties of this object
4627
4985
  def update!(**args)
4628
4986
  @attributes = args[:attributes] if args.key?(:attributes)
4987
+ @availability = args[:availability] if args.key?(:availability)
4629
4988
  @fulfillment_types = args[:fulfillment_types] if args.key?(:fulfillment_types)
4630
4989
  @place_id = args[:place_id] if args.key?(:place_id)
4631
4990
  @price_info = args[:price_info] if args.key?(:price_info)
@@ -5074,6 +5433,52 @@ module Google
5074
5433
  end
5075
5434
  end
5076
5435
 
5436
+ # Metadata for pinning to be returned in the response. This is used for
5437
+ # distinguishing between applied vs dropped pins.
5438
+ class GoogleCloudRetailV2betaPinControlMetadata
5439
+ include Google::Apis::Core::Hashable
5440
+
5441
+ # Map of all matched pins, keyed by pin position.
5442
+ # Corresponds to the JSON property `allMatchedPins`
5443
+ # @return [Hash<String,Google::Apis::RetailV2beta::GoogleCloudRetailV2betaPinControlMetadataProductPins>]
5444
+ attr_accessor :all_matched_pins
5445
+
5446
+ # Map of pins that were dropped due to overlap with other matching pins, keyed
5447
+ # by pin position.
5448
+ # Corresponds to the JSON property `droppedPins`
5449
+ # @return [Hash<String,Google::Apis::RetailV2beta::GoogleCloudRetailV2betaPinControlMetadataProductPins>]
5450
+ attr_accessor :dropped_pins
5451
+
5452
+ def initialize(**args)
5453
+ update!(**args)
5454
+ end
5455
+
5456
+ # Update properties of this object
5457
+ def update!(**args)
5458
+ @all_matched_pins = args[:all_matched_pins] if args.key?(:all_matched_pins)
5459
+ @dropped_pins = args[:dropped_pins] if args.key?(:dropped_pins)
5460
+ end
5461
+ end
5462
+
5463
+ # List of product ids which have associated pins.
5464
+ class GoogleCloudRetailV2betaPinControlMetadataProductPins
5465
+ include Google::Apis::Core::Hashable
5466
+
5467
+ # List of product ids which have associated pins.
5468
+ # Corresponds to the JSON property `productId`
5469
+ # @return [Array<String>]
5470
+ attr_accessor :product_id
5471
+
5472
+ def initialize(**args)
5473
+ update!(**args)
5474
+ end
5475
+
5476
+ # Update properties of this object
5477
+ def update!(**args)
5478
+ @product_id = args[:product_id] if args.key?(:product_id)
5479
+ end
5480
+ end
5481
+
5077
5482
  # Request message for Predict method.
5078
5483
  class GoogleCloudRetailV2betaPredictRequest
5079
5484
  include Google::Apis::Core::Hashable
@@ -5385,10 +5790,15 @@ module Google
5385
5790
  # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaAudience]
5386
5791
  attr_accessor :audience
5387
5792
 
5388
- # The online availability of the Product. Default to Availability.IN_STOCK.
5389
- # Corresponding properties: Google Merchant Center property [availability](https:
5390
- # //support.google.com/merchants/answer/6324448). Schema.org property [Offer.
5391
- # availability](https://schema.org/availability).
5793
+ # The online availability of the Product. Default to Availability.IN_STOCK. For
5794
+ # primary products with variants set the availability of the primary as
5795
+ # Availability.OUT_OF_STOCK and set the true availability at the variant level.
5796
+ # This way the primary product will be considered "in stock" as long as it has
5797
+ # at least one variant in stock. For primary products with no variants set the
5798
+ # true availability at the primary level. Corresponding properties: Google
5799
+ # Merchant Center property [availability](https://support.google.com/merchants/
5800
+ # answer/6324448). Schema.org property [Offer.availability](https://schema.org/
5801
+ # availability).
5392
5802
  # Corresponds to the JSON property `availability`
5393
5803
  # @return [String]
5394
5804
  attr_accessor :availability
@@ -5616,10 +6026,9 @@ module Google
5616
6026
  # attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION,
5617
6027
  # the following fields are always returned in SearchResponse by default: * name
5618
6028
  # For Type.VARIANT, the following fields are always returned in by default: *
5619
- # name * color_info The maximum number of paths is 30. Otherwise, an
5620
- # INVALID_ARGUMENT error is returned. Note: Returning more fields in
5621
- # SearchResponse can increase response payload size and serving latency. This
5622
- # field is deprecated. Use the retrievable site-wide control instead.
6029
+ # name * color_info Note: Returning more fields in SearchResponse can increase
6030
+ # response payload size and serving latency. This field is deprecated. Use the
6031
+ # retrievable site-wide control instead.
5623
6032
  # Corresponds to the JSON property `retrievableFields`
5624
6033
  # @return [String]
5625
6034
  attr_accessor :retrievable_fields
@@ -5744,6 +6153,58 @@ module Google
5744
6153
  end
5745
6154
  end
5746
6155
 
6156
+ # Product attribute name and numeric interval.
6157
+ class GoogleCloudRetailV2betaProductAttributeInterval
6158
+ include Google::Apis::Core::Hashable
6159
+
6160
+ # A floating point interval.
6161
+ # Corresponds to the JSON property `interval`
6162
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaInterval]
6163
+ attr_accessor :interval
6164
+
6165
+ # The attribute name (e.g. "length")
6166
+ # Corresponds to the JSON property `name`
6167
+ # @return [String]
6168
+ attr_accessor :name
6169
+
6170
+ def initialize(**args)
6171
+ update!(**args)
6172
+ end
6173
+
6174
+ # Update properties of this object
6175
+ def update!(**args)
6176
+ @interval = args[:interval] if args.key?(:interval)
6177
+ @name = args[:name] if args.key?(:name)
6178
+ end
6179
+ end
6180
+
6181
+ # Product attribute which structured by an attribute name and value. This
6182
+ # structure is used in conversational search filters and answers. For example,
6183
+ # if we have `name=color` and `value=red`, this means that the color is `red`.
6184
+ class GoogleCloudRetailV2betaProductAttributeValue
6185
+ include Google::Apis::Core::Hashable
6186
+
6187
+ # The attribute name.
6188
+ # Corresponds to the JSON property `name`
6189
+ # @return [String]
6190
+ attr_accessor :name
6191
+
6192
+ # The attribute value.
6193
+ # Corresponds to the JSON property `value`
6194
+ # @return [String]
6195
+ attr_accessor :value
6196
+
6197
+ def initialize(**args)
6198
+ update!(**args)
6199
+ end
6200
+
6201
+ # Update properties of this object
6202
+ def update!(**args)
6203
+ @name = args[:name] if args.key?(:name)
6204
+ @value = args[:value] if args.key?(:value)
6205
+ end
6206
+ end
6207
+
5747
6208
  # Detailed product information associated with a user event.
5748
6209
  class GoogleCloudRetailV2betaProductDetail
5749
6210
  include Google::Apis::Core::Hashable
@@ -6685,7 +7146,7 @@ module Google
6685
7146
  include Google::Apis::Core::Hashable
6686
7147
 
6687
7148
  # Each instance corresponds to a force return attribute for the given condition.
6688
- # There can't be more 3 instances here.
7149
+ # There can't be more 15 instances here.
6689
7150
  # Corresponds to the JSON property `facetPositionAdjustments`
6690
7151
  # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaRuleForceReturnFacetActionFacetPositionAdjustment>]
6691
7152
  attr_accessor :facet_position_adjustments
@@ -6917,6 +7378,12 @@ module Google
6917
7378
  # @return [String]
6918
7379
  attr_accessor :canonical_filter
6919
7380
 
7381
+ # This field specifies all conversational related parameters addition to
7382
+ # traditional retail search.
7383
+ # Corresponds to the JSON property `conversationalSearchSpec`
7384
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchRequestConversationalSearchSpec]
7385
+ attr_accessor :conversational_search_spec
7386
+
6920
7387
  # The specifications of dynamically generated facets.
6921
7388
  # Corresponds to the JSON property `dynamicFacetSpec`
6922
7389
  # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchRequestDynamicFacetSpec]
@@ -7033,6 +7500,11 @@ module Google
7033
7500
  # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchRequestSpellCorrectionSpec]
7034
7501
  attr_accessor :spell_correction_spec
7035
7502
 
7503
+ # This field specifies tile navigation related parameters.
7504
+ # Corresponds to the JSON property `tileNavigationSpec`
7505
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchRequestTileNavigationSpec]
7506
+ attr_accessor :tile_navigation_spec
7507
+
7036
7508
  # Information of an end user.
7037
7509
  # Corresponds to the JSON property `userInfo`
7038
7510
  # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaUserInfo]
@@ -7087,6 +7559,7 @@ module Google
7087
7559
  @boost_spec = args[:boost_spec] if args.key?(:boost_spec)
7088
7560
  @branch = args[:branch] if args.key?(:branch)
7089
7561
  @canonical_filter = args[:canonical_filter] if args.key?(:canonical_filter)
7562
+ @conversational_search_spec = args[:conversational_search_spec] if args.key?(:conversational_search_spec)
7090
7563
  @dynamic_facet_spec = args[:dynamic_facet_spec] if args.key?(:dynamic_facet_spec)
7091
7564
  @entity = args[:entity] if args.key?(:entity)
7092
7565
  @facet_specs = args[:facet_specs] if args.key?(:facet_specs)
@@ -7102,6 +7575,7 @@ module Google
7102
7575
  @query_expansion_spec = args[:query_expansion_spec] if args.key?(:query_expansion_spec)
7103
7576
  @search_mode = args[:search_mode] if args.key?(:search_mode)
7104
7577
  @spell_correction_spec = args[:spell_correction_spec] if args.key?(:spell_correction_spec)
7578
+ @tile_navigation_spec = args[:tile_navigation_spec] if args.key?(:tile_navigation_spec)
7105
7579
  @user_info = args[:user_info] if args.key?(:user_info)
7106
7580
  @variant_rollup_keys = args[:variant_rollup_keys] if args.key?(:variant_rollup_keys)
7107
7581
  @visitor_id = args[:visitor_id] if args.key?(:visitor_id)
@@ -7177,6 +7651,102 @@ module Google
7177
7651
  end
7178
7652
  end
7179
7653
 
7654
+ # This field specifies all conversational related parameters addition to
7655
+ # traditional retail search.
7656
+ class GoogleCloudRetailV2betaSearchRequestConversationalSearchSpec
7657
+ include Google::Apis::Core::Hashable
7658
+
7659
+ # This field specifies the conversation id, which maintains the state of the
7660
+ # conversation between client side and server side. Use the value from the
7661
+ # previous ConversationalSearchResult.conversation_id. For the initial request,
7662
+ # this should be empty.
7663
+ # Corresponds to the JSON property `conversationId`
7664
+ # @return [String]
7665
+ attr_accessor :conversation_id
7666
+
7667
+ # This field specifies whether the customer would like to do conversational
7668
+ # search. If this field is set to true, conversational related extra information
7669
+ # will be returned from server side, including follow-up question, answer
7670
+ # options, etc.
7671
+ # Corresponds to the JSON property `followupConversationRequested`
7672
+ # @return [Boolean]
7673
+ attr_accessor :followup_conversation_requested
7674
+ alias_method :followup_conversation_requested?, :followup_conversation_requested
7675
+
7676
+ # This field specifies the current user answer during the conversational search.
7677
+ # This can be either user selected from suggested answers or user input plain
7678
+ # text.
7679
+ # Corresponds to the JSON property `userAnswer`
7680
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchRequestConversationalSearchSpecUserAnswer]
7681
+ attr_accessor :user_answer
7682
+
7683
+ def initialize(**args)
7684
+ update!(**args)
7685
+ end
7686
+
7687
+ # Update properties of this object
7688
+ def update!(**args)
7689
+ @conversation_id = args[:conversation_id] if args.key?(:conversation_id)
7690
+ @followup_conversation_requested = args[:followup_conversation_requested] if args.key?(:followup_conversation_requested)
7691
+ @user_answer = args[:user_answer] if args.key?(:user_answer)
7692
+ end
7693
+ end
7694
+
7695
+ # This field specifies the current user answer during the conversational search.
7696
+ # This can be either user selected from suggested answers or user input plain
7697
+ # text.
7698
+ class GoogleCloudRetailV2betaSearchRequestConversationalSearchSpecUserAnswer
7699
+ include Google::Apis::Core::Hashable
7700
+
7701
+ # This field specifies the selected answers during the conversational search.
7702
+ # Corresponds to the JSON property `selectedAnswer`
7703
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchRequestConversationalSearchSpecUserAnswerSelectedAnswer]
7704
+ attr_accessor :selected_answer
7705
+
7706
+ # This field specifies the incremental input text from the user during the
7707
+ # conversational search.
7708
+ # Corresponds to the JSON property `textAnswer`
7709
+ # @return [String]
7710
+ attr_accessor :text_answer
7711
+
7712
+ def initialize(**args)
7713
+ update!(**args)
7714
+ end
7715
+
7716
+ # Update properties of this object
7717
+ def update!(**args)
7718
+ @selected_answer = args[:selected_answer] if args.key?(:selected_answer)
7719
+ @text_answer = args[:text_answer] if args.key?(:text_answer)
7720
+ end
7721
+ end
7722
+
7723
+ # This field specifies the selected answers during the conversational search.
7724
+ class GoogleCloudRetailV2betaSearchRequestConversationalSearchSpecUserAnswerSelectedAnswer
7725
+ include Google::Apis::Core::Hashable
7726
+
7727
+ # Product attribute which structured by an attribute name and value. This
7728
+ # structure is used in conversational search filters and answers. For example,
7729
+ # if we have `name=color` and `value=red`, this means that the color is `red`.
7730
+ # Corresponds to the JSON property `productAttributeValue`
7731
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaProductAttributeValue]
7732
+ attr_accessor :product_attribute_value
7733
+
7734
+ # This field is deprecated and should not be set.
7735
+ # Corresponds to the JSON property `productAttributeValues`
7736
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaProductAttributeValue>]
7737
+ attr_accessor :product_attribute_values
7738
+
7739
+ def initialize(**args)
7740
+ update!(**args)
7741
+ end
7742
+
7743
+ # Update properties of this object
7744
+ def update!(**args)
7745
+ @product_attribute_value = args[:product_attribute_value] if args.key?(:product_attribute_value)
7746
+ @product_attribute_values = args[:product_attribute_values] if args.key?(:product_attribute_values)
7747
+ end
7748
+ end
7749
+
7180
7750
  # The specifications of dynamically generated facets.
7181
7751
  class GoogleCloudRetailV2betaSearchRequestDynamicFacetSpec
7182
7752
  include Google::Apis::Core::Hashable
@@ -7455,6 +8025,35 @@ module Google
7455
8025
  end
7456
8026
  end
7457
8027
 
8028
+ # This field specifies tile navigation related parameters.
8029
+ class GoogleCloudRetailV2betaSearchRequestTileNavigationSpec
8030
+ include Google::Apis::Core::Hashable
8031
+
8032
+ # This field specifies the tiles which are already clicked in client side. NOTE:
8033
+ # This field is not being used for filtering search products. Client side should
8034
+ # also put all the applied tiles in SearchRequest.filter.
8035
+ # Corresponds to the JSON property `appliedTiles`
8036
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaTile>]
8037
+ attr_accessor :applied_tiles
8038
+
8039
+ # This field specifies whether the customer would like to request tile
8040
+ # navigation.
8041
+ # Corresponds to the JSON property `tileNavigationRequested`
8042
+ # @return [Boolean]
8043
+ attr_accessor :tile_navigation_requested
8044
+ alias_method :tile_navigation_requested?, :tile_navigation_requested
8045
+
8046
+ def initialize(**args)
8047
+ update!(**args)
8048
+ end
8049
+
8050
+ # Update properties of this object
8051
+ def update!(**args)
8052
+ @applied_tiles = args[:applied_tiles] if args.key?(:applied_tiles)
8053
+ @tile_navigation_requested = args[:tile_navigation_requested] if args.key?(:tile_navigation_requested)
8054
+ end
8055
+ end
8056
+
7458
8057
  # Response message for SearchService.Search method.
7459
8058
  class GoogleCloudRetailV2betaSearchResponse
7460
8059
  include Google::Apis::Core::Hashable
@@ -7472,6 +8071,12 @@ module Google
7472
8071
  # @return [String]
7473
8072
  attr_accessor :attribution_token
7474
8073
 
8074
+ # This field specifies all related information that is needed on client side for
8075
+ # UI rendering of conversational retail search.
8076
+ # Corresponds to the JSON property `conversationalSearchResult`
8077
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchResponseConversationalSearchResult]
8078
+ attr_accessor :conversational_search_result
8079
+
7475
8080
  # Contains the spell corrected query, if found. If the spell correction type is
7476
8081
  # AUTOMATIC, then the search results are based on corrected_query. Otherwise the
7477
8082
  # original query is used for search.
@@ -7479,7 +8084,7 @@ module Google
7479
8084
  # @return [String]
7480
8085
  attr_accessor :corrected_query
7481
8086
 
7482
- # Metadata related to A/B testing Experiment associated with this response. Only
8087
+ # Metadata related to A/B testing experiment associated with this response. Only
7483
8088
  # exists when an experiment is triggered.
7484
8089
  # Corresponds to the JSON property `experimentInfo`
7485
8090
  # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaExperimentInfo>]
@@ -7502,6 +8107,12 @@ module Google
7502
8107
  # @return [String]
7503
8108
  attr_accessor :next_page_token
7504
8109
 
8110
+ # Metadata for pinning to be returned in the response. This is used for
8111
+ # distinguishing between applied vs dropped pins.
8112
+ # Corresponds to the JSON property `pinControlMetadata`
8113
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaPinControlMetadata]
8114
+ attr_accessor :pin_control_metadata
8115
+
7505
8116
  # Information describing query expansion including whether expansion has
7506
8117
  # occurred.
7507
8118
  # Corresponds to the JSON property `queryExpansionInfo`
@@ -7520,6 +8131,12 @@ module Google
7520
8131
  # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchResponseSearchResult>]
7521
8132
  attr_accessor :results
7522
8133
 
8134
+ # This field specifies all related information for tile navigation that will be
8135
+ # used in client side.
8136
+ # Corresponds to the JSON property `tileNavigationResult`
8137
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchResponseTileNavigationResult]
8138
+ attr_accessor :tile_navigation_result
8139
+
7523
8140
  # The estimated total count of matched items irrespective of pagination. The
7524
8141
  # count of results returned by pagination may be less than the total_size that
7525
8142
  # matches.
@@ -7535,18 +8152,123 @@ module Google
7535
8152
  def update!(**args)
7536
8153
  @applied_controls = args[:applied_controls] if args.key?(:applied_controls)
7537
8154
  @attribution_token = args[:attribution_token] if args.key?(:attribution_token)
8155
+ @conversational_search_result = args[:conversational_search_result] if args.key?(:conversational_search_result)
7538
8156
  @corrected_query = args[:corrected_query] if args.key?(:corrected_query)
7539
8157
  @experiment_info = args[:experiment_info] if args.key?(:experiment_info)
7540
8158
  @facets = args[:facets] if args.key?(:facets)
7541
8159
  @invalid_condition_boost_specs = args[:invalid_condition_boost_specs] if args.key?(:invalid_condition_boost_specs)
7542
8160
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
8161
+ @pin_control_metadata = args[:pin_control_metadata] if args.key?(:pin_control_metadata)
7543
8162
  @query_expansion_info = args[:query_expansion_info] if args.key?(:query_expansion_info)
7544
8163
  @redirect_uri = args[:redirect_uri] if args.key?(:redirect_uri)
7545
8164
  @results = args[:results] if args.key?(:results)
8165
+ @tile_navigation_result = args[:tile_navigation_result] if args.key?(:tile_navigation_result)
7546
8166
  @total_size = args[:total_size] if args.key?(:total_size)
7547
8167
  end
7548
8168
  end
7549
8169
 
8170
+ # This field specifies all related information that is needed on client side for
8171
+ # UI rendering of conversational retail search.
8172
+ class GoogleCloudRetailV2betaSearchResponseConversationalSearchResult
8173
+ include Google::Apis::Core::Hashable
8174
+
8175
+ # Additional filter that client side need to apply.
8176
+ # Corresponds to the JSON property `additionalFilter`
8177
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchResponseConversationalSearchResultAdditionalFilter]
8178
+ attr_accessor :additional_filter
8179
+
8180
+ # This field is deprecated but will be kept for backward compatibility. There is
8181
+ # expected to have only one additional filter and the value will be the same to
8182
+ # the same as field `additional_filter`.
8183
+ # Corresponds to the JSON property `additionalFilters`
8184
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchResponseConversationalSearchResultAdditionalFilter>]
8185
+ attr_accessor :additional_filters
8186
+
8187
+ # Conversation UUID. This field will be stored in client side storage to
8188
+ # maintain the conversation session with server and will be used for next search
8189
+ # request's SearchRequest.ConversationalSearchSpec.conversation_id to restore
8190
+ # conversation state in server.
8191
+ # Corresponds to the JSON property `conversationId`
8192
+ # @return [String]
8193
+ attr_accessor :conversation_id
8194
+
8195
+ # The follow-up question. e.g., `What is the color?`
8196
+ # Corresponds to the JSON property `followupQuestion`
8197
+ # @return [String]
8198
+ attr_accessor :followup_question
8199
+
8200
+ # The current refined query for the conversational search. This field will be
8201
+ # used in customer UI that the query in the search bar should be replaced with
8202
+ # the refined query. For example, if SearchRequest.query is `dress` and next
8203
+ # SearchRequest.ConversationalSearchSpec.UserAnswer.text_answer is `red color`,
8204
+ # which does not match any product attribute value filters, the refined query
8205
+ # will be `dress, red color`.
8206
+ # Corresponds to the JSON property `refinedQuery`
8207
+ # @return [String]
8208
+ attr_accessor :refined_query
8209
+
8210
+ # The answer options provided to client for the follow-up question.
8211
+ # Corresponds to the JSON property `suggestedAnswers`
8212
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaSearchResponseConversationalSearchResultSuggestedAnswer>]
8213
+ attr_accessor :suggested_answers
8214
+
8215
+ def initialize(**args)
8216
+ update!(**args)
8217
+ end
8218
+
8219
+ # Update properties of this object
8220
+ def update!(**args)
8221
+ @additional_filter = args[:additional_filter] if args.key?(:additional_filter)
8222
+ @additional_filters = args[:additional_filters] if args.key?(:additional_filters)
8223
+ @conversation_id = args[:conversation_id] if args.key?(:conversation_id)
8224
+ @followup_question = args[:followup_question] if args.key?(:followup_question)
8225
+ @refined_query = args[:refined_query] if args.key?(:refined_query)
8226
+ @suggested_answers = args[:suggested_answers] if args.key?(:suggested_answers)
8227
+ end
8228
+ end
8229
+
8230
+ # Additional filter that client side need to apply.
8231
+ class GoogleCloudRetailV2betaSearchResponseConversationalSearchResultAdditionalFilter
8232
+ include Google::Apis::Core::Hashable
8233
+
8234
+ # Product attribute which structured by an attribute name and value. This
8235
+ # structure is used in conversational search filters and answers. For example,
8236
+ # if we have `name=color` and `value=red`, this means that the color is `red`.
8237
+ # Corresponds to the JSON property `productAttributeValue`
8238
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaProductAttributeValue]
8239
+ attr_accessor :product_attribute_value
8240
+
8241
+ def initialize(**args)
8242
+ update!(**args)
8243
+ end
8244
+
8245
+ # Update properties of this object
8246
+ def update!(**args)
8247
+ @product_attribute_value = args[:product_attribute_value] if args.key?(:product_attribute_value)
8248
+ end
8249
+ end
8250
+
8251
+ # Suggested answers to the follow-up question.
8252
+ class GoogleCloudRetailV2betaSearchResponseConversationalSearchResultSuggestedAnswer
8253
+ include Google::Apis::Core::Hashable
8254
+
8255
+ # Product attribute which structured by an attribute name and value. This
8256
+ # structure is used in conversational search filters and answers. For example,
8257
+ # if we have `name=color` and `value=red`, this means that the color is `red`.
8258
+ # Corresponds to the JSON property `productAttributeValue`
8259
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaProductAttributeValue]
8260
+ attr_accessor :product_attribute_value
8261
+
8262
+ def initialize(**args)
8263
+ update!(**args)
8264
+ end
8265
+
8266
+ # Update properties of this object
8267
+ def update!(**args)
8268
+ @product_attribute_value = args[:product_attribute_value] if args.key?(:product_attribute_value)
8269
+ end
8270
+ end
8271
+
7550
8272
  # A facet result.
7551
8273
  class GoogleCloudRetailV2betaSearchResponseFacet
7552
8274
  include Google::Apis::Core::Hashable
@@ -7722,6 +8444,26 @@ module Google
7722
8444
  end
7723
8445
  end
7724
8446
 
8447
+ # This field specifies all related information for tile navigation that will be
8448
+ # used in client side.
8449
+ class GoogleCloudRetailV2betaSearchResponseTileNavigationResult
8450
+ include Google::Apis::Core::Hashable
8451
+
8452
+ # The current tiles that are used for tile navigation, sorted by engagement.
8453
+ # Corresponds to the JSON property `tiles`
8454
+ # @return [Array<Google::Apis::RetailV2beta::GoogleCloudRetailV2betaTile>]
8455
+ attr_accessor :tiles
8456
+
8457
+ def initialize(**args)
8458
+ update!(**args)
8459
+ end
8460
+
8461
+ # Update properties of this object
8462
+ def update!(**args)
8463
+ @tiles = args[:tiles] if args.key?(:tiles)
8464
+ end
8465
+ end
8466
+
7725
8467
  # Configures metadata that is used to generate serving time results (e.g. search
7726
8468
  # results or recommendation predictions).
7727
8469
  class GoogleCloudRetailV2betaServingConfig
@@ -8032,6 +8774,41 @@ module Google
8032
8774
  end
8033
8775
  end
8034
8776
 
8777
+ # This field specifies the tile information including an attribute key,
8778
+ # attribute value. More fields will be added in the future, eg: product id or
8779
+ # product counts, etc.
8780
+ class GoogleCloudRetailV2betaTile
8781
+ include Google::Apis::Core::Hashable
8782
+
8783
+ # Product attribute name and numeric interval.
8784
+ # Corresponds to the JSON property `productAttributeInterval`
8785
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaProductAttributeInterval]
8786
+ attr_accessor :product_attribute_interval
8787
+
8788
+ # Product attribute which structured by an attribute name and value. This
8789
+ # structure is used in conversational search filters and answers. For example,
8790
+ # if we have `name=color` and `value=red`, this means that the color is `red`.
8791
+ # Corresponds to the JSON property `productAttributeValue`
8792
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaProductAttributeValue]
8793
+ attr_accessor :product_attribute_value
8794
+
8795
+ # The representative product id for this tile.
8796
+ # Corresponds to the JSON property `representativeProductId`
8797
+ # @return [String]
8798
+ attr_accessor :representative_product_id
8799
+
8800
+ def initialize(**args)
8801
+ update!(**args)
8802
+ end
8803
+
8804
+ # Update properties of this object
8805
+ def update!(**args)
8806
+ @product_attribute_interval = args[:product_attribute_interval] if args.key?(:product_attribute_interval)
8807
+ @product_attribute_value = args[:product_attribute_value] if args.key?(:product_attribute_value)
8808
+ @representative_product_id = args[:representative_product_id] if args.key?(:representative_product_id)
8809
+ end
8810
+ end
8811
+
8035
8812
  # Metadata associated with a tune operation.
8036
8813
  class GoogleCloudRetailV2betaTuneModelMetadata
8037
8814
  include Google::Apis::Core::Hashable
@@ -8080,6 +8857,33 @@ module Google
8080
8857
  end
8081
8858
  end
8082
8859
 
8860
+ # Request for UpdateGenerativeQuestionConfig method.
8861
+ class GoogleCloudRetailV2betaUpdateGenerativeQuestionConfigRequest
8862
+ include Google::Apis::Core::Hashable
8863
+
8864
+ # Configuration for a single generated question.
8865
+ # Corresponds to the JSON property `generativeQuestionConfig`
8866
+ # @return [Google::Apis::RetailV2beta::GoogleCloudRetailV2betaGenerativeQuestionConfig]
8867
+ attr_accessor :generative_question_config
8868
+
8869
+ # Optional. Indicates which fields in the provided GenerativeQuestionConfig to
8870
+ # update. The following are NOT supported: * GenerativeQuestionConfig.frequency
8871
+ # If not set or empty, all supported fields are updated.
8872
+ # Corresponds to the JSON property `updateMask`
8873
+ # @return [String]
8874
+ attr_accessor :update_mask
8875
+
8876
+ def initialize(**args)
8877
+ update!(**args)
8878
+ end
8879
+
8880
+ # Update properties of this object
8881
+ def update!(**args)
8882
+ @generative_question_config = args[:generative_question_config] if args.key?(:generative_question_config)
8883
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
8884
+ end
8885
+ end
8886
+
8083
8887
  # UserEvent captures all metadata information Retail API needs to know about how
8084
8888
  # end users interact with customers' website.
8085
8889
  class GoogleCloudRetailV2betaUserEvent
@@ -8419,12 +9223,11 @@ module Google
8419
9223
  # @return [String]
8420
9224
  attr_accessor :ip_address
8421
9225
 
8422
- # User agent as included in the HTTP header. Required for getting SearchResponse.
8423
- # sponsored_results. The field must be a UTF-8 encoded string with a length
8424
- # limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
8425
- # This should not be set when using the client side event reporting with GTM or
8426
- # JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request
8427
- # is set.
9226
+ # User agent as included in the HTTP header. The field must be a UTF-8 encoded
9227
+ # string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT
9228
+ # error is returned. This should not be set when using the client side event
9229
+ # reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or
9230
+ # if direct_user_request is set.
8428
9231
  # Corresponds to the JSON property `userAgent`
8429
9232
  # @return [String]
8430
9233
  attr_accessor :user_agent