From 5e19c6d4df49d14cd37d7489a9bb5161ebd78645 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 7 Jun 2022 12:47:28 -0400 Subject: [PATCH] feat: allow users to disable spell check in search requests (#449) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: allow users to disable spell check in search requests feat: allow users to add labels in search requests docs: deprecate indexable/searchable on the product level custom attributes docs: keep the API doc up-to-date with recent changes PiperOrigin-RevId: 452193046 Source-Link: https://github.com/googleapis/googleapis/commit/4e0282f92e4e581b79062063488bf62fa837a905 Source-Link: https://github.com/googleapis/googleapis-gen/commit/3fa3c84e3da8c8e604e129c141367dd0926878f3 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiM2ZhM2M4NGUzZGE4YzhlNjA0ZTEyOWMxNDEzNjdkZDA5MjY4NzhmMyJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .../cloud/retail/v2/ProductServiceClient.java | 28 +- .../cloud/retail/v2/SearchServiceClient.java | 8 + .../retail/v2/UserEventServiceClient.java | 6 +- .../google/cloud/retail/v2/package-info.java | 2 + .../retail/v2/SearchServiceClientTest.java | 7 + .../retail/v2/UserEventServiceClientTest.java | 4 +- .../cloud/retail/v2/ProductServiceGrpc.java | 16 +- .../v2/AddFulfillmentPlacesMetadata.java | 6 +- .../v2/AddFulfillmentPlacesRequest.java | 8 +- .../v2/AddFulfillmentPlacesResponse.java | 6 +- .../v2/AddLocalInventoriesMetadata.java | 6 +- .../retail/v2/AddLocalInventoriesRequest.java | 8 +- .../v2/AddLocalInventoriesResponse.java | 14 +- .../google/cloud/retail/v2/CommonProto.java | 74 +- .../cloud/retail/v2/CompleteQueryRequest.java | 42 +- .../v2/CompleteQueryRequestOrBuilder.java | 12 +- .../retail/v2/CompleteQueryResponse.java | 48 +- .../cloud/retail/v2/CustomAttribute.java | 186 +- .../retail/v2/CustomAttributeOrBuilder.java | 62 +- .../cloud/retail/v2/ImportMetadata.java | 14 +- .../retail/v2/ImportMetadataOrBuilder.java | 4 +- .../retail/v2/ImportProductsRequest.java | 70 +- .../v2/ImportProductsRequestOrBuilder.java | 20 +- .../cloud/retail/v2/PredictRequest.java | 130 +- .../retail/v2/PredictRequestOrBuilder.java | 37 +- .../cloud/retail/v2/PredictResponse.java | 64 +- .../com/google/cloud/retail/v2/PriceInfo.java | 20 +- .../cloud/retail/v2/PriceInfoOrBuilder.java | 5 +- .../com/google/cloud/retail/v2/Product.java | 48 +- .../cloud/retail/v2/ProductLevelConfig.java | 112 +- .../v2/ProductLevelConfigOrBuilder.java | 32 +- .../cloud/retail/v2/ProductOrBuilder.java | 12 +- .../cloud/retail/v2/PurgeConfigProto.java | 22 +- .../retail/v2/PurgeUserEventsRequest.java | 28 +- .../v2/PurgeUserEventsRequestOrBuilder.java | 8 +- .../v2/RemoveFulfillmentPlacesRequest.java | 21 +- ...moveFulfillmentPlacesRequestOrBuilder.java | 6 +- .../google/cloud/retail/v2/SearchRequest.java | 2769 ++++++++++++++--- .../retail/v2/SearchRequestOrBuilder.java | 226 +- .../cloud/retail/v2/SearchResponse.java | 56 +- .../retail/v2/SearchResponseOrBuilder.java | 16 +- .../cloud/retail/v2/SearchServiceProto.java | 191 +- .../cloud/retail/v2/UpdateProductRequest.java | 48 + .../v2/UpdateProductRequestOrBuilder.java | 12 + .../com/google/cloud/retail/v2/UserEvent.java | 104 +- .../cloud/retail/v2/UserEventOrBuilder.java | 25 +- .../com/google/cloud/retail/v2/UserInfo.java | 35 +- .../cloud/retail/v2/UserInfoOrBuilder.java | 10 +- .../google/cloud/retail/v2/catalog.proto | 16 +- .../proto/google/cloud/retail/v2/common.proto | 36 +- .../cloud/retail/v2/completion_service.proto | 15 +- .../cloud/retail/v2/import_config.proto | 11 +- .../cloud/retail/v2/prediction_service.proto | 16 +- .../google/cloud/retail/v2/product.proto | 4 +- .../cloud/retail/v2/product_service.proto | 36 +- .../google/cloud/retail/v2/purge_config.proto | 5 +- .../cloud/retail/v2/search_service.proto | 108 +- .../google/cloud/retail/v2/user_event.proto | 9 +- 58 files changed, 3795 insertions(+), 1149 deletions(-) diff --git a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/ProductServiceClient.java b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/ProductServiceClient.java index fbbcdf4e..f8a2b01c 100644 --- a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/ProductServiceClient.java +++ b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/ProductServiceClient.java @@ -618,6 +618,9 @@ public final UnaryCallable listProduc * are NOT supported. If not set, all supported fields (the fields that are neither immutable * nor output only) are updated. *

If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned. + *

The attribute key can be updated by setting the mask path as "attributes.${key_name}". + * If a key name is present in the mask but not in the patching product from the request, this + * key will be deleted after the update. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ public final Product updateProduct(Product product, FieldMask updateMask) { @@ -816,8 +819,7 @@ public final UnaryCallable deleteProductCallable() /** * Bulk import of multiple [Product][google.cloud.retail.v2.Product]s. * - *

Request processing may be synchronous. No partial updating is supported. Non-existing items - * are created. + *

Request processing may be synchronous. Non-existing items are created. * *

Note that it is possible for a subset of the [Product][google.cloud.retail.v2.Product]s to * be successfully updated. @@ -854,8 +856,7 @@ public final OperationFuture importProdu /** * Bulk import of multiple [Product][google.cloud.retail.v2.Product]s. * - *

Request processing may be synchronous. No partial updating is supported. Non-existing items - * are created. + *

Request processing may be synchronous. Non-existing items are created. * *

Note that it is possible for a subset of the [Product][google.cloud.retail.v2.Product]s to * be successfully updated. @@ -892,8 +893,7 @@ public final OperationFuture importProdu /** * Bulk import of multiple [Product][google.cloud.retail.v2.Product]s. * - *

Request processing may be synchronous. No partial updating is supported. Non-existing items - * are created. + *

Request processing may be synchronous. Non-existing items are created. * *

Note that it is possible for a subset of the [Product][google.cloud.retail.v2.Product]s to * be successfully updated. @@ -957,8 +957,8 @@ public final UnaryCallable importProductsCalla * *

Pre-existing inventory information can only be updated with * [SetInventory][google.cloud.retail.v2.ProductService.SetInventory], - * [AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces], and - * [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. + * [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces], + * and [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. * *

This feature is only available for users who have Retail Search enabled. Please enable * Retail Search on Cloud Console before using this feature. @@ -1071,8 +1071,8 @@ public final OperationFuture setInve * *

Pre-existing inventory information can only be updated with * [SetInventory][google.cloud.retail.v2.ProductService.SetInventory], - * [AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces], and - * [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. + * [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces], + * and [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. * *

This feature is only available for users who have Retail Search enabled. Please enable * Retail Search on Cloud Console before using this feature. @@ -1134,8 +1134,8 @@ public final OperationFuture setInve * *

Pre-existing inventory information can only be updated with * [SetInventory][google.cloud.retail.v2.ProductService.SetInventory], - * [AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces], and - * [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. + * [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces], + * and [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. * *

This feature is only available for users who have Retail Search enabled. Please enable * Retail Search on Cloud Console before using this feature. @@ -1197,8 +1197,8 @@ public final OperationFuture setInve * *

Pre-existing inventory information can only be updated with * [SetInventory][google.cloud.retail.v2.ProductService.SetInventory], - * [AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces], and - * [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. + * [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces], + * and [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. * *

This feature is only available for users who have Retail Search enabled. Please enable * Retail Search on Cloud Console before using this feature. diff --git a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/SearchServiceClient.java b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/SearchServiceClient.java index 19202adc..2821062e 100644 --- a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/SearchServiceClient.java +++ b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/SearchServiceClient.java @@ -67,6 +67,8 @@ * .addAllVariantRollupKeys(new ArrayList()) * .addAllPageCategories(new ArrayList()) * .setPersonalizationSpec(SearchRequest.PersonalizationSpec.newBuilder().build()) + * .putAllLabels(new HashMap()) + * .setSpellCorrectionSpec(SearchRequest.SpellCorrectionSpec.newBuilder().build()) * .build(); * for (SearchResponse.SearchResult element : searchServiceClient.search(request).iterateAll()) { * // doThingsWith(element); @@ -208,6 +210,8 @@ public SearchServiceStub getStub() { * .addAllVariantRollupKeys(new ArrayList()) * .addAllPageCategories(new ArrayList()) * .setPersonalizationSpec(SearchRequest.PersonalizationSpec.newBuilder().build()) + * .putAllLabels(new HashMap()) + * .setSpellCorrectionSpec(SearchRequest.SpellCorrectionSpec.newBuilder().build()) * .build(); * for (SearchResponse.SearchResult element : searchServiceClient.search(request).iterateAll()) { * // doThingsWith(element); @@ -256,6 +260,8 @@ public final SearchPagedResponse search(SearchRequest request) { * .addAllVariantRollupKeys(new ArrayList()) * .addAllPageCategories(new ArrayList()) * .setPersonalizationSpec(SearchRequest.PersonalizationSpec.newBuilder().build()) + * .putAllLabels(new HashMap()) + * .setSpellCorrectionSpec(SearchRequest.SpellCorrectionSpec.newBuilder().build()) * .build(); * ApiFuture future = * searchServiceClient.searchPagedCallable().futureCall(request); @@ -304,6 +310,8 @@ public final UnaryCallable searchPagedCallab * .addAllVariantRollupKeys(new ArrayList()) * .addAllPageCategories(new ArrayList()) * .setPersonalizationSpec(SearchRequest.PersonalizationSpec.newBuilder().build()) + * .putAllLabels(new HashMap()) + * .setSpellCorrectionSpec(SearchRequest.SpellCorrectionSpec.newBuilder().build()) * .build(); * while (true) { * SearchResponse response = searchServiceClient.searchCallable().call(request); diff --git a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/UserEventServiceClient.java b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/UserEventServiceClient.java index c18b6071..0303d673 100644 --- a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/UserEventServiceClient.java +++ b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/UserEventServiceClient.java @@ -293,7 +293,7 @@ public final UnaryCallable collectUserEventCa * try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) { * PurgeUserEventsRequest request = * PurgeUserEventsRequest.newBuilder() - * .setParent("parent-995424086") + * .setParent(CatalogName.of("[PROJECT]", "[LOCATION]", "[CATALOG]").toString()) * .setFilter("filter-1274492040") * .setForce(true) * .build(); @@ -323,7 +323,7 @@ public final OperationFuture purgeUserEv * try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) { * PurgeUserEventsRequest request = * PurgeUserEventsRequest.newBuilder() - * .setParent("parent-995424086") + * .setParent(CatalogName.of("[PROJECT]", "[LOCATION]", "[CATALOG]").toString()) * .setFilter("filter-1274492040") * .setForce(true) * .build(); @@ -353,7 +353,7 @@ public final OperationFuture purgeUserEv * try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) { * PurgeUserEventsRequest request = * PurgeUserEventsRequest.newBuilder() - * .setParent("parent-995424086") + * .setParent(CatalogName.of("[PROJECT]", "[LOCATION]", "[CATALOG]").toString()) * .setFilter("filter-1274492040") * .setForce(true) * .build(); diff --git a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/package-info.java b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/package-info.java index fefdbec6..d2822d28 100644 --- a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/package-info.java +++ b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/package-info.java @@ -139,6 +139,8 @@ * .addAllVariantRollupKeys(new ArrayList()) * .addAllPageCategories(new ArrayList()) * .setPersonalizationSpec(SearchRequest.PersonalizationSpec.newBuilder().build()) + * .putAllLabels(new HashMap()) + * .setSpellCorrectionSpec(SearchRequest.SpellCorrectionSpec.newBuilder().build()) * .build(); * for (SearchResponse.SearchResult element : searchServiceClient.search(request).iterateAll()) { * // doThingsWith(element); diff --git a/google-cloud-retail/src/test/java/com/google/cloud/retail/v2/SearchServiceClientTest.java b/google-cloud-retail/src/test/java/com/google/cloud/retail/v2/SearchServiceClientTest.java index 0aa386e7..86e6d25c 100644 --- a/google-cloud-retail/src/test/java/com/google/cloud/retail/v2/SearchServiceClientTest.java +++ b/google-cloud-retail/src/test/java/com/google/cloud/retail/v2/SearchServiceClientTest.java @@ -31,6 +31,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.UUID; import javax.annotation.Generated; @@ -109,6 +110,8 @@ public void searchTest() throws Exception { .addAllVariantRollupKeys(new ArrayList()) .addAllPageCategories(new ArrayList()) .setPersonalizationSpec(SearchRequest.PersonalizationSpec.newBuilder().build()) + .putAllLabels(new HashMap()) + .setSpellCorrectionSpec(SearchRequest.SpellCorrectionSpec.newBuilder().build()) .build(); SearchPagedResponse pagedListResponse = client.search(request); @@ -143,6 +146,8 @@ public void searchTest() throws Exception { Assert.assertEquals(request.getPageCategoriesList(), actualRequest.getPageCategoriesList()); Assert.assertEquals(request.getSearchMode(), actualRequest.getSearchMode()); Assert.assertEquals(request.getPersonalizationSpec(), actualRequest.getPersonalizationSpec()); + Assert.assertEquals(request.getLabelsMap(), actualRequest.getLabelsMap()); + Assert.assertEquals(request.getSpellCorrectionSpec(), actualRequest.getSpellCorrectionSpec()); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), @@ -176,6 +181,8 @@ public void searchExceptionTest() throws Exception { .addAllVariantRollupKeys(new ArrayList()) .addAllPageCategories(new ArrayList()) .setPersonalizationSpec(SearchRequest.PersonalizationSpec.newBuilder().build()) + .putAllLabels(new HashMap()) + .setSpellCorrectionSpec(SearchRequest.SpellCorrectionSpec.newBuilder().build()) .build(); client.search(request); Assert.fail("No exception raised"); diff --git a/google-cloud-retail/src/test/java/com/google/cloud/retail/v2/UserEventServiceClientTest.java b/google-cloud-retail/src/test/java/com/google/cloud/retail/v2/UserEventServiceClientTest.java index 5638fdc5..27ddb0bc 100644 --- a/google-cloud-retail/src/test/java/com/google/cloud/retail/v2/UserEventServiceClientTest.java +++ b/google-cloud-retail/src/test/java/com/google/cloud/retail/v2/UserEventServiceClientTest.java @@ -220,7 +220,7 @@ public void purgeUserEventsTest() throws Exception { PurgeUserEventsRequest request = PurgeUserEventsRequest.newBuilder() - .setParent("parent-995424086") + .setParent(CatalogName.of("[PROJECT]", "[LOCATION]", "[CATALOG]").toString()) .setFilter("filter-1274492040") .setForce(true) .build(); @@ -249,7 +249,7 @@ public void purgeUserEventsExceptionTest() throws Exception { try { PurgeUserEventsRequest request = PurgeUserEventsRequest.newBuilder() - .setParent("parent-995424086") + .setParent(CatalogName.of("[PROJECT]", "[LOCATION]", "[CATALOG]").toString()) .setFilter("filter-1274492040") .setForce(true) .build(); diff --git a/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductServiceGrpc.java b/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductServiceGrpc.java index c9b263d2..cb02d5cb 100644 --- a/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductServiceGrpc.java +++ b/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductServiceGrpc.java @@ -648,7 +648,7 @@ public void deleteProduct( * *

      * Bulk import of multiple [Product][google.cloud.retail.v2.Product]s.
-     * Request processing may be synchronous. No partial updating is supported.
+     * Request processing may be synchronous.
      * Non-existing items are created.
      * Note that it is possible for a subset of the
      * [Product][google.cloud.retail.v2.Product]s to be successfully updated.
@@ -694,7 +694,7 @@ public void importProducts(
      * then any existing inventory information will be preserved.
      * Pre-existing inventory information can only be updated with
      * [SetInventory][google.cloud.retail.v2.ProductService.SetInventory],
-     * [AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces],
+     * [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces],
      * and
      * [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces].
      * This feature is only available for users who have Retail Search enabled.
@@ -993,7 +993,7 @@ public void deleteProduct(
      *
      * 
      * Bulk import of multiple [Product][google.cloud.retail.v2.Product]s.
-     * Request processing may be synchronous. No partial updating is supported.
+     * Request processing may be synchronous.
      * Non-existing items are created.
      * Note that it is possible for a subset of the
      * [Product][google.cloud.retail.v2.Product]s to be successfully updated.
@@ -1041,7 +1041,7 @@ public void importProducts(
      * then any existing inventory information will be preserved.
      * Pre-existing inventory information can only be updated with
      * [SetInventory][google.cloud.retail.v2.ProductService.SetInventory],
-     * [AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces],
+     * [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces],
      * and
      * [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces].
      * This feature is only available for users who have Retail Search enabled.
@@ -1264,7 +1264,7 @@ public com.google.protobuf.Empty deleteProduct(
      *
      * 
      * Bulk import of multiple [Product][google.cloud.retail.v2.Product]s.
-     * Request processing may be synchronous. No partial updating is supported.
+     * Request processing may be synchronous.
      * Non-existing items are created.
      * Note that it is possible for a subset of the
      * [Product][google.cloud.retail.v2.Product]s to be successfully updated.
@@ -1309,7 +1309,7 @@ public com.google.longrunning.Operation importProducts(
      * then any existing inventory information will be preserved.
      * Pre-existing inventory information can only be updated with
      * [SetInventory][google.cloud.retail.v2.ProductService.SetInventory],
-     * [AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces],
+     * [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces],
      * and
      * [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces].
      * This feature is only available for users who have Retail Search enabled.
@@ -1518,7 +1518,7 @@ protected ProductServiceFutureStub build(
      *
      * 
      * Bulk import of multiple [Product][google.cloud.retail.v2.Product]s.
-     * Request processing may be synchronous. No partial updating is supported.
+     * Request processing may be synchronous.
      * Non-existing items are created.
      * Note that it is possible for a subset of the
      * [Product][google.cloud.retail.v2.Product]s to be successfully updated.
@@ -1563,7 +1563,7 @@ protected ProductServiceFutureStub build(
      * then any existing inventory information will be preserved.
      * Pre-existing inventory information can only be updated with
      * [SetInventory][google.cloud.retail.v2.ProductService.SetInventory],
-     * [AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces],
+     * [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces],
      * and
      * [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces].
      * This feature is only available for users who have Retail Search enabled.
diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddFulfillmentPlacesMetadata.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddFulfillmentPlacesMetadata.java
index 13a4eebd..4f8a02f8 100644
--- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddFulfillmentPlacesMetadata.java
+++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddFulfillmentPlacesMetadata.java
@@ -24,7 +24,8 @@
  * 
  * Metadata related to the progress of the AddFulfillmentPlaces operation.
  * Currently empty because there is no meaningful metadata populated from the
- * [AddFulfillmentPlaces][] method.
+ * [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces]
+ * method.
  * 
* * Protobuf type {@code google.cloud.retail.v2.AddFulfillmentPlacesMetadata} @@ -263,7 +264,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build *
    * Metadata related to the progress of the AddFulfillmentPlaces operation.
    * Currently empty because there is no meaningful metadata populated from the
-   * [AddFulfillmentPlaces][] method.
+   * [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces]
+   * method.
    * 
* * Protobuf type {@code google.cloud.retail.v2.AddFulfillmentPlacesMetadata} diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddFulfillmentPlacesRequest.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddFulfillmentPlacesRequest.java index a1a3e847..01f62d8d 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddFulfillmentPlacesRequest.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddFulfillmentPlacesRequest.java @@ -22,7 +22,9 @@ * * *
- * Request message for [AddFulfillmentPlaces][] method.
+ * Request message for
+ * [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces]
+ * method.
  * 
* * Protobuf type {@code google.cloud.retail.v2.AddFulfillmentPlacesRequest} @@ -692,7 +694,9 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build * * *
-   * Request message for [AddFulfillmentPlaces][] method.
+   * Request message for
+   * [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces]
+   * method.
    * 
* * Protobuf type {@code google.cloud.retail.v2.AddFulfillmentPlacesRequest} diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddFulfillmentPlacesResponse.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddFulfillmentPlacesResponse.java index 05268afe..bd50791f 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddFulfillmentPlacesResponse.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddFulfillmentPlacesResponse.java @@ -23,7 +23,8 @@ * *
  * Response of the AddFulfillmentPlacesRequest.  Currently empty because
- * there is no meaningful response populated from the [AddFulfillmentPlaces][]
+ * there is no meaningful response populated from the
+ * [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces]
  * method.
  * 
* @@ -262,7 +263,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build * *
    * Response of the AddFulfillmentPlacesRequest.  Currently empty because
-   * there is no meaningful response populated from the [AddFulfillmentPlaces][]
+   * there is no meaningful response populated from the
+   * [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces]
    * method.
    * 
* diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesMetadata.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesMetadata.java index 3d9f94a4..65f696c9 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesMetadata.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesMetadata.java @@ -24,7 +24,8 @@ *
  * Metadata related to the progress of the AddLocalInventories operation.
  * Currently empty because there is no meaningful metadata populated from the
- * [AddLocalInventories][] method.
+ * [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories]
+ * method.
  * 
* * Protobuf type {@code google.cloud.retail.v2.AddLocalInventoriesMetadata} @@ -263,7 +264,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build *
    * Metadata related to the progress of the AddLocalInventories operation.
    * Currently empty because there is no meaningful metadata populated from the
-   * [AddLocalInventories][] method.
+   * [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories]
+   * method.
    * 
* * Protobuf type {@code google.cloud.retail.v2.AddLocalInventoriesMetadata} diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesRequest.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesRequest.java index c05a4ddd..0fc16dc2 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesRequest.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesRequest.java @@ -22,7 +22,9 @@ * * *
- * Request message for [AddLocalInventories][] method.
+ * Request message for
+ * [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories]
+ * method.
  * 
* * Protobuf type {@code google.cloud.retail.v2.AddLocalInventoriesRequest} @@ -680,7 +682,9 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build * * *
-   * Request message for [AddLocalInventories][] method.
+   * Request message for
+   * [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories]
+   * method.
    * 
* * Protobuf type {@code google.cloud.retail.v2.AddLocalInventoriesRequest} diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesResponse.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesResponse.java index ac3208f5..1a83cd1b 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesResponse.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesResponse.java @@ -22,8 +22,11 @@ * * *
- * Response of the [AddLocalInventories][] API.  Currently empty because
- * there is no meaningful response populated from the [AddLocalInventories][]
+ * Response of the
+ * [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories]
+ * API.  Currently empty because there is no meaningful response populated from
+ * the
+ * [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories]
  * method.
  * 
* @@ -261,8 +264,11 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build * * *
-   * Response of the [AddLocalInventories][] API.  Currently empty because
-   * there is no meaningful response populated from the [AddLocalInventories][]
+   * Response of the
+   * [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories]
+   * API.  Currently empty because there is no meaningful response populated from
+   * the
+   * [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories]
    * method.
    * 
* diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CommonProto.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CommonProto.java index 887dfeb0..e278bdd4 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CommonProto.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CommonProto.java @@ -89,43 +89,43 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "behavior.proto\032\037google/protobuf/timestam" + "p.proto\"/\n\010Audience\022\017\n\007genders\030\001 \003(\t\022\022\n\n" + "age_groups\030\002 \003(\t\"3\n\tColorInfo\022\026\n\016color_f" - + "amilies\030\001 \003(\t\022\016\n\006colors\030\002 \003(\t\"~\n\017CustomA" - + "ttribute\022\014\n\004text\030\001 \003(\t\022\017\n\007numbers\030\002 \003(\001\022" - + "\027\n\nsearchable\030\003 \001(\010H\000\210\001\001\022\026\n\tindexable\030\004 " - + "\001(\010H\001\210\001\001B\r\n\013_searchableB\014\n\n_indexable\"2\n" - + "\017FulfillmentInfo\022\014\n\004type\030\001 \001(\t\022\021\n\tplace_" - + "ids\030\002 \003(\t\"8\n\005Image\022\020\n\003uri\030\001 \001(\tB\003\340A\002\022\016\n\006" - + "height\030\002 \001(\005\022\r\n\005width\030\003 \001(\005\"x\n\010Interval\022" - + "\021\n\007minimum\030\001 \001(\001H\000\022\033\n\021exclusive_minimum\030" - + "\002 \001(\001H\000\022\021\n\007maximum\030\003 \001(\001H\001\022\033\n\021exclusive_" - + "maximum\030\004 \001(\001H\001B\005\n\003minB\005\n\003max\"\211\003\n\tPriceI" - + "nfo\022\025\n\rcurrency_code\030\001 \001(\t\022\r\n\005price\030\002 \001(" - + "\002\022\026\n\016original_price\030\003 \001(\002\022\014\n\004cost\030\004 \001(\002\022" - + "8\n\024price_effective_time\030\005 \001(\0132\032.google.p" - + "rotobuf.Timestamp\0225\n\021price_expire_time\030\006" - + " \001(\0132\032.google.protobuf.Timestamp\022F\n\013pric" - + "e_range\030\007 \001(\0132,.google.cloud.retail.v2.P" - + "riceInfo.PriceRangeB\003\340A\003\032w\n\nPriceRange\022/" - + "\n\005price\030\001 \001(\0132 .google.cloud.retail.v2.I" - + "nterval\0228\n\016original_price\030\002 \001(\0132 .google" - + ".cloud.retail.v2.Interval\"P\n\006Rating\022\024\n\014r" - + "ating_count\030\001 \001(\005\022\026\n\016average_rating\030\002 \001(" - + "\002\022\030\n\020rating_histogram\030\003 \003(\005\"`\n\010UserInfo\022" - + "\017\n\007user_id\030\001 \001(\t\022\022\n\nip_address\030\002 \001(\t\022\022\n\n" - + "user_agent\030\003 \001(\t\022\033\n\023direct_user_request\030" - + "\004 \001(\010\"\241\002\n\016LocalInventory\022\020\n\010place_id\030\001 \001" - + "(\t\0225\n\nprice_info\030\002 \001(\0132!.google.cloud.re" - + "tail.v2.PriceInfo\022J\n\nattributes\030\003 \003(\01326." - + "google.cloud.retail.v2.LocalInventory.At" - + "tributesEntry\022\036\n\021fulfillment_types\030\004 \003(\t" - + "B\003\340A\004\032Z\n\017AttributesEntry\022\013\n\003key\030\001 \001(\t\0226\n" - + "\005value\030\002 \001(\0132\'.google.cloud.retail.v2.Cu" - + "stomAttribute:\0028\001B\300\001\n\032com.google.cloud.r" - + "etail.v2B\013CommonProtoP\001Z * * string dataset = 6; @@ -523,9 +523,9 @@ public java.lang.String getDataset() { * events. If leave empty, it will use the "user-data". * Current supported values: * * user-data - * * cloud-retail - * This option requires additional allowlisting. Before using cloud-retail, - * contact Cloud Retail support team first. + * * cloud-retail: + * This option requires enabling auto-learning function first. See + * [guidelines](https://cloud.google.com/retail/docs/completion-overview#generated-completion-dataset). *
* * string dataset = 6; @@ -1737,9 +1737,9 @@ public Builder setDeviceTypeBytes(com.google.protobuf.ByteString value) { * events. If leave empty, it will use the "user-data". * Current supported values: * * user-data - * * cloud-retail - * This option requires additional allowlisting. Before using cloud-retail, - * contact Cloud Retail support team first. + * * cloud-retail: + * This option requires enabling auto-learning function first. See + * [guidelines](https://cloud.google.com/retail/docs/completion-overview#generated-completion-dataset). *
* * string dataset = 6; @@ -1768,9 +1768,9 @@ public java.lang.String getDataset() { * events. If leave empty, it will use the "user-data". * Current supported values: * * user-data - * * cloud-retail - * This option requires additional allowlisting. Before using cloud-retail, - * contact Cloud Retail support team first. + * * cloud-retail: + * This option requires enabling auto-learning function first. See + * [guidelines](https://cloud.google.com/retail/docs/completion-overview#generated-completion-dataset). *
* * string dataset = 6; @@ -1799,9 +1799,9 @@ public com.google.protobuf.ByteString getDatasetBytes() { * events. If leave empty, it will use the "user-data". * Current supported values: * * user-data - * * cloud-retail - * This option requires additional allowlisting. Before using cloud-retail, - * contact Cloud Retail support team first. + * * cloud-retail: + * This option requires enabling auto-learning function first. See + * [guidelines](https://cloud.google.com/retail/docs/completion-overview#generated-completion-dataset). *
* * string dataset = 6; @@ -1829,9 +1829,9 @@ public Builder setDataset(java.lang.String value) { * events. If leave empty, it will use the "user-data". * Current supported values: * * user-data - * * cloud-retail - * This option requires additional allowlisting. Before using cloud-retail, - * contact Cloud Retail support team first. + * * cloud-retail: + * This option requires enabling auto-learning function first. See + * [guidelines](https://cloud.google.com/retail/docs/completion-overview#generated-completion-dataset). * * * string dataset = 6; @@ -1855,9 +1855,9 @@ public Builder clearDataset() { * events. If leave empty, it will use the "user-data". * Current supported values: * * user-data - * * cloud-retail - * This option requires additional allowlisting. Before using cloud-retail, - * contact Cloud Retail support team first. + * * cloud-retail: + * This option requires enabling auto-learning function first. See + * [guidelines](https://cloud.google.com/retail/docs/completion-overview#generated-completion-dataset). * * * string dataset = 6; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CompleteQueryRequestOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CompleteQueryRequestOrBuilder.java index 77d441e0..b306a3ca 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CompleteQueryRequestOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CompleteQueryRequestOrBuilder.java @@ -241,9 +241,9 @@ public interface CompleteQueryRequestOrBuilder * events. If leave empty, it will use the "user-data". * Current supported values: * * user-data - * * cloud-retail - * This option requires additional allowlisting. Before using cloud-retail, - * contact Cloud Retail support team first. + * * cloud-retail: + * This option requires enabling auto-learning function first. See + * [guidelines](https://cloud.google.com/retail/docs/completion-overview#generated-completion-dataset). * * * string dataset = 6; @@ -262,9 +262,9 @@ public interface CompleteQueryRequestOrBuilder * events. If leave empty, it will use the "user-data". * Current supported values: * * user-data - * * cloud-retail - * This option requires additional allowlisting. Before using cloud-retail, - * contact Cloud Retail support team first. + * * cloud-retail: + * This option requires enabling auto-learning function first. See + * [guidelines](https://cloud.google.com/retail/docs/completion-overview#generated-completion-dataset). * * * string dataset = 6; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CompleteQueryResponse.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CompleteQueryResponse.java index adb93823..63d64471 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CompleteQueryResponse.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CompleteQueryResponse.java @@ -188,7 +188,8 @@ public interface CompletionResultOrBuilder * * For "user-data", the attributes are additional custom attributes * ingested through BigQuery. * * For "cloud-retail", the attributes are product attributes generated - * by Cloud Retail. + * by Cloud Retail. This is an experimental feature. Contact Retail Search + * support team if you are interested in enabling it. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -202,7 +203,8 @@ public interface CompletionResultOrBuilder * * For "user-data", the attributes are additional custom attributes * ingested through BigQuery. * * For "cloud-retail", the attributes are product attributes generated - * by Cloud Retail. + * by Cloud Retail. This is an experimental feature. Contact Retail Search + * support team if you are interested in enabling it. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -219,7 +221,8 @@ public interface CompletionResultOrBuilder * * For "user-data", the attributes are additional custom attributes * ingested through BigQuery. * * For "cloud-retail", the attributes are product attributes generated - * by Cloud Retail. + * by Cloud Retail. This is an experimental feature. Contact Retail Search + * support team if you are interested in enabling it. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -233,7 +236,8 @@ public interface CompletionResultOrBuilder * * For "user-data", the attributes are additional custom attributes * ingested through BigQuery. * * For "cloud-retail", the attributes are product attributes generated - * by Cloud Retail. + * by Cloud Retail. This is an experimental feature. Contact Retail Search + * support team if you are interested in enabling it. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -252,7 +256,8 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * * For "user-data", the attributes are additional custom attributes * ingested through BigQuery. * * For "cloud-retail", the attributes are product attributes generated - * by Cloud Retail. + * by Cloud Retail. This is an experimental feature. Contact Retail Search + * support team if you are interested in enabling it. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -473,7 +478,8 @@ public int getAttributesCount() { * * For "user-data", the attributes are additional custom attributes * ingested through BigQuery. * * For "cloud-retail", the attributes are product attributes generated - * by Cloud Retail. + * by Cloud Retail. This is an experimental feature. Contact Retail Search + * support team if you are interested in enabling it. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -500,7 +506,8 @@ public boolean containsAttributes(java.lang.String key) { * * For "user-data", the attributes are additional custom attributes * ingested through BigQuery. * * For "cloud-retail", the attributes are product attributes generated - * by Cloud Retail. + * by Cloud Retail. This is an experimental feature. Contact Retail Search + * support team if you are interested in enabling it. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -518,7 +525,8 @@ public boolean containsAttributes(java.lang.String key) { * * For "user-data", the attributes are additional custom attributes * ingested through BigQuery. * * For "cloud-retail", the attributes are product attributes generated - * by Cloud Retail. + * by Cloud Retail. This is an experimental feature. Contact Retail Search + * support team if you are interested in enabling it. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -541,7 +549,8 @@ public com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * * For "user-data", the attributes are additional custom attributes * ingested through BigQuery. * * For "cloud-retail", the attributes are product attributes generated - * by Cloud Retail. + * by Cloud Retail. This is an experimental feature. Contact Retail Search + * support team if you are interested in enabling it. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -1081,7 +1090,8 @@ public int getAttributesCount() { * * For "user-data", the attributes are additional custom attributes * ingested through BigQuery. * * For "cloud-retail", the attributes are product attributes generated - * by Cloud Retail. + * by Cloud Retail. This is an experimental feature. Contact Retail Search + * support team if you are interested in enabling it. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -1108,7 +1118,8 @@ public boolean containsAttributes(java.lang.String key) { * * For "user-data", the attributes are additional custom attributes * ingested through BigQuery. * * For "cloud-retail", the attributes are product attributes generated - * by Cloud Retail. + * by Cloud Retail. This is an experimental feature. Contact Retail Search + * support team if you are interested in enabling it. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -1126,7 +1137,8 @@ public boolean containsAttributes(java.lang.String key) { * * For "user-data", the attributes are additional custom attributes * ingested through BigQuery. * * For "cloud-retail", the attributes are product attributes generated - * by Cloud Retail. + * by Cloud Retail. This is an experimental feature. Contact Retail Search + * support team if you are interested in enabling it. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -1149,7 +1161,8 @@ public com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * * For "user-data", the attributes are additional custom attributes * ingested through BigQuery. * * For "cloud-retail", the attributes are product attributes generated - * by Cloud Retail. + * by Cloud Retail. This is an experimental feature. Contact Retail Search + * support team if you are interested in enabling it. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -1179,7 +1192,8 @@ public Builder clearAttributes() { * * For "user-data", the attributes are additional custom attributes * ingested through BigQuery. * * For "cloud-retail", the attributes are product attributes generated - * by Cloud Retail. + * by Cloud Retail. This is an experimental feature. Contact Retail Search + * support team if you are interested in enabling it. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -1205,7 +1219,8 @@ public Builder removeAttributes(java.lang.String key) { * * For "user-data", the attributes are additional custom attributes * ingested through BigQuery. * * For "cloud-retail", the attributes are product attributes generated - * by Cloud Retail. + * by Cloud Retail. This is an experimental feature. Contact Retail Search + * support team if you are interested in enabling it. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -1230,7 +1245,8 @@ public Builder putAttributes( * * For "user-data", the attributes are additional custom attributes * ingested through BigQuery. * * For "cloud-retail", the attributes are product attributes generated - * by Cloud Retail. + * by Cloud Retail. This is an experimental feature. Contact Retail Search + * support team if you are interested in enabling it. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CustomAttribute.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CustomAttribute.java index a3fe054d..09f6ebc7 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CustomAttribute.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CustomAttribute.java @@ -313,22 +313,27 @@ public double getNumbers(int index) { * * *
-   * This field will only be used when
+   * This field is normally ignored unless
    * [AttributesConfig.attribute_config_level][] of the
-   * [Catalog][google.cloud.retail.v2.Catalog] is
-   * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are
-   * searchable by text queries in
+   * [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated
+   * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level
+   * attribute configuration, see [Configuration
+   * modes](https://cloud.google.com/retail/docs/attribute-config#config-modes).
+   * If true, custom attribute values are searchable by text queries in
    * [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
    * This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
    * Only set if type [text][google.cloud.retail.v2.CustomAttribute.text] is
    * set. Otherwise, a INVALID_ARGUMENT error is returned.
    * 
* - * optional bool searchable = 3; + * optional bool searchable = 3 [deprecated = true]; * + * @deprecated google.cloud.retail.v2.CustomAttribute.searchable is deprecated. See + * google/cloud/retail/v2/common.proto;l=130 * @return Whether the searchable field is set. */ @java.lang.Override + @java.lang.Deprecated public boolean hasSearchable() { return ((bitField0_ & 0x00000001) != 0); } @@ -336,22 +341,27 @@ public boolean hasSearchable() { * * *
-   * This field will only be used when
+   * This field is normally ignored unless
    * [AttributesConfig.attribute_config_level][] of the
-   * [Catalog][google.cloud.retail.v2.Catalog] is
-   * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are
-   * searchable by text queries in
+   * [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated
+   * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level
+   * attribute configuration, see [Configuration
+   * modes](https://cloud.google.com/retail/docs/attribute-config#config-modes).
+   * If true, custom attribute values are searchable by text queries in
    * [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
    * This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
    * Only set if type [text][google.cloud.retail.v2.CustomAttribute.text] is
    * set. Otherwise, a INVALID_ARGUMENT error is returned.
    * 
* - * optional bool searchable = 3; + * optional bool searchable = 3 [deprecated = true]; * + * @deprecated google.cloud.retail.v2.CustomAttribute.searchable is deprecated. See + * google/cloud/retail/v2/common.proto;l=130 * @return The searchable. */ @java.lang.Override + @java.lang.Deprecated public boolean getSearchable() { return searchable_; } @@ -362,11 +372,14 @@ public boolean getSearchable() { * * *
-   * This field will only be used when
+   * This field is normally ignored unless
    * [AttributesConfig.attribute_config_level][] of the
-   * [Catalog][google.cloud.retail.v2.Catalog] is
-   * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are
-   * indexed, so that it can be filtered, faceted or boosted in
+   * [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated
+   * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level
+   * attribute configuration, see [Configuration
+   * modes](https://cloud.google.com/retail/docs/attribute-config#config-modes).
+   * If true, custom attribute values are indexed, so that they can be filtered,
+   * faceted or boosted in
    * [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
    * This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
    * See [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter],
@@ -376,11 +389,14 @@ public boolean getSearchable() {
    * for more details.
    * 
* - * optional bool indexable = 4; + * optional bool indexable = 4 [deprecated = true]; * + * @deprecated google.cloud.retail.v2.CustomAttribute.indexable is deprecated. See + * google/cloud/retail/v2/common.proto;l=149 * @return Whether the indexable field is set. */ @java.lang.Override + @java.lang.Deprecated public boolean hasIndexable() { return ((bitField0_ & 0x00000002) != 0); } @@ -388,11 +404,14 @@ public boolean hasIndexable() { * * *
-   * This field will only be used when
+   * This field is normally ignored unless
    * [AttributesConfig.attribute_config_level][] of the
-   * [Catalog][google.cloud.retail.v2.Catalog] is
-   * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are
-   * indexed, so that it can be filtered, faceted or boosted in
+   * [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated
+   * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level
+   * attribute configuration, see [Configuration
+   * modes](https://cloud.google.com/retail/docs/attribute-config#config-modes).
+   * If true, custom attribute values are indexed, so that they can be filtered,
+   * faceted or boosted in
    * [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
    * This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
    * See [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter],
@@ -402,11 +421,14 @@ public boolean hasIndexable() {
    * for more details.
    * 
* - * optional bool indexable = 4; + * optional bool indexable = 4 [deprecated = true]; * + * @deprecated google.cloud.retail.v2.CustomAttribute.indexable is deprecated. See + * google/cloud/retail/v2/common.proto;l=149 * @return The indexable. */ @java.lang.Override + @java.lang.Deprecated public boolean getIndexable() { return indexable_; } @@ -1217,22 +1239,27 @@ public Builder clearNumbers() { * * *
-     * This field will only be used when
+     * This field is normally ignored unless
      * [AttributesConfig.attribute_config_level][] of the
-     * [Catalog][google.cloud.retail.v2.Catalog] is
-     * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are
-     * searchable by text queries in
+     * [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated
+     * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level
+     * attribute configuration, see [Configuration
+     * modes](https://cloud.google.com/retail/docs/attribute-config#config-modes).
+     * If true, custom attribute values are searchable by text queries in
      * [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
      * This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
      * Only set if type [text][google.cloud.retail.v2.CustomAttribute.text] is
      * set. Otherwise, a INVALID_ARGUMENT error is returned.
      * 
* - * optional bool searchable = 3; + * optional bool searchable = 3 [deprecated = true]; * + * @deprecated google.cloud.retail.v2.CustomAttribute.searchable is deprecated. See + * google/cloud/retail/v2/common.proto;l=130 * @return Whether the searchable field is set. */ @java.lang.Override + @java.lang.Deprecated public boolean hasSearchable() { return ((bitField0_ & 0x00000004) != 0); } @@ -1240,22 +1267,27 @@ public boolean hasSearchable() { * * *
-     * This field will only be used when
+     * This field is normally ignored unless
      * [AttributesConfig.attribute_config_level][] of the
-     * [Catalog][google.cloud.retail.v2.Catalog] is
-     * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are
-     * searchable by text queries in
+     * [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated
+     * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level
+     * attribute configuration, see [Configuration
+     * modes](https://cloud.google.com/retail/docs/attribute-config#config-modes).
+     * If true, custom attribute values are searchable by text queries in
      * [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
      * This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
      * Only set if type [text][google.cloud.retail.v2.CustomAttribute.text] is
      * set. Otherwise, a INVALID_ARGUMENT error is returned.
      * 
* - * optional bool searchable = 3; + * optional bool searchable = 3 [deprecated = true]; * + * @deprecated google.cloud.retail.v2.CustomAttribute.searchable is deprecated. See + * google/cloud/retail/v2/common.proto;l=130 * @return The searchable. */ @java.lang.Override + @java.lang.Deprecated public boolean getSearchable() { return searchable_; } @@ -1263,22 +1295,27 @@ public boolean getSearchable() { * * *
-     * This field will only be used when
+     * This field is normally ignored unless
      * [AttributesConfig.attribute_config_level][] of the
-     * [Catalog][google.cloud.retail.v2.Catalog] is
-     * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are
-     * searchable by text queries in
+     * [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated
+     * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level
+     * attribute configuration, see [Configuration
+     * modes](https://cloud.google.com/retail/docs/attribute-config#config-modes).
+     * If true, custom attribute values are searchable by text queries in
      * [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
      * This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
      * Only set if type [text][google.cloud.retail.v2.CustomAttribute.text] is
      * set. Otherwise, a INVALID_ARGUMENT error is returned.
      * 
* - * optional bool searchable = 3; + * optional bool searchable = 3 [deprecated = true]; * + * @deprecated google.cloud.retail.v2.CustomAttribute.searchable is deprecated. See + * google/cloud/retail/v2/common.proto;l=130 * @param value The searchable to set. * @return This builder for chaining. */ + @java.lang.Deprecated public Builder setSearchable(boolean value) { bitField0_ |= 0x00000004; searchable_ = value; @@ -1289,21 +1326,26 @@ public Builder setSearchable(boolean value) { * * *
-     * This field will only be used when
+     * This field is normally ignored unless
      * [AttributesConfig.attribute_config_level][] of the
-     * [Catalog][google.cloud.retail.v2.Catalog] is
-     * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are
-     * searchable by text queries in
+     * [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated
+     * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level
+     * attribute configuration, see [Configuration
+     * modes](https://cloud.google.com/retail/docs/attribute-config#config-modes).
+     * If true, custom attribute values are searchable by text queries in
      * [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
      * This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
      * Only set if type [text][google.cloud.retail.v2.CustomAttribute.text] is
      * set. Otherwise, a INVALID_ARGUMENT error is returned.
      * 
* - * optional bool searchable = 3; + * optional bool searchable = 3 [deprecated = true]; * + * @deprecated google.cloud.retail.v2.CustomAttribute.searchable is deprecated. See + * google/cloud/retail/v2/common.proto;l=130 * @return This builder for chaining. */ + @java.lang.Deprecated public Builder clearSearchable() { bitField0_ = (bitField0_ & ~0x00000004); searchable_ = false; @@ -1316,11 +1358,14 @@ public Builder clearSearchable() { * * *
-     * This field will only be used when
+     * This field is normally ignored unless
      * [AttributesConfig.attribute_config_level][] of the
-     * [Catalog][google.cloud.retail.v2.Catalog] is
-     * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are
-     * indexed, so that it can be filtered, faceted or boosted in
+     * [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated
+     * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level
+     * attribute configuration, see [Configuration
+     * modes](https://cloud.google.com/retail/docs/attribute-config#config-modes).
+     * If true, custom attribute values are indexed, so that they can be filtered,
+     * faceted or boosted in
      * [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
      * This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
      * See [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter],
@@ -1330,11 +1375,14 @@ public Builder clearSearchable() {
      * for more details.
      * 
* - * optional bool indexable = 4; + * optional bool indexable = 4 [deprecated = true]; * + * @deprecated google.cloud.retail.v2.CustomAttribute.indexable is deprecated. See + * google/cloud/retail/v2/common.proto;l=149 * @return Whether the indexable field is set. */ @java.lang.Override + @java.lang.Deprecated public boolean hasIndexable() { return ((bitField0_ & 0x00000008) != 0); } @@ -1342,11 +1390,14 @@ public boolean hasIndexable() { * * *
-     * This field will only be used when
+     * This field is normally ignored unless
      * [AttributesConfig.attribute_config_level][] of the
-     * [Catalog][google.cloud.retail.v2.Catalog] is
-     * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are
-     * indexed, so that it can be filtered, faceted or boosted in
+     * [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated
+     * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level
+     * attribute configuration, see [Configuration
+     * modes](https://cloud.google.com/retail/docs/attribute-config#config-modes).
+     * If true, custom attribute values are indexed, so that they can be filtered,
+     * faceted or boosted in
      * [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
      * This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
      * See [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter],
@@ -1356,11 +1407,14 @@ public boolean hasIndexable() {
      * for more details.
      * 
* - * optional bool indexable = 4; + * optional bool indexable = 4 [deprecated = true]; * + * @deprecated google.cloud.retail.v2.CustomAttribute.indexable is deprecated. See + * google/cloud/retail/v2/common.proto;l=149 * @return The indexable. */ @java.lang.Override + @java.lang.Deprecated public boolean getIndexable() { return indexable_; } @@ -1368,11 +1422,14 @@ public boolean getIndexable() { * * *
-     * This field will only be used when
+     * This field is normally ignored unless
      * [AttributesConfig.attribute_config_level][] of the
-     * [Catalog][google.cloud.retail.v2.Catalog] is
-     * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are
-     * indexed, so that it can be filtered, faceted or boosted in
+     * [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated
+     * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level
+     * attribute configuration, see [Configuration
+     * modes](https://cloud.google.com/retail/docs/attribute-config#config-modes).
+     * If true, custom attribute values are indexed, so that they can be filtered,
+     * faceted or boosted in
      * [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
      * This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
      * See [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter],
@@ -1382,11 +1439,14 @@ public boolean getIndexable() {
      * for more details.
      * 
* - * optional bool indexable = 4; + * optional bool indexable = 4 [deprecated = true]; * + * @deprecated google.cloud.retail.v2.CustomAttribute.indexable is deprecated. See + * google/cloud/retail/v2/common.proto;l=149 * @param value The indexable to set. * @return This builder for chaining. */ + @java.lang.Deprecated public Builder setIndexable(boolean value) { bitField0_ |= 0x00000008; indexable_ = value; @@ -1397,11 +1457,14 @@ public Builder setIndexable(boolean value) { * * *
-     * This field will only be used when
+     * This field is normally ignored unless
      * [AttributesConfig.attribute_config_level][] of the
-     * [Catalog][google.cloud.retail.v2.Catalog] is
-     * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are
-     * indexed, so that it can be filtered, faceted or boosted in
+     * [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated
+     * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level
+     * attribute configuration, see [Configuration
+     * modes](https://cloud.google.com/retail/docs/attribute-config#config-modes).
+     * If true, custom attribute values are indexed, so that they can be filtered,
+     * faceted or boosted in
      * [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
      * This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
      * See [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter],
@@ -1411,10 +1474,13 @@ public Builder setIndexable(boolean value) {
      * for more details.
      * 
* - * optional bool indexable = 4; + * optional bool indexable = 4 [deprecated = true]; * + * @deprecated google.cloud.retail.v2.CustomAttribute.indexable is deprecated. See + * google/cloud/retail/v2/common.proto;l=149 * @return This builder for chaining. */ + @java.lang.Deprecated public Builder clearIndexable() { bitField0_ = (bitField0_ & ~0x00000008); indexable_ = false; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CustomAttributeOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CustomAttributeOrBuilder.java index d59184df..95528f27 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CustomAttributeOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CustomAttributeOrBuilder.java @@ -152,52 +152,65 @@ public interface CustomAttributeOrBuilder * * *
-   * This field will only be used when
+   * This field is normally ignored unless
    * [AttributesConfig.attribute_config_level][] of the
-   * [Catalog][google.cloud.retail.v2.Catalog] is
-   * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are
-   * searchable by text queries in
+   * [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated
+   * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level
+   * attribute configuration, see [Configuration
+   * modes](https://cloud.google.com/retail/docs/attribute-config#config-modes).
+   * If true, custom attribute values are searchable by text queries in
    * [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
    * This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
    * Only set if type [text][google.cloud.retail.v2.CustomAttribute.text] is
    * set. Otherwise, a INVALID_ARGUMENT error is returned.
    * 
* - * optional bool searchable = 3; + * optional bool searchable = 3 [deprecated = true]; * + * @deprecated google.cloud.retail.v2.CustomAttribute.searchable is deprecated. See + * google/cloud/retail/v2/common.proto;l=130 * @return Whether the searchable field is set. */ + @java.lang.Deprecated boolean hasSearchable(); /** * * *
-   * This field will only be used when
+   * This field is normally ignored unless
    * [AttributesConfig.attribute_config_level][] of the
-   * [Catalog][google.cloud.retail.v2.Catalog] is
-   * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are
-   * searchable by text queries in
+   * [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated
+   * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level
+   * attribute configuration, see [Configuration
+   * modes](https://cloud.google.com/retail/docs/attribute-config#config-modes).
+   * If true, custom attribute values are searchable by text queries in
    * [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
    * This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
    * Only set if type [text][google.cloud.retail.v2.CustomAttribute.text] is
    * set. Otherwise, a INVALID_ARGUMENT error is returned.
    * 
* - * optional bool searchable = 3; + * optional bool searchable = 3 [deprecated = true]; * + * @deprecated google.cloud.retail.v2.CustomAttribute.searchable is deprecated. See + * google/cloud/retail/v2/common.proto;l=130 * @return The searchable. */ + @java.lang.Deprecated boolean getSearchable(); /** * * *
-   * This field will only be used when
+   * This field is normally ignored unless
    * [AttributesConfig.attribute_config_level][] of the
-   * [Catalog][google.cloud.retail.v2.Catalog] is
-   * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are
-   * indexed, so that it can be filtered, faceted or boosted in
+   * [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated
+   * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level
+   * attribute configuration, see [Configuration
+   * modes](https://cloud.google.com/retail/docs/attribute-config#config-modes).
+   * If true, custom attribute values are indexed, so that they can be filtered,
+   * faceted or boosted in
    * [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
    * This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
    * See [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter],
@@ -207,20 +220,26 @@ public interface CustomAttributeOrBuilder
    * for more details.
    * 
* - * optional bool indexable = 4; + * optional bool indexable = 4 [deprecated = true]; * + * @deprecated google.cloud.retail.v2.CustomAttribute.indexable is deprecated. See + * google/cloud/retail/v2/common.proto;l=149 * @return Whether the indexable field is set. */ + @java.lang.Deprecated boolean hasIndexable(); /** * * *
-   * This field will only be used when
+   * This field is normally ignored unless
    * [AttributesConfig.attribute_config_level][] of the
-   * [Catalog][google.cloud.retail.v2.Catalog] is
-   * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are
-   * indexed, so that it can be filtered, faceted or boosted in
+   * [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated
+   * 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level
+   * attribute configuration, see [Configuration
+   * modes](https://cloud.google.com/retail/docs/attribute-config#config-modes).
+   * If true, custom attribute values are indexed, so that they can be filtered,
+   * faceted or boosted in
    * [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
    * This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
    * See [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter],
@@ -230,9 +249,12 @@ public interface CustomAttributeOrBuilder
    * for more details.
    * 
* - * optional bool indexable = 4; + * optional bool indexable = 4 [deprecated = true]; * + * @deprecated google.cloud.retail.v2.CustomAttribute.indexable is deprecated. See + * google/cloud/retail/v2/common.proto;l=149 * @return The indexable. */ + @java.lang.Deprecated boolean getIndexable(); } diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportMetadata.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportMetadata.java index 71924a32..73bbb33e 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportMetadata.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportMetadata.java @@ -305,7 +305,7 @@ public long getFailureCount() { * string request_id = 5 [deprecated = true]; * * @deprecated google.cloud.retail.v2.ImportMetadata.request_id is deprecated. See - * google/cloud/retail/v2/import_config.proto;l=338 + * google/cloud/retail/v2/import_config.proto;l=345 * @return The requestId. */ @java.lang.Override @@ -331,7 +331,7 @@ public java.lang.String getRequestId() { * string request_id = 5 [deprecated = true]; * * @deprecated google.cloud.retail.v2.ImportMetadata.request_id is deprecated. See - * google/cloud/retail/v2/import_config.proto;l=338 + * google/cloud/retail/v2/import_config.proto;l=345 * @return The bytes for requestId. */ @java.lang.Override @@ -1314,7 +1314,7 @@ public Builder clearFailureCount() { * string request_id = 5 [deprecated = true]; * * @deprecated google.cloud.retail.v2.ImportMetadata.request_id is deprecated. See - * google/cloud/retail/v2/import_config.proto;l=338 + * google/cloud/retail/v2/import_config.proto;l=345 * @return The requestId. */ @java.lang.Deprecated @@ -1339,7 +1339,7 @@ public java.lang.String getRequestId() { * string request_id = 5 [deprecated = true]; * * @deprecated google.cloud.retail.v2.ImportMetadata.request_id is deprecated. See - * google/cloud/retail/v2/import_config.proto;l=338 + * google/cloud/retail/v2/import_config.proto;l=345 * @return The bytes for requestId. */ @java.lang.Deprecated @@ -1364,7 +1364,7 @@ public com.google.protobuf.ByteString getRequestIdBytes() { * string request_id = 5 [deprecated = true]; * * @deprecated google.cloud.retail.v2.ImportMetadata.request_id is deprecated. See - * google/cloud/retail/v2/import_config.proto;l=338 + * google/cloud/retail/v2/import_config.proto;l=345 * @param value The requestId to set. * @return This builder for chaining. */ @@ -1388,7 +1388,7 @@ public Builder setRequestId(java.lang.String value) { * string request_id = 5 [deprecated = true]; * * @deprecated google.cloud.retail.v2.ImportMetadata.request_id is deprecated. See - * google/cloud/retail/v2/import_config.proto;l=338 + * google/cloud/retail/v2/import_config.proto;l=345 * @return This builder for chaining. */ @java.lang.Deprecated @@ -1408,7 +1408,7 @@ public Builder clearRequestId() { * string request_id = 5 [deprecated = true]; * * @deprecated google.cloud.retail.v2.ImportMetadata.request_id is deprecated. See - * google/cloud/retail/v2/import_config.proto;l=338 + * google/cloud/retail/v2/import_config.proto;l=345 * @param value The bytes for requestId to set. * @return This builder for chaining. */ diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportMetadataOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportMetadataOrBuilder.java index 92cae618..4df957c9 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportMetadataOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportMetadataOrBuilder.java @@ -132,7 +132,7 @@ public interface ImportMetadataOrBuilder * string request_id = 5 [deprecated = true]; * * @deprecated google.cloud.retail.v2.ImportMetadata.request_id is deprecated. See - * google/cloud/retail/v2/import_config.proto;l=338 + * google/cloud/retail/v2/import_config.proto;l=345 * @return The requestId. */ @java.lang.Deprecated @@ -147,7 +147,7 @@ public interface ImportMetadataOrBuilder * string request_id = 5 [deprecated = true]; * * @deprecated google.cloud.retail.v2.ImportMetadata.request_id is deprecated. See - * google/cloud/retail/v2/import_config.proto;l=338 + * google/cloud/retail/v2/import_config.proto;l=345 * @return The bytes for requestId. */ @java.lang.Deprecated diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportProductsRequest.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportProductsRequest.java index 4dcd1746..ef5d911a 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportProductsRequest.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportProductsRequest.java @@ -678,11 +678,17 @@ public int getReconciliationModeValue() { * * *
-   * Pub/Sub topic for receiving notification. If this field is set,
+   * Full Pub/Sub topic name for receiving notification. If this field is set,
    * when the import is finished, a notification will be sent to
    * specified Pub/Sub topic. The message data will be JSON string of a
    * [Operation][google.longrunning.Operation].
-   * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.
+   * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has
+   * to be within the same project as
+   * [ImportProductsRequest.parent][google.cloud.retail.v2.ImportProductsRequest.parent].
+   * Make sure that both
+   * `cloud-retail-customer-data-access@system.gserviceaccount.com` and
+   * `service-<project number>@gcp-sa-retail.iam.gserviceaccount.com`
+   * have the `pubsub.topics.publish` IAM permission on the topic.
    * Only supported when
    * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
    * is set to `FULL`.
@@ -708,11 +714,17 @@ public java.lang.String getNotificationPubsubTopic() {
    *
    *
    * 
-   * Pub/Sub topic for receiving notification. If this field is set,
+   * Full Pub/Sub topic name for receiving notification. If this field is set,
    * when the import is finished, a notification will be sent to
    * specified Pub/Sub topic. The message data will be JSON string of a
    * [Operation][google.longrunning.Operation].
-   * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.
+   * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has
+   * to be within the same project as
+   * [ImportProductsRequest.parent][google.cloud.retail.v2.ImportProductsRequest.parent].
+   * Make sure that both
+   * `cloud-retail-customer-data-access@system.gserviceaccount.com` and
+   * `service-<project number>@gcp-sa-retail.iam.gserviceaccount.com`
+   * have the `pubsub.topics.publish` IAM permission on the topic.
    * Only supported when
    * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
    * is set to `FULL`.
@@ -2144,11 +2156,17 @@ public Builder clearReconciliationMode() {
      *
      *
      * 
-     * Pub/Sub topic for receiving notification. If this field is set,
+     * Full Pub/Sub topic name for receiving notification. If this field is set,
      * when the import is finished, a notification will be sent to
      * specified Pub/Sub topic. The message data will be JSON string of a
      * [Operation][google.longrunning.Operation].
-     * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.
+     * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has
+     * to be within the same project as
+     * [ImportProductsRequest.parent][google.cloud.retail.v2.ImportProductsRequest.parent].
+     * Make sure that both
+     * `cloud-retail-customer-data-access@system.gserviceaccount.com` and
+     * `service-<project number>@gcp-sa-retail.iam.gserviceaccount.com`
+     * have the `pubsub.topics.publish` IAM permission on the topic.
      * Only supported when
      * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
      * is set to `FULL`.
@@ -2173,11 +2191,17 @@ public java.lang.String getNotificationPubsubTopic() {
      *
      *
      * 
-     * Pub/Sub topic for receiving notification. If this field is set,
+     * Full Pub/Sub topic name for receiving notification. If this field is set,
      * when the import is finished, a notification will be sent to
      * specified Pub/Sub topic. The message data will be JSON string of a
      * [Operation][google.longrunning.Operation].
-     * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.
+     * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has
+     * to be within the same project as
+     * [ImportProductsRequest.parent][google.cloud.retail.v2.ImportProductsRequest.parent].
+     * Make sure that both
+     * `cloud-retail-customer-data-access@system.gserviceaccount.com` and
+     * `service-<project number>@gcp-sa-retail.iam.gserviceaccount.com`
+     * have the `pubsub.topics.publish` IAM permission on the topic.
      * Only supported when
      * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
      * is set to `FULL`.
@@ -2202,11 +2226,17 @@ public com.google.protobuf.ByteString getNotificationPubsubTopicBytes() {
      *
      *
      * 
-     * Pub/Sub topic for receiving notification. If this field is set,
+     * Full Pub/Sub topic name for receiving notification. If this field is set,
      * when the import is finished, a notification will be sent to
      * specified Pub/Sub topic. The message data will be JSON string of a
      * [Operation][google.longrunning.Operation].
-     * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.
+     * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has
+     * to be within the same project as
+     * [ImportProductsRequest.parent][google.cloud.retail.v2.ImportProductsRequest.parent].
+     * Make sure that both
+     * `cloud-retail-customer-data-access@system.gserviceaccount.com` and
+     * `service-<project number>@gcp-sa-retail.iam.gserviceaccount.com`
+     * have the `pubsub.topics.publish` IAM permission on the topic.
      * Only supported when
      * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
      * is set to `FULL`.
@@ -2230,11 +2260,17 @@ public Builder setNotificationPubsubTopic(java.lang.String value) {
      *
      *
      * 
-     * Pub/Sub topic for receiving notification. If this field is set,
+     * Full Pub/Sub topic name for receiving notification. If this field is set,
      * when the import is finished, a notification will be sent to
      * specified Pub/Sub topic. The message data will be JSON string of a
      * [Operation][google.longrunning.Operation].
-     * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.
+     * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has
+     * to be within the same project as
+     * [ImportProductsRequest.parent][google.cloud.retail.v2.ImportProductsRequest.parent].
+     * Make sure that both
+     * `cloud-retail-customer-data-access@system.gserviceaccount.com` and
+     * `service-<project number>@gcp-sa-retail.iam.gserviceaccount.com`
+     * have the `pubsub.topics.publish` IAM permission on the topic.
      * Only supported when
      * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
      * is set to `FULL`.
@@ -2254,11 +2290,17 @@ public Builder clearNotificationPubsubTopic() {
      *
      *
      * 
-     * Pub/Sub topic for receiving notification. If this field is set,
+     * Full Pub/Sub topic name for receiving notification. If this field is set,
      * when the import is finished, a notification will be sent to
      * specified Pub/Sub topic. The message data will be JSON string of a
      * [Operation][google.longrunning.Operation].
-     * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.
+     * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has
+     * to be within the same project as
+     * [ImportProductsRequest.parent][google.cloud.retail.v2.ImportProductsRequest.parent].
+     * Make sure that both
+     * `cloud-retail-customer-data-access@system.gserviceaccount.com` and
+     * `service-<project number>@gcp-sa-retail.iam.gserviceaccount.com`
+     * have the `pubsub.topics.publish` IAM permission on the topic.
      * Only supported when
      * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
      * is set to `FULL`.
diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportProductsRequestOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportProductsRequestOrBuilder.java
index b1325d28..af909934 100644
--- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportProductsRequestOrBuilder.java
+++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportProductsRequestOrBuilder.java
@@ -238,11 +238,17 @@ public interface ImportProductsRequestOrBuilder
    *
    *
    * 
-   * Pub/Sub topic for receiving notification. If this field is set,
+   * Full Pub/Sub topic name for receiving notification. If this field is set,
    * when the import is finished, a notification will be sent to
    * specified Pub/Sub topic. The message data will be JSON string of a
    * [Operation][google.longrunning.Operation].
-   * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.
+   * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has
+   * to be within the same project as
+   * [ImportProductsRequest.parent][google.cloud.retail.v2.ImportProductsRequest.parent].
+   * Make sure that both
+   * `cloud-retail-customer-data-access@system.gserviceaccount.com` and
+   * `service-<project number>@gcp-sa-retail.iam.gserviceaccount.com`
+   * have the `pubsub.topics.publish` IAM permission on the topic.
    * Only supported when
    * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
    * is set to `FULL`.
@@ -257,11 +263,17 @@ public interface ImportProductsRequestOrBuilder
    *
    *
    * 
-   * Pub/Sub topic for receiving notification. If this field is set,
+   * Full Pub/Sub topic name for receiving notification. If this field is set,
    * when the import is finished, a notification will be sent to
    * specified Pub/Sub topic. The message data will be JSON string of a
    * [Operation][google.longrunning.Operation].
-   * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.
+   * Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has
+   * to be within the same project as
+   * [ImportProductsRequest.parent][google.cloud.retail.v2.ImportProductsRequest.parent].
+   * Make sure that both
+   * `cloud-retail-customer-data-access@system.gserviceaccount.com` and
+   * `service-<project number>@gcp-sa-retail.iam.gserviceaccount.com`
+   * have the `pubsub.topics.publish` IAM permission on the topic.
    * Only supported when
    * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
    * is set to `FULL`.
diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PredictRequest.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PredictRequest.java
index 97f1d328..880e4414 100644
--- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PredictRequest.java
+++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PredictRequest.java
@@ -268,6 +268,15 @@ public com.google.protobuf.ByteString getPlacementBytes() {
    * they took to trigger the predict request. Note that this user event detail
    * won't be ingested to userEvent logs. Thus, a separate userEvent write
    * request is required for event logging.
+   * Don't set
+   * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] or
+   * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] to the same
+   * fixed ID for different users. If you are trying to receive non-personalized
+   * recommendations (not recommended; this can negatively impact model
+   * performance), instead set
+   * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] to a
+   * random unique ID and leave
+   * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] unset.
    * 
* * @@ -288,6 +297,15 @@ public boolean hasUserEvent() { * they took to trigger the predict request. Note that this user event detail * won't be ingested to userEvent logs. Thus, a separate userEvent write * request is required for event logging. + * Don't set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] or + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] to the same + * fixed ID for different users. If you are trying to receive non-personalized + * recommendations (not recommended; this can negatively impact model + * performance), instead set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] to a + * random unique ID and leave + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] unset. *
* * @@ -310,6 +328,15 @@ public com.google.cloud.retail.v2.UserEvent getUserEvent() { * they took to trigger the predict request. Note that this user event detail * won't be ingested to userEvent logs. Thus, a separate userEvent write * request is required for event logging. + * Don't set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] or + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] to the same + * fixed ID for different users. If you are trying to receive non-personalized + * recommendations (not recommended; this can negatively impact model + * performance), instead set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] to a + * random unique ID and leave + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] unset. *
* * @@ -728,7 +755,7 @@ public int getLabelsCount() { * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 - * characters, and cannot be empty. Values can be empty, and have a maximum + * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and @@ -764,7 +791,7 @@ public java.util.Map getLabels() { * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 - * characters, and cannot be empty. Values can be empty, and have a maximum + * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and @@ -791,7 +818,7 @@ public java.util.Map getLabelsMap() { * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 - * characters, and cannot be empty. Values can be empty, and have a maximum + * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and @@ -822,7 +849,7 @@ public java.lang.String getLabelsOrDefault(java.lang.String key, java.lang.Strin * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 - * characters, and cannot be empty. Values can be empty, and have a maximum + * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and @@ -1479,6 +1506,15 @@ public Builder setPlacementBytes(com.google.protobuf.ByteString value) { * they took to trigger the predict request. Note that this user event detail * won't be ingested to userEvent logs. Thus, a separate userEvent write * request is required for event logging. + * Don't set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] or + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] to the same + * fixed ID for different users. If you are trying to receive non-personalized + * recommendations (not recommended; this can negatively impact model + * performance), instead set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] to a + * random unique ID and leave + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] unset. *
* * @@ -1498,6 +1534,15 @@ public boolean hasUserEvent() { * they took to trigger the predict request. Note that this user event detail * won't be ingested to userEvent logs. Thus, a separate userEvent write * request is required for event logging. + * Don't set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] or + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] to the same + * fixed ID for different users. If you are trying to receive non-personalized + * recommendations (not recommended; this can negatively impact model + * performance), instead set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] to a + * random unique ID and leave + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] unset. *
* * @@ -1523,6 +1568,15 @@ public com.google.cloud.retail.v2.UserEvent getUserEvent() { * they took to trigger the predict request. Note that this user event detail * won't be ingested to userEvent logs. Thus, a separate userEvent write * request is required for event logging. + * Don't set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] or + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] to the same + * fixed ID for different users. If you are trying to receive non-personalized + * recommendations (not recommended; this can negatively impact model + * performance), instead set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] to a + * random unique ID and leave + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] unset. *
* * @@ -1550,6 +1604,15 @@ public Builder setUserEvent(com.google.cloud.retail.v2.UserEvent value) { * they took to trigger the predict request. Note that this user event detail * won't be ingested to userEvent logs. Thus, a separate userEvent write * request is required for event logging. + * Don't set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] or + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] to the same + * fixed ID for different users. If you are trying to receive non-personalized + * recommendations (not recommended; this can negatively impact model + * performance), instead set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] to a + * random unique ID and leave + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] unset. *
* * @@ -1574,6 +1637,15 @@ public Builder setUserEvent(com.google.cloud.retail.v2.UserEvent.Builder builder * they took to trigger the predict request. Note that this user event detail * won't be ingested to userEvent logs. Thus, a separate userEvent write * request is required for event logging. + * Don't set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] or + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] to the same + * fixed ID for different users. If you are trying to receive non-personalized + * recommendations (not recommended; this can negatively impact model + * performance), instead set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] to a + * random unique ID and leave + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] unset. *
* * @@ -1605,6 +1677,15 @@ public Builder mergeUserEvent(com.google.cloud.retail.v2.UserEvent value) { * they took to trigger the predict request. Note that this user event detail * won't be ingested to userEvent logs. Thus, a separate userEvent write * request is required for event logging. + * Don't set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] or + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] to the same + * fixed ID for different users. If you are trying to receive non-personalized + * recommendations (not recommended; this can negatively impact model + * performance), instead set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] to a + * random unique ID and leave + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] unset. *
* * @@ -1630,6 +1711,15 @@ public Builder clearUserEvent() { * they took to trigger the predict request. Note that this user event detail * won't be ingested to userEvent logs. Thus, a separate userEvent write * request is required for event logging. + * Don't set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] or + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] to the same + * fixed ID for different users. If you are trying to receive non-personalized + * recommendations (not recommended; this can negatively impact model + * performance), instead set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] to a + * random unique ID and leave + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] unset. * * * @@ -1649,6 +1739,15 @@ public com.google.cloud.retail.v2.UserEvent.Builder getUserEventBuilder() { * they took to trigger the predict request. Note that this user event detail * won't be ingested to userEvent logs. Thus, a separate userEvent write * request is required for event logging. + * Don't set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] or + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] to the same + * fixed ID for different users. If you are trying to receive non-personalized + * recommendations (not recommended; this can negatively impact model + * performance), instead set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] to a + * random unique ID and leave + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] unset. * * * @@ -1672,6 +1771,15 @@ public com.google.cloud.retail.v2.UserEventOrBuilder getUserEventOrBuilder() { * they took to trigger the predict request. Note that this user event detail * won't be ingested to userEvent logs. Thus, a separate userEvent write * request is required for event logging. + * Don't set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] or + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] to the same + * fixed ID for different users. If you are trying to receive non-personalized + * recommendations (not recommended; this can negatively impact model + * performance), instead set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] to a + * random unique ID and leave + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] unset. * * * @@ -2485,7 +2593,7 @@ public int getLabelsCount() { * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 - * characters, and cannot be empty. Values can be empty, and have a maximum + * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and @@ -2521,7 +2629,7 @@ public java.util.Map getLabels() { * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 - * characters, and cannot be empty. Values can be empty, and have a maximum + * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and @@ -2548,7 +2656,7 @@ public java.util.Map getLabelsMap() { * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 - * characters, and cannot be empty. Values can be empty, and have a maximum + * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and @@ -2580,7 +2688,7 @@ public java.lang.String getLabelsOrDefault( * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 - * characters, and cannot be empty. Values can be empty, and have a maximum + * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and @@ -2619,7 +2727,7 @@ public Builder clearLabels() { * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 - * characters, and cannot be empty. Values can be empty, and have a maximum + * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and @@ -2654,7 +2762,7 @@ public java.util.Map getMutableLabels() { * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 - * characters, and cannot be empty. Values can be empty, and have a maximum + * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and @@ -2688,7 +2796,7 @@ public Builder putLabels(java.lang.String key, java.lang.String value) { * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 - * characters, and cannot be empty. Values can be empty, and have a maximum + * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PredictRequestOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PredictRequestOrBuilder.java index b314ccf6..d59a5886 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PredictRequestOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PredictRequestOrBuilder.java @@ -70,6 +70,15 @@ public interface PredictRequestOrBuilder * they took to trigger the predict request. Note that this user event detail * won't be ingested to userEvent logs. Thus, a separate userEvent write * request is required for event logging. + * Don't set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] or + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] to the same + * fixed ID for different users. If you are trying to receive non-personalized + * recommendations (not recommended; this can negatively impact model + * performance), instead set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] to a + * random unique ID and leave + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] unset. * * * @@ -87,6 +96,15 @@ public interface PredictRequestOrBuilder * they took to trigger the predict request. Note that this user event detail * won't be ingested to userEvent logs. Thus, a separate userEvent write * request is required for event logging. + * Don't set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] or + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] to the same + * fixed ID for different users. If you are trying to receive non-personalized + * recommendations (not recommended; this can negatively impact model + * performance), instead set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] to a + * random unique ID and leave + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] unset. * * * @@ -104,6 +122,15 @@ public interface PredictRequestOrBuilder * they took to trigger the predict request. Note that this user event detail * won't be ingested to userEvent logs. Thus, a separate userEvent write * request is required for event logging. + * Don't set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] or + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] to the same + * fixed ID for different users. If you are trying to receive non-personalized + * recommendations (not recommended; this can negatively impact model + * performance), instead set + * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] to a + * random unique ID and leave + * [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] unset. * * * @@ -415,7 +442,7 @@ com.google.protobuf.Value getParamsOrDefault( * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 - * characters, and cannot be empty. Values can be empty, and have a maximum + * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and @@ -439,7 +466,7 @@ com.google.protobuf.Value getParamsOrDefault( * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 - * characters, and cannot be empty. Values can be empty, and have a maximum + * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and @@ -466,7 +493,7 @@ com.google.protobuf.Value getParamsOrDefault( * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 - * characters, and cannot be empty. Values can be empty, and have a maximum + * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and @@ -490,7 +517,7 @@ com.google.protobuf.Value getParamsOrDefault( * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 - * characters, and cannot be empty. Values can be empty, and have a maximum + * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and @@ -519,7 +546,7 @@ java.lang.String getLabelsOrDefault( * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 - * characters, and cannot be empty. Values can be empty, and have a maximum + * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PredictResponse.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PredictResponse.java index a882268d..96746b82 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PredictResponse.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PredictResponse.java @@ -187,9 +187,9 @@ public interface PredictionResultOrBuilder *
      * Additional product metadata / annotations.
      * Possible values:
-     * * `product`: JSON representation of the product. Will be set if
+     * * `product`: JSON representation of the product. Is set if
      *   `returnProduct` is set to true in `PredictRequest.params`.
-     * * `score`: Prediction score in double value. Will be set if
+     * * `score`: Prediction score in double value. Is set if
      *   `returnScore` is set to true in `PredictRequest.params`.
      * 
* @@ -202,9 +202,9 @@ public interface PredictionResultOrBuilder *
      * Additional product metadata / annotations.
      * Possible values:
-     * * `product`: JSON representation of the product. Will be set if
+     * * `product`: JSON representation of the product. Is set if
      *   `returnProduct` is set to true in `PredictRequest.params`.
-     * * `score`: Prediction score in double value. Will be set if
+     * * `score`: Prediction score in double value. Is set if
      *   `returnScore` is set to true in `PredictRequest.params`.
      * 
* @@ -220,9 +220,9 @@ public interface PredictionResultOrBuilder *
      * Additional product metadata / annotations.
      * Possible values:
-     * * `product`: JSON representation of the product. Will be set if
+     * * `product`: JSON representation of the product. Is set if
      *   `returnProduct` is set to true in `PredictRequest.params`.
-     * * `score`: Prediction score in double value. Will be set if
+     * * `score`: Prediction score in double value. Is set if
      *   `returnScore` is set to true in `PredictRequest.params`.
      * 
* @@ -235,9 +235,9 @@ public interface PredictionResultOrBuilder *
      * Additional product metadata / annotations.
      * Possible values:
-     * * `product`: JSON representation of the product. Will be set if
+     * * `product`: JSON representation of the product. Is set if
      *   `returnProduct` is set to true in `PredictRequest.params`.
-     * * `score`: Prediction score in double value. Will be set if
+     * * `score`: Prediction score in double value. Is set if
      *   `returnScore` is set to true in `PredictRequest.params`.
      * 
* @@ -255,9 +255,9 @@ com.google.protobuf.Value getMetadataOrDefault( *
      * Additional product metadata / annotations.
      * Possible values:
-     * * `product`: JSON representation of the product. Will be set if
+     * * `product`: JSON representation of the product. Is set if
      *   `returnProduct` is set to true in `PredictRequest.params`.
-     * * `score`: Prediction score in double value. Will be set if
+     * * `score`: Prediction score in double value. Is set if
      *   `returnScore` is set to true in `PredictRequest.params`.
      * 
* @@ -471,9 +471,9 @@ public int getMetadataCount() { *
      * Additional product metadata / annotations.
      * Possible values:
-     * * `product`: JSON representation of the product. Will be set if
+     * * `product`: JSON representation of the product. Is set if
      *   `returnProduct` is set to true in `PredictRequest.params`.
-     * * `score`: Prediction score in double value. Will be set if
+     * * `score`: Prediction score in double value. Is set if
      *   `returnScore` is set to true in `PredictRequest.params`.
      * 
* @@ -498,9 +498,9 @@ public java.util.Map getMetadata() *
      * Additional product metadata / annotations.
      * Possible values:
-     * * `product`: JSON representation of the product. Will be set if
+     * * `product`: JSON representation of the product. Is set if
      *   `returnProduct` is set to true in `PredictRequest.params`.
-     * * `score`: Prediction score in double value. Will be set if
+     * * `score`: Prediction score in double value. Is set if
      *   `returnScore` is set to true in `PredictRequest.params`.
      * 
* @@ -516,9 +516,9 @@ public java.util.Map getMetadataMap *
      * Additional product metadata / annotations.
      * Possible values:
-     * * `product`: JSON representation of the product. Will be set if
+     * * `product`: JSON representation of the product. Is set if
      *   `returnProduct` is set to true in `PredictRequest.params`.
-     * * `score`: Prediction score in double value. Will be set if
+     * * `score`: Prediction score in double value. Is set if
      *   `returnScore` is set to true in `PredictRequest.params`.
      * 
* @@ -540,9 +540,9 @@ public com.google.protobuf.Value getMetadataOrDefault( *
      * Additional product metadata / annotations.
      * Possible values:
-     * * `product`: JSON representation of the product. Will be set if
+     * * `product`: JSON representation of the product. Is set if
      *   `returnProduct` is set to true in `PredictRequest.params`.
-     * * `score`: Prediction score in double value. Will be set if
+     * * `score`: Prediction score in double value. Is set if
      *   `returnScore` is set to true in `PredictRequest.params`.
      * 
* @@ -1071,9 +1071,9 @@ public int getMetadataCount() { *
        * Additional product metadata / annotations.
        * Possible values:
-       * * `product`: JSON representation of the product. Will be set if
+       * * `product`: JSON representation of the product. Is set if
        *   `returnProduct` is set to true in `PredictRequest.params`.
-       * * `score`: Prediction score in double value. Will be set if
+       * * `score`: Prediction score in double value. Is set if
        *   `returnScore` is set to true in `PredictRequest.params`.
        * 
* @@ -1098,9 +1098,9 @@ public java.util.Map getMetadata() *
        * Additional product metadata / annotations.
        * Possible values:
-       * * `product`: JSON representation of the product. Will be set if
+       * * `product`: JSON representation of the product. Is set if
        *   `returnProduct` is set to true in `PredictRequest.params`.
-       * * `score`: Prediction score in double value. Will be set if
+       * * `score`: Prediction score in double value. Is set if
        *   `returnScore` is set to true in `PredictRequest.params`.
        * 
* @@ -1116,9 +1116,9 @@ public java.util.Map getMetadataMap *
        * Additional product metadata / annotations.
        * Possible values:
-       * * `product`: JSON representation of the product. Will be set if
+       * * `product`: JSON representation of the product. Is set if
        *   `returnProduct` is set to true in `PredictRequest.params`.
-       * * `score`: Prediction score in double value. Will be set if
+       * * `score`: Prediction score in double value. Is set if
        *   `returnScore` is set to true in `PredictRequest.params`.
        * 
* @@ -1140,9 +1140,9 @@ public com.google.protobuf.Value getMetadataOrDefault( *
        * Additional product metadata / annotations.
        * Possible values:
-       * * `product`: JSON representation of the product. Will be set if
+       * * `product`: JSON representation of the product. Is set if
        *   `returnProduct` is set to true in `PredictRequest.params`.
-       * * `score`: Prediction score in double value. Will be set if
+       * * `score`: Prediction score in double value. Is set if
        *   `returnScore` is set to true in `PredictRequest.params`.
        * 
* @@ -1171,9 +1171,9 @@ public Builder clearMetadata() { *
        * Additional product metadata / annotations.
        * Possible values:
-       * * `product`: JSON representation of the product. Will be set if
+       * * `product`: JSON representation of the product. Is set if
        *   `returnProduct` is set to true in `PredictRequest.params`.
-       * * `score`: Prediction score in double value. Will be set if
+       * * `score`: Prediction score in double value. Is set if
        *   `returnScore` is set to true in `PredictRequest.params`.
        * 
* @@ -1197,9 +1197,9 @@ public java.util.Map getMutableMeta *
        * Additional product metadata / annotations.
        * Possible values:
-       * * `product`: JSON representation of the product. Will be set if
+       * * `product`: JSON representation of the product. Is set if
        *   `returnProduct` is set to true in `PredictRequest.params`.
-       * * `score`: Prediction score in double value. Will be set if
+       * * `score`: Prediction score in double value. Is set if
        *   `returnScore` is set to true in `PredictRequest.params`.
        * 
* @@ -1222,9 +1222,9 @@ public Builder putMetadata(java.lang.String key, com.google.protobuf.Value value *
        * Additional product metadata / annotations.
        * Possible values:
-       * * `product`: JSON representation of the product. Will be set if
+       * * `product`: JSON representation of the product. Is set if
        *   `returnProduct` is set to true in `PredictRequest.params`.
-       * * `score`: Prediction score in double value. Will be set if
+       * * `score`: Prediction score in double value. Is set if
        *   `returnScore` is set to true in `PredictRequest.params`.
        * 
* diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PriceInfo.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PriceInfo.java index 1de6c26d..352c01e2 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PriceInfo.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PriceInfo.java @@ -1462,7 +1462,10 @@ public float getPrice() { * *
    * Price of the product without any discount. If zero, by default set to be
-   * the [price][google.cloud.retail.v2.PriceInfo.price].
+   * the [price][google.cloud.retail.v2.PriceInfo.price]. If set,
+   * [original_price][google.cloud.retail.v2.PriceInfo.original_price] should be
+   * greater than or equal to [price][google.cloud.retail.v2.PriceInfo.price],
+   * otherwise an INVALID_ARGUMENT error is thrown.
    * 
* * float original_price = 3; @@ -2400,7 +2403,10 @@ public Builder clearPrice() { * *
      * Price of the product without any discount. If zero, by default set to be
-     * the [price][google.cloud.retail.v2.PriceInfo.price].
+     * the [price][google.cloud.retail.v2.PriceInfo.price]. If set,
+     * [original_price][google.cloud.retail.v2.PriceInfo.original_price] should be
+     * greater than or equal to [price][google.cloud.retail.v2.PriceInfo.price],
+     * otherwise an INVALID_ARGUMENT error is thrown.
      * 
* * float original_price = 3; @@ -2416,7 +2422,10 @@ public float getOriginalPrice() { * *
      * Price of the product without any discount. If zero, by default set to be
-     * the [price][google.cloud.retail.v2.PriceInfo.price].
+     * the [price][google.cloud.retail.v2.PriceInfo.price]. If set,
+     * [original_price][google.cloud.retail.v2.PriceInfo.original_price] should be
+     * greater than or equal to [price][google.cloud.retail.v2.PriceInfo.price],
+     * otherwise an INVALID_ARGUMENT error is thrown.
      * 
* * float original_price = 3; @@ -2435,7 +2444,10 @@ public Builder setOriginalPrice(float value) { * *
      * Price of the product without any discount. If zero, by default set to be
-     * the [price][google.cloud.retail.v2.PriceInfo.price].
+     * the [price][google.cloud.retail.v2.PriceInfo.price]. If set,
+     * [original_price][google.cloud.retail.v2.PriceInfo.original_price] should be
+     * greater than or equal to [price][google.cloud.retail.v2.PriceInfo.price],
+     * otherwise an INVALID_ARGUMENT error is thrown.
      * 
* * float original_price = 3; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PriceInfoOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PriceInfoOrBuilder.java index bf6756ab..5c634b41 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PriceInfoOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PriceInfoOrBuilder.java @@ -87,7 +87,10 @@ public interface PriceInfoOrBuilder * *
    * Price of the product without any discount. If zero, by default set to be
-   * the [price][google.cloud.retail.v2.PriceInfo.price].
+   * the [price][google.cloud.retail.v2.PriceInfo.price]. If set,
+   * [original_price][google.cloud.retail.v2.PriceInfo.original_price] should be
+   * greater than or equal to [price][google.cloud.retail.v2.PriceInfo.price],
+   * otherwise an INVALID_ARGUMENT error is thrown.
    * 
* * float original_price = 3; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/Product.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/Product.java index 04a2a969..813cd44d 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/Product.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/Product.java @@ -3510,10 +3510,10 @@ public com.google.protobuf.TimestampOrBuilder getPublishTimeOrBuilder() { * following fields are always returned in by default: * * [name][google.cloud.retail.v2.Product.name] * * [color_info][google.cloud.retail.v2.Product.color_info] - * Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + * The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is * returned. * Note: Returning more fields in - * [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase + * [SearchResponse][google.cloud.retail.v2.SearchResponse] can increase * response payload size and serving latency. * * @@ -3568,10 +3568,10 @@ public boolean hasRetrievableFields() { * following fields are always returned in by default: * * [name][google.cloud.retail.v2.Product.name] * * [color_info][google.cloud.retail.v2.Product.color_info] - * Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + * The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is * returned. * Note: Returning more fields in - * [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase + * [SearchResponse][google.cloud.retail.v2.SearchResponse] can increase * response payload size and serving latency. * * @@ -3628,10 +3628,10 @@ public com.google.protobuf.FieldMask getRetrievableFields() { * following fields are always returned in by default: * * [name][google.cloud.retail.v2.Product.name] * * [color_info][google.cloud.retail.v2.Product.color_info] - * Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + * The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is * returned. * Note: Returning more fields in - * [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase + * [SearchResponse][google.cloud.retail.v2.SearchResponse] can increase * response payload size and serving latency. * * @@ -12270,10 +12270,10 @@ public com.google.protobuf.TimestampOrBuilder getPublishTimeOrBuilder() { * following fields are always returned in by default: * * [name][google.cloud.retail.v2.Product.name] * * [color_info][google.cloud.retail.v2.Product.color_info] - * Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + * The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is * returned. * Note: Returning more fields in - * [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase + * [SearchResponse][google.cloud.retail.v2.SearchResponse] can increase * response payload size and serving latency. * * @@ -12327,10 +12327,10 @@ public boolean hasRetrievableFields() { * following fields are always returned in by default: * * [name][google.cloud.retail.v2.Product.name] * * [color_info][google.cloud.retail.v2.Product.color_info] - * Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + * The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is * returned. * Note: Returning more fields in - * [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase + * [SearchResponse][google.cloud.retail.v2.SearchResponse] can increase * response payload size and serving latency. * * @@ -12390,10 +12390,10 @@ public com.google.protobuf.FieldMask getRetrievableFields() { * following fields are always returned in by default: * * [name][google.cloud.retail.v2.Product.name] * * [color_info][google.cloud.retail.v2.Product.color_info] - * Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + * The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is * returned. * Note: Returning more fields in - * [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase + * [SearchResponse][google.cloud.retail.v2.SearchResponse] can increase * response payload size and serving latency. * * @@ -12455,10 +12455,10 @@ public Builder setRetrievableFields(com.google.protobuf.FieldMask value) { * following fields are always returned in by default: * * [name][google.cloud.retail.v2.Product.name] * * [color_info][google.cloud.retail.v2.Product.color_info] - * Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + * The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is * returned. * Note: Returning more fields in - * [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase + * [SearchResponse][google.cloud.retail.v2.SearchResponse] can increase * response payload size and serving latency. * * @@ -12517,10 +12517,10 @@ public Builder setRetrievableFields(com.google.protobuf.FieldMask.Builder builde * following fields are always returned in by default: * * [name][google.cloud.retail.v2.Product.name] * * [color_info][google.cloud.retail.v2.Product.color_info] - * Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + * The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is * returned. * Note: Returning more fields in - * [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase + * [SearchResponse][google.cloud.retail.v2.SearchResponse] can increase * response payload size and serving latency. * * @@ -12586,10 +12586,10 @@ public Builder mergeRetrievableFields(com.google.protobuf.FieldMask value) { * following fields are always returned in by default: * * [name][google.cloud.retail.v2.Product.name] * * [color_info][google.cloud.retail.v2.Product.color_info] - * Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + * The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is * returned. * Note: Returning more fields in - * [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase + * [SearchResponse][google.cloud.retail.v2.SearchResponse] can increase * response payload size and serving latency. * * @@ -12649,10 +12649,10 @@ public Builder clearRetrievableFields() { * following fields are always returned in by default: * * [name][google.cloud.retail.v2.Product.name] * * [color_info][google.cloud.retail.v2.Product.color_info] - * Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + * The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is * returned. * Note: Returning more fields in - * [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase + * [SearchResponse][google.cloud.retail.v2.SearchResponse] can increase * response payload size and serving latency. * * @@ -12706,10 +12706,10 @@ public com.google.protobuf.FieldMask.Builder getRetrievableFieldsBuilder() { * following fields are always returned in by default: * * [name][google.cloud.retail.v2.Product.name] * * [color_info][google.cloud.retail.v2.Product.color_info] - * Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + * The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is * returned. * Note: Returning more fields in - * [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase + * [SearchResponse][google.cloud.retail.v2.SearchResponse] can increase * response payload size and serving latency. * * @@ -12767,10 +12767,10 @@ public com.google.protobuf.FieldMaskOrBuilder getRetrievableFieldsOrBuilder() { * following fields are always returned in by default: * * [name][google.cloud.retail.v2.Product.name] * * [color_info][google.cloud.retail.v2.Product.color_info] - * Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + * The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is * returned. * Note: Returning more fields in - * [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase + * [SearchResponse][google.cloud.retail.v2.SearchResponse] can increase * response payload size and serving latency. * * diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductLevelConfig.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductLevelConfig.java index 9942d7e1..a966fcb3 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductLevelConfig.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductLevelConfig.java @@ -136,10 +136,10 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { * default to * [Product.Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] if * unset. - * * `variant`: You can only ingest - * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] - * [Product][google.cloud.retail.v2.Product]s. - * This means + * * `variant` (incompatible with Retail Search): You can only + * ingest + * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] + * [Product][google.cloud.retail.v2.Product]s. This means * [Product.primary_product_id][google.cloud.retail.v2.Product.primary_product_id] * cannot be empty. * If this field is set to an invalid value other than these, an @@ -147,8 +147,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { * If this field is `variant` and * [merchant_center_product_id_field][google.cloud.retail.v2.ProductLevelConfig.merchant_center_product_id_field] * is `itemGroupId`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * @@ -180,10 +180,10 @@ public java.lang.String getIngestionProductType() { * default to * [Product.Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] if * unset. - * * `variant`: You can only ingest - * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] - * [Product][google.cloud.retail.v2.Product]s. - * This means + * * `variant` (incompatible with Retail Search): You can only + * ingest + * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] + * [Product][google.cloud.retail.v2.Product]s. This means * [Product.primary_product_id][google.cloud.retail.v2.Product.primary_product_id] * cannot be empty. * If this field is set to an invalid value other than these, an @@ -191,8 +191,8 @@ public java.lang.String getIngestionProductType() { * If this field is `variant` and * [merchant_center_product_id_field][google.cloud.retail.v2.ProductLevelConfig.merchant_center_product_id_field] * is `itemGroupId`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * @@ -232,8 +232,8 @@ public com.google.protobuf.ByteString getIngestionProductTypeBytes() { * If this field is `itemGroupId` and * [ingestion_product_type][google.cloud.retail.v2.ProductLevelConfig.ingestion_product_type] * is `variant`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * @@ -270,8 +270,8 @@ public java.lang.String getMerchantCenterProductIdField() { * If this field is `itemGroupId` and * [ingestion_product_type][google.cloud.retail.v2.ProductLevelConfig.ingestion_product_type] * is `variant`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * @@ -641,10 +641,10 @@ public Builder mergeFrom( * default to * [Product.Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] if * unset. - * * `variant`: You can only ingest - * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] - * [Product][google.cloud.retail.v2.Product]s. - * This means + * * `variant` (incompatible with Retail Search): You can only + * ingest + * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] + * [Product][google.cloud.retail.v2.Product]s. This means * [Product.primary_product_id][google.cloud.retail.v2.Product.primary_product_id] * cannot be empty. * If this field is set to an invalid value other than these, an @@ -652,8 +652,8 @@ public Builder mergeFrom( * If this field is `variant` and * [merchant_center_product_id_field][google.cloud.retail.v2.ProductLevelConfig.merchant_center_product_id_field] * is `itemGroupId`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * @@ -684,10 +684,10 @@ public java.lang.String getIngestionProductType() { * default to * [Product.Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] if * unset. - * * `variant`: You can only ingest - * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] - * [Product][google.cloud.retail.v2.Product]s. - * This means + * * `variant` (incompatible with Retail Search): You can only + * ingest + * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] + * [Product][google.cloud.retail.v2.Product]s. This means * [Product.primary_product_id][google.cloud.retail.v2.Product.primary_product_id] * cannot be empty. * If this field is set to an invalid value other than these, an @@ -695,8 +695,8 @@ public java.lang.String getIngestionProductType() { * If this field is `variant` and * [merchant_center_product_id_field][google.cloud.retail.v2.ProductLevelConfig.merchant_center_product_id_field] * is `itemGroupId`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * @@ -727,10 +727,10 @@ public com.google.protobuf.ByteString getIngestionProductTypeBytes() { * default to * [Product.Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] if * unset. - * * `variant`: You can only ingest - * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] - * [Product][google.cloud.retail.v2.Product]s. - * This means + * * `variant` (incompatible with Retail Search): You can only + * ingest + * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] + * [Product][google.cloud.retail.v2.Product]s. This means * [Product.primary_product_id][google.cloud.retail.v2.Product.primary_product_id] * cannot be empty. * If this field is set to an invalid value other than these, an @@ -738,8 +738,8 @@ public com.google.protobuf.ByteString getIngestionProductTypeBytes() { * If this field is `variant` and * [merchant_center_product_id_field][google.cloud.retail.v2.ProductLevelConfig.merchant_center_product_id_field] * is `itemGroupId`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * @@ -769,10 +769,10 @@ public Builder setIngestionProductType(java.lang.String value) { * default to * [Product.Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] if * unset. - * * `variant`: You can only ingest - * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] - * [Product][google.cloud.retail.v2.Product]s. - * This means + * * `variant` (incompatible with Retail Search): You can only + * ingest + * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] + * [Product][google.cloud.retail.v2.Product]s. This means * [Product.primary_product_id][google.cloud.retail.v2.Product.primary_product_id] * cannot be empty. * If this field is set to an invalid value other than these, an @@ -780,8 +780,8 @@ public Builder setIngestionProductType(java.lang.String value) { * If this field is `variant` and * [merchant_center_product_id_field][google.cloud.retail.v2.ProductLevelConfig.merchant_center_product_id_field] * is `itemGroupId`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * @@ -807,10 +807,10 @@ public Builder clearIngestionProductType() { * default to * [Product.Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] if * unset. - * * `variant`: You can only ingest - * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] - * [Product][google.cloud.retail.v2.Product]s. - * This means + * * `variant` (incompatible with Retail Search): You can only + * ingest + * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] + * [Product][google.cloud.retail.v2.Product]s. This means * [Product.primary_product_id][google.cloud.retail.v2.Product.primary_product_id] * cannot be empty. * If this field is set to an invalid value other than these, an @@ -818,8 +818,8 @@ public Builder clearIngestionProductType() { * If this field is `variant` and * [merchant_center_product_id_field][google.cloud.retail.v2.ProductLevelConfig.merchant_center_product_id_field] * is `itemGroupId`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * @@ -857,8 +857,8 @@ public Builder setIngestionProductTypeBytes(com.google.protobuf.ByteString value * If this field is `itemGroupId` and * [ingestion_product_type][google.cloud.retail.v2.ProductLevelConfig.ingestion_product_type] * is `variant`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * @@ -894,8 +894,8 @@ public java.lang.String getMerchantCenterProductIdField() { * If this field is `itemGroupId` and * [ingestion_product_type][google.cloud.retail.v2.ProductLevelConfig.ingestion_product_type] * is `variant`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * @@ -931,8 +931,8 @@ public com.google.protobuf.ByteString getMerchantCenterProductIdFieldBytes() { * If this field is `itemGroupId` and * [ingestion_product_type][google.cloud.retail.v2.ProductLevelConfig.ingestion_product_type] * is `variant`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * @@ -967,8 +967,8 @@ public Builder setMerchantCenterProductIdField(java.lang.String value) { * If this field is `itemGroupId` and * [ingestion_product_type][google.cloud.retail.v2.ProductLevelConfig.ingestion_product_type] * is `variant`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * @@ -999,8 +999,8 @@ public Builder clearMerchantCenterProductIdField() { * If this field is `itemGroupId` and * [ingestion_product_type][google.cloud.retail.v2.ProductLevelConfig.ingestion_product_type] * is `variant`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductLevelConfigOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductLevelConfigOrBuilder.java index 7bed5e87..ef3f8136 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductLevelConfigOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductLevelConfigOrBuilder.java @@ -35,10 +35,10 @@ public interface ProductLevelConfigOrBuilder * default to * [Product.Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] if * unset. - * * `variant`: You can only ingest - * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] - * [Product][google.cloud.retail.v2.Product]s. - * This means + * * `variant` (incompatible with Retail Search): You can only + * ingest + * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] + * [Product][google.cloud.retail.v2.Product]s. This means * [Product.primary_product_id][google.cloud.retail.v2.Product.primary_product_id] * cannot be empty. * If this field is set to an invalid value other than these, an @@ -46,8 +46,8 @@ public interface ProductLevelConfigOrBuilder * If this field is `variant` and * [merchant_center_product_id_field][google.cloud.retail.v2.ProductLevelConfig.merchant_center_product_id_field] * is `itemGroupId`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * @@ -68,10 +68,10 @@ public interface ProductLevelConfigOrBuilder * default to * [Product.Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] if * unset. - * * `variant`: You can only ingest - * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] - * [Product][google.cloud.retail.v2.Product]s. - * This means + * * `variant` (incompatible with Retail Search): You can only + * ingest + * [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] + * [Product][google.cloud.retail.v2.Product]s. This means * [Product.primary_product_id][google.cloud.retail.v2.Product.primary_product_id] * cannot be empty. * If this field is set to an invalid value other than these, an @@ -79,8 +79,8 @@ public interface ProductLevelConfigOrBuilder * If this field is `variant` and * [merchant_center_product_id_field][google.cloud.retail.v2.ProductLevelConfig.merchant_center_product_id_field] * is `itemGroupId`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * @@ -107,8 +107,8 @@ public interface ProductLevelConfigOrBuilder * If this field is `itemGroupId` and * [ingestion_product_type][google.cloud.retail.v2.ProductLevelConfig.ingestion_product_type] * is `variant`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * @@ -134,8 +134,8 @@ public interface ProductLevelConfigOrBuilder * If this field is `itemGroupId` and * [ingestion_product_type][google.cloud.retail.v2.ProductLevelConfig.ingestion_product_type] * is `variant`, an INVALID_ARGUMENT error is returned. - * See [Using product - * levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + * See [Product + * levels](https://cloud.google.com/retail/docs/catalog#product-levels) * for more details. * * diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductOrBuilder.java index c6704f3d..665f578e 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductOrBuilder.java @@ -2033,10 +2033,10 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * following fields are always returned in by default: * * [name][google.cloud.retail.v2.Product.name] * * [color_info][google.cloud.retail.v2.Product.color_info] - * Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + * The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is * returned. * Note: Returning more fields in - * [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase + * [SearchResponse][google.cloud.retail.v2.SearchResponse] can increase * response payload size and serving latency. * * @@ -2088,10 +2088,10 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * following fields are always returned in by default: * * [name][google.cloud.retail.v2.Product.name] * * [color_info][google.cloud.retail.v2.Product.color_info] - * Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + * The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is * returned. * Note: Returning more fields in - * [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase + * [SearchResponse][google.cloud.retail.v2.SearchResponse] can increase * response payload size and serving latency. * * @@ -2143,10 +2143,10 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * following fields are always returned in by default: * * [name][google.cloud.retail.v2.Product.name] * * [color_info][google.cloud.retail.v2.Product.color_info] - * Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + * The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is * returned. * Note: Returning more fields in - * [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase + * [SearchResponse][google.cloud.retail.v2.SearchResponse] can increase * response payload size and serving latency. * * diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PurgeConfigProto.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PurgeConfigProto.java index 5be507ce..c0e27dfd 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PurgeConfigProto.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PurgeConfigProto.java @@ -51,16 +51,17 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "\n)google/cloud/retail/v2/purge_config.pr" + "oto\022\026google.cloud.retail.v2\032\037google/api/" + "field_behavior.proto\032\031google/api/resourc" - + "e.proto\"\017\n\rPurgeMetadata\"Q\n\026PurgeUserEve" - + "ntsRequest\022\023\n\006parent\030\001 \001(\tB\003\340A\002\022\023\n\006filte" - + "r\030\002 \001(\tB\003\340A\002\022\r\n\005force\030\003 \001(\010\"6\n\027PurgeUser" - + "EventsResponse\022\033\n\023purged_events_count\030\001 " - + "\001(\003B\305\001\n\032com.google.cloud.retail.v2B\020Purg" - + "eConfigProtoP\001Z * - * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * * * @return The parent. */ @@ -162,7 +164,9 @@ public java.lang.String getParent() { * `projects/${projectId}/locations/global/catalogs/${catalogId}` * * - * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * * * @return The bytes for parent. */ @@ -643,7 +647,9 @@ public Builder mergeFrom( * `projects/${projectId}/locations/global/catalogs/${catalogId}` * * - * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * * * @return The parent. */ @@ -667,7 +673,9 @@ public java.lang.String getParent() { * `projects/${projectId}/locations/global/catalogs/${catalogId}` * * - * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * * * @return The bytes for parent. */ @@ -691,7 +699,9 @@ public com.google.protobuf.ByteString getParentBytes() { * `projects/${projectId}/locations/global/catalogs/${catalogId}` * * - * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * * * @param value The parent to set. * @return This builder for chaining. @@ -714,7 +724,9 @@ public Builder setParent(java.lang.String value) { * `projects/${projectId}/locations/global/catalogs/${catalogId}` * * - * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * * * @return This builder for chaining. */ @@ -733,7 +745,9 @@ public Builder clearParent() { * `projects/${projectId}/locations/global/catalogs/${catalogId}` * * - * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * * * @param value The bytes for parent to set. * @return This builder for chaining. diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PurgeUserEventsRequestOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PurgeUserEventsRequestOrBuilder.java index fe1071fa..da6bd243 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PurgeUserEventsRequestOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PurgeUserEventsRequestOrBuilder.java @@ -32,7 +32,9 @@ public interface PurgeUserEventsRequestOrBuilder * `projects/${projectId}/locations/global/catalogs/${catalogId}` * * - * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * * * @return The parent. */ @@ -46,7 +48,9 @@ public interface PurgeUserEventsRequestOrBuilder * `projects/${projectId}/locations/global/catalogs/${catalogId}` * * - * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * * * @return The bytes for parent. */ diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveFulfillmentPlacesRequest.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveFulfillmentPlacesRequest.java index d2163747..e37b48f8 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveFulfillmentPlacesRequest.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveFulfillmentPlacesRequest.java @@ -240,7 +240,8 @@ public com.google.protobuf.ByteString getProductBytes() { * * "custom-type-5" * If this field is set to an invalid value other than these, an * INVALID_ARGUMENT error is returned. - * This field directly corresponds to [Product.fulfillment_info.type][]. + * This field directly corresponds to + * [Product.fulfillment_info.type][google.cloud.retail.v2.FulfillmentInfo.type]. * * * string type = 2 [(.google.api.field_behavior) = REQUIRED]; @@ -277,7 +278,8 @@ public java.lang.String getType() { * * "custom-type-5" * If this field is set to an invalid value other than these, an * INVALID_ARGUMENT error is returned. - * This field directly corresponds to [Product.fulfillment_info.type][]. + * This field directly corresponds to + * [Product.fulfillment_info.type][google.cloud.retail.v2.FulfillmentInfo.type]. * * * string type = 2 [(.google.api.field_behavior) = REQUIRED]; @@ -1039,7 +1041,8 @@ public Builder setProductBytes(com.google.protobuf.ByteString value) { * * "custom-type-5" * If this field is set to an invalid value other than these, an * INVALID_ARGUMENT error is returned. - * This field directly corresponds to [Product.fulfillment_info.type][]. + * This field directly corresponds to + * [Product.fulfillment_info.type][google.cloud.retail.v2.FulfillmentInfo.type]. * * * string type = 2 [(.google.api.field_behavior) = REQUIRED]; @@ -1075,7 +1078,8 @@ public java.lang.String getType() { * * "custom-type-5" * If this field is set to an invalid value other than these, an * INVALID_ARGUMENT error is returned. - * This field directly corresponds to [Product.fulfillment_info.type][]. + * This field directly corresponds to + * [Product.fulfillment_info.type][google.cloud.retail.v2.FulfillmentInfo.type]. * * * string type = 2 [(.google.api.field_behavior) = REQUIRED]; @@ -1111,7 +1115,8 @@ public com.google.protobuf.ByteString getTypeBytes() { * * "custom-type-5" * If this field is set to an invalid value other than these, an * INVALID_ARGUMENT error is returned. - * This field directly corresponds to [Product.fulfillment_info.type][]. + * This field directly corresponds to + * [Product.fulfillment_info.type][google.cloud.retail.v2.FulfillmentInfo.type]. * * * string type = 2 [(.google.api.field_behavior) = REQUIRED]; @@ -1146,7 +1151,8 @@ public Builder setType(java.lang.String value) { * * "custom-type-5" * If this field is set to an invalid value other than these, an * INVALID_ARGUMENT error is returned. - * This field directly corresponds to [Product.fulfillment_info.type][]. + * This field directly corresponds to + * [Product.fulfillment_info.type][google.cloud.retail.v2.FulfillmentInfo.type]. * * * string type = 2 [(.google.api.field_behavior) = REQUIRED]; @@ -1177,7 +1183,8 @@ public Builder clearType() { * * "custom-type-5" * If this field is set to an invalid value other than these, an * INVALID_ARGUMENT error is returned. - * This field directly corresponds to [Product.fulfillment_info.type][]. + * This field directly corresponds to + * [Product.fulfillment_info.type][google.cloud.retail.v2.FulfillmentInfo.type]. * * * string type = 2 [(.google.api.field_behavior) = REQUIRED]; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveFulfillmentPlacesRequestOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveFulfillmentPlacesRequestOrBuilder.java index 8df880a2..70ed35fc 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveFulfillmentPlacesRequestOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveFulfillmentPlacesRequestOrBuilder.java @@ -80,7 +80,8 @@ public interface RemoveFulfillmentPlacesRequestOrBuilder * * "custom-type-5" * If this field is set to an invalid value other than these, an * INVALID_ARGUMENT error is returned. - * This field directly corresponds to [Product.fulfillment_info.type][]. + * This field directly corresponds to + * [Product.fulfillment_info.type][google.cloud.retail.v2.FulfillmentInfo.type]. * * * string type = 2 [(.google.api.field_behavior) = REQUIRED]; @@ -106,7 +107,8 @@ public interface RemoveFulfillmentPlacesRequestOrBuilder * * "custom-type-5" * If this field is set to an invalid value other than these, an * INVALID_ARGUMENT error is returned. - * This field directly corresponds to [Product.fulfillment_info.type][]. + * This field directly corresponds to + * [Product.fulfillment_info.type][google.cloud.retail.v2.FulfillmentInfo.type]. * * * string type = 2 [(.google.api.field_behavior) = REQUIRED]; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchRequest.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchRequest.java index b8aa855c..245f46e1 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchRequest.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchRequest.java @@ -272,6 +272,37 @@ private SearchRequest( personalizationSpec_ = subBuilder.buildPartial(); } + break; + } + case 274: + { + if (!((mutable_bitField0_ & 0x00000008) != 0)) { + labels_ = + com.google.protobuf.MapField.newMapField(LabelsDefaultEntryHolder.defaultEntry); + mutable_bitField0_ |= 0x00000008; + } + com.google.protobuf.MapEntry labels__ = + input.readMessage( + LabelsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + labels_.getMutableMap().put(labels__.getKey(), labels__.getValue()); + break; + } + case 282: + { + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Builder subBuilder = + null; + if (((bitField0_ & 0x00000001) != 0)) { + subBuilder = spellCorrectionSpec_.toBuilder(); + } + spellCorrectionSpec_ = + input.readMessage( + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.parser(), + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(spellCorrectionSpec_); + spellCorrectionSpec_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; break; } default: @@ -309,6 +340,17 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { .internal_static_google_cloud_retail_v2_SearchRequest_descriptor; } + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapField internalGetMapField(int number) { + switch (number) { + case 34: + return internalGetLabels(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { @@ -364,7 +406,9 @@ public enum SearchMode implements com.google.protobuf.ProtocolMessageEnum { *
      * Only faceted search will be performed. The product search will be
      * disabled.
-     * When in this mode, one or both of [SearchRequest.facet_spec][] and
+     * When in this mode, one or both of
+     * [SearchRequest.facet_specs][google.cloud.retail.v2.SearchRequest.facet_specs]
+     * and
      * [SearchRequest.dynamic_facet_spec][google.cloud.retail.v2.SearchRequest.dynamic_facet_spec]
      * should be set. Otherwise, an INVALID_ARGUMENT error is returned. Only
      * [SearchResponse.Facet] will be returned. [SearchResponse.SearchResult]
@@ -412,7 +456,9 @@ public enum SearchMode implements com.google.protobuf.ProtocolMessageEnum {
      * 
      * Only faceted search will be performed. The product search will be
      * disabled.
-     * When in this mode, one or both of [SearchRequest.facet_spec][] and
+     * When in this mode, one or both of
+     * [SearchRequest.facet_specs][google.cloud.retail.v2.SearchRequest.facet_specs]
+     * and
      * [SearchRequest.dynamic_facet_spec][google.cloud.retail.v2.SearchRequest.dynamic_facet_spec]
      * should be set. Otherwise, an INVALID_ARGUMENT error is returned. Only
      * [SearchResponse.Facet] will be returned. [SearchResponse.SearchResult]
@@ -576,14 +622,22 @@ public interface FacetSpecOrBuilder
      * By default,
      * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key]
      * is not excluded from the filter unless it is listed in this field.
-     * For example, suppose there are 100 products with color facet "Red" and
-     * 200 products with color facet "Blue". A query containing the filter
-     * "colorFamilies:ANY("Red")" and have "colorFamilies" as
+     * Listing a facet key in this field allows its values to appear as facet
+     * results, even when they are filtered out of search results. Using this
+     * field does not affect what search results are returned.
+     * For example, suppose there are 100 products with the color facet "Red"
+     * and 200 products with the color facet "Blue". A query containing the
+     * filter "colorFamilies:ANY("Red")" and having "colorFamilies" as
      * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key]
-     * will by default return the "Red" with count 100.
-     * If this field contains "colorFamilies", then the query returns both the
-     * "Red" with count 100 and "Blue" with count 200, because the
-     * "colorFamilies" key is now excluded from the filter.
+     * would by default return only "Red" products in the search results, and
+     * also return "Red" with count 100 as the only color facet. Although there
+     * are also blue products available, "Blue" would not be shown as an
+     * available facet value.
+     * If "colorFamilies" is listed in "excludedFilterKeys", then the query
+     * returns the facet values "Red" with count 100 and "Blue" with count
+     * 200, because the "colorFamilies" key is now excluded from the filter.
+     * Because this field doesn't affect search results, the search results
+     * are still correctly filtered to return only "Red" products.
      * A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error
      * is returned.
      * 
@@ -601,14 +655,22 @@ public interface FacetSpecOrBuilder * By default, * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] * is not excluded from the filter unless it is listed in this field. - * For example, suppose there are 100 products with color facet "Red" and - * 200 products with color facet "Blue". A query containing the filter - * "colorFamilies:ANY("Red")" and have "colorFamilies" as + * Listing a facet key in this field allows its values to appear as facet + * results, even when they are filtered out of search results. Using this + * field does not affect what search results are returned. + * For example, suppose there are 100 products with the color facet "Red" + * and 200 products with the color facet "Blue". A query containing the + * filter "colorFamilies:ANY("Red")" and having "colorFamilies" as * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - * will by default return the "Red" with count 100. - * If this field contains "colorFamilies", then the query returns both the - * "Red" with count 100 and "Blue" with count 200, because the - * "colorFamilies" key is now excluded from the filter. + * would by default return only "Red" products in the search results, and + * also return "Red" with count 100 as the only color facet. Although there + * are also blue products available, "Blue" would not be shown as an + * available facet value. + * If "colorFamilies" is listed in "excludedFilterKeys", then the query + * returns the facet values "Red" with count 100 and "Blue" with count + * 200, because the "colorFamilies" key is now excluded from the filter. + * Because this field doesn't affect search results, the search results + * are still correctly filtered to return only "Red" products. * A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. *
@@ -626,14 +688,22 @@ public interface FacetSpecOrBuilder * By default, * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] * is not excluded from the filter unless it is listed in this field. - * For example, suppose there are 100 products with color facet "Red" and - * 200 products with color facet "Blue". A query containing the filter - * "colorFamilies:ANY("Red")" and have "colorFamilies" as + * Listing a facet key in this field allows its values to appear as facet + * results, even when they are filtered out of search results. Using this + * field does not affect what search results are returned. + * For example, suppose there are 100 products with the color facet "Red" + * and 200 products with the color facet "Blue". A query containing the + * filter "colorFamilies:ANY("Red")" and having "colorFamilies" as * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - * will by default return the "Red" with count 100. - * If this field contains "colorFamilies", then the query returns both the - * "Red" with count 100 and "Blue" with count 200, because the - * "colorFamilies" key is now excluded from the filter. + * would by default return only "Red" products in the search results, and + * also return "Red" with count 100 as the only color facet. Although there + * are also blue products available, "Blue" would not be shown as an + * available facet value. + * If "colorFamilies" is listed in "excludedFilterKeys", then the query + * returns the facet values "Red" with count 100 and "Blue" with count + * 200, because the "colorFamilies" key is now excluded from the filter. + * Because this field doesn't affect search results, the search results + * are still correctly filtered to return only "Red" products. * A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @@ -652,14 +722,22 @@ public interface FacetSpecOrBuilder * By default, * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] * is not excluded from the filter unless it is listed in this field. - * For example, suppose there are 100 products with color facet "Red" and - * 200 products with color facet "Blue". A query containing the filter - * "colorFamilies:ANY("Red")" and have "colorFamilies" as + * Listing a facet key in this field allows its values to appear as facet + * results, even when they are filtered out of search results. Using this + * field does not affect what search results are returned. + * For example, suppose there are 100 products with the color facet "Red" + * and 200 products with the color facet "Blue". A query containing the + * filter "colorFamilies:ANY("Red")" and having "colorFamilies" as * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - * will by default return the "Red" with count 100. - * If this field contains "colorFamilies", then the query returns both the - * "Red" with count 100 and "Blue" with count 200, because the - * "colorFamilies" key is now excluded from the filter. + * would by default return only "Red" products in the search results, and + * also return "Red" with count 100 as the only color facet. Although there + * are also blue products available, "Blue" would not be shown as an + * available facet value. + * If "colorFamilies" is listed in "excludedFilterKeys", then the query + * returns the facet values "Red" with count 100 and "Blue" with count + * 200, because the "colorFamilies" key is now excluded from the filter. + * Because this field doesn't affect search results, the search results + * are still correctly filtered to return only "Red" products. * A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @@ -1008,8 +1086,8 @@ public interface FacetKeyOrBuilder * Only get facet for the given restricted values. For example, when using * "pickupInStore" as key and set restricted values to * ["store123", "store456"], only facets for "store123" and "store456" are - * returned. Only supported on textual fields and fulfillments. - * Maximum is 20. + * returned. Only supported on predefined textual fields, custom textual + * attributes and fulfillments. Maximum is 20. * Must be set for the fulfillment facet keys: * * pickupInStore * * shipToStore @@ -1034,8 +1112,8 @@ public interface FacetKeyOrBuilder * Only get facet for the given restricted values. For example, when using * "pickupInStore" as key and set restricted values to * ["store123", "store456"], only facets for "store123" and "store456" are - * returned. Only supported on textual fields and fulfillments. - * Maximum is 20. + * returned. Only supported on predefined textual fields, custom textual + * attributes and fulfillments. Maximum is 20. * Must be set for the fulfillment facet keys: * * pickupInStore * * shipToStore @@ -1060,8 +1138,8 @@ public interface FacetKeyOrBuilder * Only get facet for the given restricted values. For example, when using * "pickupInStore" as key and set restricted values to * ["store123", "store456"], only facets for "store123" and "store456" are - * returned. Only supported on textual fields and fulfillments. - * Maximum is 20. + * returned. Only supported on predefined textual fields, custom textual + * attributes and fulfillments. Maximum is 20. * Must be set for the fulfillment facet keys: * * pickupInStore * * shipToStore @@ -1087,8 +1165,8 @@ public interface FacetKeyOrBuilder * Only get facet for the given restricted values. For example, when using * "pickupInStore" as key and set restricted values to * ["store123", "store456"], only facets for "store123" and "store456" are - * returned. Only supported on textual fields and fulfillments. - * Maximum is 20. + * returned. Only supported on predefined textual fields, custom textual + * attributes and fulfillments. Maximum is 20. * Must be set for the fulfillment facet keys: * * pickupInStore * * shipToStore @@ -1733,8 +1811,8 @@ public com.google.cloud.retail.v2.IntervalOrBuilder getIntervalsOrBuilder(int in * Only get facet for the given restricted values. For example, when using * "pickupInStore" as key and set restricted values to * ["store123", "store456"], only facets for "store123" and "store456" are - * returned. Only supported on textual fields and fulfillments. - * Maximum is 20. + * returned. Only supported on predefined textual fields, custom textual + * attributes and fulfillments. Maximum is 20. * Must be set for the fulfillment facet keys: * * pickupInStore * * shipToStore @@ -1761,8 +1839,8 @@ public com.google.protobuf.ProtocolStringList getRestrictedValuesList() { * Only get facet for the given restricted values. For example, when using * "pickupInStore" as key and set restricted values to * ["store123", "store456"], only facets for "store123" and "store456" are - * returned. Only supported on textual fields and fulfillments. - * Maximum is 20. + * returned. Only supported on predefined textual fields, custom textual + * attributes and fulfillments. Maximum is 20. * Must be set for the fulfillment facet keys: * * pickupInStore * * shipToStore @@ -1789,8 +1867,8 @@ public int getRestrictedValuesCount() { * Only get facet for the given restricted values. For example, when using * "pickupInStore" as key and set restricted values to * ["store123", "store456"], only facets for "store123" and "store456" are - * returned. Only supported on textual fields and fulfillments. - * Maximum is 20. + * returned. Only supported on predefined textual fields, custom textual + * attributes and fulfillments. Maximum is 20. * Must be set for the fulfillment facet keys: * * pickupInStore * * shipToStore @@ -1818,8 +1896,8 @@ public java.lang.String getRestrictedValues(int index) { * Only get facet for the given restricted values. For example, when using * "pickupInStore" as key and set restricted values to * ["store123", "store456"], only facets for "store123" and "store456" are - * returned. Only supported on textual fields and fulfillments. - * Maximum is 20. + * returned. Only supported on predefined textual fields, custom textual + * attributes and fulfillments. Maximum is 20. * Must be set for the fulfillment facet keys: * * pickupInStore * * shipToStore @@ -3365,8 +3443,8 @@ private void ensureRestrictedValuesIsMutable() { * Only get facet for the given restricted values. For example, when using * "pickupInStore" as key and set restricted values to * ["store123", "store456"], only facets for "store123" and "store456" are - * returned. Only supported on textual fields and fulfillments. - * Maximum is 20. + * returned. Only supported on predefined textual fields, custom textual + * attributes and fulfillments. Maximum is 20. * Must be set for the fulfillment facet keys: * * pickupInStore * * shipToStore @@ -3393,8 +3471,8 @@ public com.google.protobuf.ProtocolStringList getRestrictedValuesList() { * Only get facet for the given restricted values. For example, when using * "pickupInStore" as key and set restricted values to * ["store123", "store456"], only facets for "store123" and "store456" are - * returned. Only supported on textual fields and fulfillments. - * Maximum is 20. + * returned. Only supported on predefined textual fields, custom textual + * attributes and fulfillments. Maximum is 20. * Must be set for the fulfillment facet keys: * * pickupInStore * * shipToStore @@ -3421,8 +3499,8 @@ public int getRestrictedValuesCount() { * Only get facet for the given restricted values. For example, when using * "pickupInStore" as key and set restricted values to * ["store123", "store456"], only facets for "store123" and "store456" are - * returned. Only supported on textual fields and fulfillments. - * Maximum is 20. + * returned. Only supported on predefined textual fields, custom textual + * attributes and fulfillments. Maximum is 20. * Must be set for the fulfillment facet keys: * * pickupInStore * * shipToStore @@ -3450,8 +3528,8 @@ public java.lang.String getRestrictedValues(int index) { * Only get facet for the given restricted values. For example, when using * "pickupInStore" as key and set restricted values to * ["store123", "store456"], only facets for "store123" and "store456" are - * returned. Only supported on textual fields and fulfillments. - * Maximum is 20. + * returned. Only supported on predefined textual fields, custom textual + * attributes and fulfillments. Maximum is 20. * Must be set for the fulfillment facet keys: * * pickupInStore * * shipToStore @@ -3479,8 +3557,8 @@ public com.google.protobuf.ByteString getRestrictedValuesBytes(int index) { * Only get facet for the given restricted values. For example, when using * "pickupInStore" as key and set restricted values to * ["store123", "store456"], only facets for "store123" and "store456" are - * returned. Only supported on textual fields and fulfillments. - * Maximum is 20. + * returned. Only supported on predefined textual fields, custom textual + * attributes and fulfillments. Maximum is 20. * Must be set for the fulfillment facet keys: * * pickupInStore * * shipToStore @@ -3515,8 +3593,8 @@ public Builder setRestrictedValues(int index, java.lang.String value) { * Only get facet for the given restricted values. For example, when using * "pickupInStore" as key and set restricted values to * ["store123", "store456"], only facets for "store123" and "store456" are - * returned. Only supported on textual fields and fulfillments. - * Maximum is 20. + * returned. Only supported on predefined textual fields, custom textual + * attributes and fulfillments. Maximum is 20. * Must be set for the fulfillment facet keys: * * pickupInStore * * shipToStore @@ -3550,8 +3628,8 @@ public Builder addRestrictedValues(java.lang.String value) { * Only get facet for the given restricted values. For example, when using * "pickupInStore" as key and set restricted values to * ["store123", "store456"], only facets for "store123" and "store456" are - * returned. Only supported on textual fields and fulfillments. - * Maximum is 20. + * returned. Only supported on predefined textual fields, custom textual + * attributes and fulfillments. Maximum is 20. * Must be set for the fulfillment facet keys: * * pickupInStore * * shipToStore @@ -3582,8 +3660,8 @@ public Builder addAllRestrictedValues(java.lang.Iterable value * Only get facet for the given restricted values. For example, when using * "pickupInStore" as key and set restricted values to * ["store123", "store456"], only facets for "store123" and "store456" are - * returned. Only supported on textual fields and fulfillments. - * Maximum is 20. + * returned. Only supported on predefined textual fields, custom textual + * attributes and fulfillments. Maximum is 20. * Must be set for the fulfillment facet keys: * * pickupInStore * * shipToStore @@ -3613,8 +3691,8 @@ public Builder clearRestrictedValues() { * Only get facet for the given restricted values. For example, when using * "pickupInStore" as key and set restricted values to * ["store123", "store456"], only facets for "store123" and "store456" are - * returned. Only supported on textual fields and fulfillments. - * Maximum is 20. + * returned. Only supported on predefined textual fields, custom textual + * attributes and fulfillments. Maximum is 20. * Must be set for the fulfillment facet keys: * * pickupInStore * * shipToStore @@ -4554,14 +4632,22 @@ public int getLimit() { * By default, * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] * is not excluded from the filter unless it is listed in this field. - * For example, suppose there are 100 products with color facet "Red" and - * 200 products with color facet "Blue". A query containing the filter - * "colorFamilies:ANY("Red")" and have "colorFamilies" as + * Listing a facet key in this field allows its values to appear as facet + * results, even when they are filtered out of search results. Using this + * field does not affect what search results are returned. + * For example, suppose there are 100 products with the color facet "Red" + * and 200 products with the color facet "Blue". A query containing the + * filter "colorFamilies:ANY("Red")" and having "colorFamilies" as * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - * will by default return the "Red" with count 100. - * If this field contains "colorFamilies", then the query returns both the - * "Red" with count 100 and "Blue" with count 200, because the - * "colorFamilies" key is now excluded from the filter. + * would by default return only "Red" products in the search results, and + * also return "Red" with count 100 as the only color facet. Although there + * are also blue products available, "Blue" would not be shown as an + * available facet value. + * If "colorFamilies" is listed in "excludedFilterKeys", then the query + * returns the facet values "Red" with count 100 and "Blue" with count + * 200, because the "colorFamilies" key is now excluded from the filter. + * Because this field doesn't affect search results, the search results + * are still correctly filtered to return only "Red" products. * A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @@ -4581,14 +4667,22 @@ public com.google.protobuf.ProtocolStringList getExcludedFilterKeysList() { * By default, * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] * is not excluded from the filter unless it is listed in this field. - * For example, suppose there are 100 products with color facet "Red" and - * 200 products with color facet "Blue". A query containing the filter - * "colorFamilies:ANY("Red")" and have "colorFamilies" as + * Listing a facet key in this field allows its values to appear as facet + * results, even when they are filtered out of search results. Using this + * field does not affect what search results are returned. + * For example, suppose there are 100 products with the color facet "Red" + * and 200 products with the color facet "Blue". A query containing the + * filter "colorFamilies:ANY("Red")" and having "colorFamilies" as * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - * will by default return the "Red" with count 100. - * If this field contains "colorFamilies", then the query returns both the - * "Red" with count 100 and "Blue" with count 200, because the - * "colorFamilies" key is now excluded from the filter. + * would by default return only "Red" products in the search results, and + * also return "Red" with count 100 as the only color facet. Although there + * are also blue products available, "Blue" would not be shown as an + * available facet value. + * If "colorFamilies" is listed in "excludedFilterKeys", then the query + * returns the facet values "Red" with count 100 and "Blue" with count + * 200, because the "colorFamilies" key is now excluded from the filter. + * Because this field doesn't affect search results, the search results + * are still correctly filtered to return only "Red" products. * A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @@ -4608,14 +4702,22 @@ public int getExcludedFilterKeysCount() { * By default, * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] * is not excluded from the filter unless it is listed in this field. - * For example, suppose there are 100 products with color facet "Red" and - * 200 products with color facet "Blue". A query containing the filter - * "colorFamilies:ANY("Red")" and have "colorFamilies" as + * Listing a facet key in this field allows its values to appear as facet + * results, even when they are filtered out of search results. Using this + * field does not affect what search results are returned. + * For example, suppose there are 100 products with the color facet "Red" + * and 200 products with the color facet "Blue". A query containing the + * filter "colorFamilies:ANY("Red")" and having "colorFamilies" as * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - * will by default return the "Red" with count 100. - * If this field contains "colorFamilies", then the query returns both the - * "Red" with count 100 and "Blue" with count 200, because the - * "colorFamilies" key is now excluded from the filter. + * would by default return only "Red" products in the search results, and + * also return "Red" with count 100 as the only color facet. Although there + * are also blue products available, "Blue" would not be shown as an + * available facet value. + * If "colorFamilies" is listed in "excludedFilterKeys", then the query + * returns the facet values "Red" with count 100 and "Blue" with count + * 200, because the "colorFamilies" key is now excluded from the filter. + * Because this field doesn't affect search results, the search results + * are still correctly filtered to return only "Red" products. * A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @@ -4636,14 +4738,22 @@ public java.lang.String getExcludedFilterKeys(int index) { * By default, * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] * is not excluded from the filter unless it is listed in this field. - * For example, suppose there are 100 products with color facet "Red" and - * 200 products with color facet "Blue". A query containing the filter - * "colorFamilies:ANY("Red")" and have "colorFamilies" as + * Listing a facet key in this field allows its values to appear as facet + * results, even when they are filtered out of search results. Using this + * field does not affect what search results are returned. + * For example, suppose there are 100 products with the color facet "Red" + * and 200 products with the color facet "Blue". A query containing the + * filter "colorFamilies:ANY("Red")" and having "colorFamilies" as * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - * will by default return the "Red" with count 100. - * If this field contains "colorFamilies", then the query returns both the - * "Red" with count 100 and "Blue" with count 200, because the - * "colorFamilies" key is now excluded from the filter. + * would by default return only "Red" products in the search results, and + * also return "Red" with count 100 as the only color facet. Although there + * are also blue products available, "Blue" would not be shown as an + * available facet value. + * If "colorFamilies" is listed in "excludedFilterKeys", then the query + * returns the facet values "Red" with count 100 and "Blue" with count + * 200, because the "colorFamilies" key is now excluded from the filter. + * Because this field doesn't affect search results, the search results + * are still correctly filtered to return only "Red" products. * A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @@ -5383,14 +5493,22 @@ private void ensureExcludedFilterKeysIsMutable() { * By default, * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] * is not excluded from the filter unless it is listed in this field. - * For example, suppose there are 100 products with color facet "Red" and - * 200 products with color facet "Blue". A query containing the filter - * "colorFamilies:ANY("Red")" and have "colorFamilies" as + * Listing a facet key in this field allows its values to appear as facet + * results, even when they are filtered out of search results. Using this + * field does not affect what search results are returned. + * For example, suppose there are 100 products with the color facet "Red" + * and 200 products with the color facet "Blue". A query containing the + * filter "colorFamilies:ANY("Red")" and having "colorFamilies" as * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - * will by default return the "Red" with count 100. - * If this field contains "colorFamilies", then the query returns both the - * "Red" with count 100 and "Blue" with count 200, because the - * "colorFamilies" key is now excluded from the filter. + * would by default return only "Red" products in the search results, and + * also return "Red" with count 100 as the only color facet. Although there + * are also blue products available, "Blue" would not be shown as an + * available facet value. + * If "colorFamilies" is listed in "excludedFilterKeys", then the query + * returns the facet values "Red" with count 100 and "Blue" with count + * 200, because the "colorFamilies" key is now excluded from the filter. + * Because this field doesn't affect search results, the search results + * are still correctly filtered to return only "Red" products. * A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @@ -5410,14 +5528,22 @@ public com.google.protobuf.ProtocolStringList getExcludedFilterKeysList() { * By default, * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] * is not excluded from the filter unless it is listed in this field. - * For example, suppose there are 100 products with color facet "Red" and - * 200 products with color facet "Blue". A query containing the filter - * "colorFamilies:ANY("Red")" and have "colorFamilies" as + * Listing a facet key in this field allows its values to appear as facet + * results, even when they are filtered out of search results. Using this + * field does not affect what search results are returned. + * For example, suppose there are 100 products with the color facet "Red" + * and 200 products with the color facet "Blue". A query containing the + * filter "colorFamilies:ANY("Red")" and having "colorFamilies" as * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - * will by default return the "Red" with count 100. - * If this field contains "colorFamilies", then the query returns both the - * "Red" with count 100 and "Blue" with count 200, because the - * "colorFamilies" key is now excluded from the filter. + * would by default return only "Red" products in the search results, and + * also return "Red" with count 100 as the only color facet. Although there + * are also blue products available, "Blue" would not be shown as an + * available facet value. + * If "colorFamilies" is listed in "excludedFilterKeys", then the query + * returns the facet values "Red" with count 100 and "Blue" with count + * 200, because the "colorFamilies" key is now excluded from the filter. + * Because this field doesn't affect search results, the search results + * are still correctly filtered to return only "Red" products. * A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @@ -5437,14 +5563,22 @@ public int getExcludedFilterKeysCount() { * By default, * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] * is not excluded from the filter unless it is listed in this field. - * For example, suppose there are 100 products with color facet "Red" and - * 200 products with color facet "Blue". A query containing the filter - * "colorFamilies:ANY("Red")" and have "colorFamilies" as + * Listing a facet key in this field allows its values to appear as facet + * results, even when they are filtered out of search results. Using this + * field does not affect what search results are returned. + * For example, suppose there are 100 products with the color facet "Red" + * and 200 products with the color facet "Blue". A query containing the + * filter "colorFamilies:ANY("Red")" and having "colorFamilies" as * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - * will by default return the "Red" with count 100. - * If this field contains "colorFamilies", then the query returns both the - * "Red" with count 100 and "Blue" with count 200, because the - * "colorFamilies" key is now excluded from the filter. + * would by default return only "Red" products in the search results, and + * also return "Red" with count 100 as the only color facet. Although there + * are also blue products available, "Blue" would not be shown as an + * available facet value. + * If "colorFamilies" is listed in "excludedFilterKeys", then the query + * returns the facet values "Red" with count 100 and "Blue" with count + * 200, because the "colorFamilies" key is now excluded from the filter. + * Because this field doesn't affect search results, the search results + * are still correctly filtered to return only "Red" products. * A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @@ -5465,14 +5599,22 @@ public java.lang.String getExcludedFilterKeys(int index) { * By default, * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] * is not excluded from the filter unless it is listed in this field. - * For example, suppose there are 100 products with color facet "Red" and - * 200 products with color facet "Blue". A query containing the filter - * "colorFamilies:ANY("Red")" and have "colorFamilies" as + * Listing a facet key in this field allows its values to appear as facet + * results, even when they are filtered out of search results. Using this + * field does not affect what search results are returned. + * For example, suppose there are 100 products with the color facet "Red" + * and 200 products with the color facet "Blue". A query containing the + * filter "colorFamilies:ANY("Red")" and having "colorFamilies" as * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - * will by default return the "Red" with count 100. - * If this field contains "colorFamilies", then the query returns both the - * "Red" with count 100 and "Blue" with count 200, because the - * "colorFamilies" key is now excluded from the filter. + * would by default return only "Red" products in the search results, and + * also return "Red" with count 100 as the only color facet. Although there + * are also blue products available, "Blue" would not be shown as an + * available facet value. + * If "colorFamilies" is listed in "excludedFilterKeys", then the query + * returns the facet values "Red" with count 100 and "Blue" with count + * 200, because the "colorFamilies" key is now excluded from the filter. + * Because this field doesn't affect search results, the search results + * are still correctly filtered to return only "Red" products. * A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @@ -5493,14 +5635,22 @@ public com.google.protobuf.ByteString getExcludedFilterKeysBytes(int index) { * By default, * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] * is not excluded from the filter unless it is listed in this field. - * For example, suppose there are 100 products with color facet "Red" and - * 200 products with color facet "Blue". A query containing the filter - * "colorFamilies:ANY("Red")" and have "colorFamilies" as + * Listing a facet key in this field allows its values to appear as facet + * results, even when they are filtered out of search results. Using this + * field does not affect what search results are returned. + * For example, suppose there are 100 products with the color facet "Red" + * and 200 products with the color facet "Blue". A query containing the + * filter "colorFamilies:ANY("Red")" and having "colorFamilies" as * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - * will by default return the "Red" with count 100. - * If this field contains "colorFamilies", then the query returns both the - * "Red" with count 100 and "Blue" with count 200, because the - * "colorFamilies" key is now excluded from the filter. + * would by default return only "Red" products in the search results, and + * also return "Red" with count 100 as the only color facet. Although there + * are also blue products available, "Blue" would not be shown as an + * available facet value. + * If "colorFamilies" is listed in "excludedFilterKeys", then the query + * returns the facet values "Red" with count 100 and "Blue" with count + * 200, because the "colorFamilies" key is now excluded from the filter. + * Because this field doesn't affect search results, the search results + * are still correctly filtered to return only "Red" products. * A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @@ -5528,14 +5678,22 @@ public Builder setExcludedFilterKeys(int index, java.lang.String value) { * By default, * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] * is not excluded from the filter unless it is listed in this field. - * For example, suppose there are 100 products with color facet "Red" and - * 200 products with color facet "Blue". A query containing the filter - * "colorFamilies:ANY("Red")" and have "colorFamilies" as + * Listing a facet key in this field allows its values to appear as facet + * results, even when they are filtered out of search results. Using this + * field does not affect what search results are returned. + * For example, suppose there are 100 products with the color facet "Red" + * and 200 products with the color facet "Blue". A query containing the + * filter "colorFamilies:ANY("Red")" and having "colorFamilies" as * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - * will by default return the "Red" with count 100. - * If this field contains "colorFamilies", then the query returns both the - * "Red" with count 100 and "Blue" with count 200, because the - * "colorFamilies" key is now excluded from the filter. + * would by default return only "Red" products in the search results, and + * also return "Red" with count 100 as the only color facet. Although there + * are also blue products available, "Blue" would not be shown as an + * available facet value. + * If "colorFamilies" is listed in "excludedFilterKeys", then the query + * returns the facet values "Red" with count 100 and "Blue" with count + * 200, because the "colorFamilies" key is now excluded from the filter. + * Because this field doesn't affect search results, the search results + * are still correctly filtered to return only "Red" products. * A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @@ -5562,14 +5720,22 @@ public Builder addExcludedFilterKeys(java.lang.String value) { * By default, * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] * is not excluded from the filter unless it is listed in this field. - * For example, suppose there are 100 products with color facet "Red" and - * 200 products with color facet "Blue". A query containing the filter - * "colorFamilies:ANY("Red")" and have "colorFamilies" as + * Listing a facet key in this field allows its values to appear as facet + * results, even when they are filtered out of search results. Using this + * field does not affect what search results are returned. + * For example, suppose there are 100 products with the color facet "Red" + * and 200 products with the color facet "Blue". A query containing the + * filter "colorFamilies:ANY("Red")" and having "colorFamilies" as * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - * will by default return the "Red" with count 100. - * If this field contains "colorFamilies", then the query returns both the - * "Red" with count 100 and "Blue" with count 200, because the - * "colorFamilies" key is now excluded from the filter. + * would by default return only "Red" products in the search results, and + * also return "Red" with count 100 as the only color facet. Although there + * are also blue products available, "Blue" would not be shown as an + * available facet value. + * If "colorFamilies" is listed in "excludedFilterKeys", then the query + * returns the facet values "Red" with count 100 and "Blue" with count + * 200, because the "colorFamilies" key is now excluded from the filter. + * Because this field doesn't affect search results, the search results + * are still correctly filtered to return only "Red" products. * A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @@ -5593,14 +5759,22 @@ public Builder addAllExcludedFilterKeys(java.lang.Iterable val * By default, * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] * is not excluded from the filter unless it is listed in this field. - * For example, suppose there are 100 products with color facet "Red" and - * 200 products with color facet "Blue". A query containing the filter - * "colorFamilies:ANY("Red")" and have "colorFamilies" as + * Listing a facet key in this field allows its values to appear as facet + * results, even when they are filtered out of search results. Using this + * field does not affect what search results are returned. + * For example, suppose there are 100 products with the color facet "Red" + * and 200 products with the color facet "Blue". A query containing the + * filter "colorFamilies:ANY("Red")" and having "colorFamilies" as * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - * will by default return the "Red" with count 100. - * If this field contains "colorFamilies", then the query returns both the - * "Red" with count 100 and "Blue" with count 200, because the - * "colorFamilies" key is now excluded from the filter. + * would by default return only "Red" products in the search results, and + * also return "Red" with count 100 as the only color facet. Although there + * are also blue products available, "Blue" would not be shown as an + * available facet value. + * If "colorFamilies" is listed in "excludedFilterKeys", then the query + * returns the facet values "Red" with count 100 and "Blue" with count + * 200, because the "colorFamilies" key is now excluded from the filter. + * Because this field doesn't affect search results, the search results + * are still correctly filtered to return only "Red" products. * A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @@ -5623,14 +5797,22 @@ public Builder clearExcludedFilterKeys() { * By default, * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] * is not excluded from the filter unless it is listed in this field. - * For example, suppose there are 100 products with color facet "Red" and - * 200 products with color facet "Blue". A query containing the filter - * "colorFamilies:ANY("Red")" and have "colorFamilies" as + * Listing a facet key in this field allows its values to appear as facet + * results, even when they are filtered out of search results. Using this + * field does not affect what search results are returned. + * For example, suppose there are 100 products with the color facet "Red" + * and 200 products with the color facet "Blue". A query containing the + * filter "colorFamilies:ANY("Red")" and having "colorFamilies" as * [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - * will by default return the "Red" with count 100. - * If this field contains "colorFamilies", then the query returns both the - * "Red" with count 100 and "Blue" with count 200, because the - * "colorFamilies" key is now excluded from the filter. + * would by default return only "Red" products in the search results, and + * also return "Red" with count 100 as the only color facet. Although there + * are also blue products available, "Blue" would not be shown as an + * available facet value. + * If "colorFamilies" is listed in "excludedFilterKeys", then the query + * returns the facet values "Red" with count 100 and "Blue" with count + * 200, because the "colorFamilies" key is now excluded from the filter. + * Because this field doesn't affect search results, the search results + * are still correctly filtered to return only "Red" products. * A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @@ -6650,7 +6832,7 @@ public interface BoostSpecOrBuilder * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -6666,7 +6848,7 @@ public interface BoostSpecOrBuilder * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -6682,7 +6864,7 @@ com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec getConditi * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -6697,7 +6879,7 @@ com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec getConditi * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -6715,7 +6897,7 @@ com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec getConditi * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -7810,7 +7992,7 @@ public com.google.protobuf.Parser getParserForType() { * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -7829,7 +8011,7 @@ public com.google.protobuf.Parser getParserForType() { * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -7850,7 +8032,7 @@ public com.google.protobuf.Parser getParserForType() { * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -7868,7 +8050,7 @@ public int getConditionBoostSpecsCount() { * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -7887,7 +8069,7 @@ public int getConditionBoostSpecsCount() { * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8360,7 +8542,7 @@ private void ensureConditionBoostSpecsIsMutable() { * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8382,7 +8564,7 @@ private void ensureConditionBoostSpecsIsMutable() { * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8403,7 +8585,7 @@ public int getConditionBoostSpecsCount() { * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8425,7 +8607,7 @@ public int getConditionBoostSpecsCount() { * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8453,7 +8635,7 @@ public Builder setConditionBoostSpecs( * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8480,7 +8662,7 @@ public Builder setConditionBoostSpecs( * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8508,7 +8690,7 @@ public Builder addConditionBoostSpecs( * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8536,7 +8718,7 @@ public Builder addConditionBoostSpecs( * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8562,7 +8744,7 @@ public Builder addConditionBoostSpecs( * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8589,7 +8771,7 @@ public Builder addConditionBoostSpecs( * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8616,7 +8798,7 @@ public Builder addAllConditionBoostSpecs( * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8640,7 +8822,7 @@ public Builder clearConditionBoostSpecs() { * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8664,7 +8846,7 @@ public Builder removeConditionBoostSpecs(int index) { * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8682,7 +8864,7 @@ public Builder removeConditionBoostSpecs(int index) { * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8704,7 +8886,7 @@ public Builder removeConditionBoostSpecs(int index) { * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8728,7 +8910,7 @@ public Builder removeConditionBoostSpecs(int index) { * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8749,7 +8931,7 @@ public Builder removeConditionBoostSpecs(int index) { * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -8771,7 +8953,7 @@ public Builder removeConditionBoostSpecs(int index) { * Condition boost specifications. If a product matches multiple conditions * in the specifictions, boost scores from these specifications are all * applied and combined in a non-linear way. Maximum number of - * specifications is 10. + * specifications is 20. * * * @@ -10694,227 +10876,1064 @@ public com.google.protobuf.Parser getParserForType() { } } - public static final int PLACEMENT_FIELD_NUMBER = 1; - private volatile java.lang.Object placement_; - /** - * - * - *
-   * Required. The resource name of the search engine placement, such as
-   * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`
-   * This field is used to identify the serving configuration name and the set
-   * of models that will be used to make the search.
-   * 
- * - * string placement = 1 [(.google.api.field_behavior) = REQUIRED]; - * - * @return The placement. - */ - @java.lang.Override - public java.lang.String getPlacement() { - java.lang.Object ref = placement_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - placement_ = s; - return s; - } - } - /** - * - * - *
-   * Required. The resource name of the search engine placement, such as
-   * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`
-   * This field is used to identify the serving configuration name and the set
-   * of models that will be used to make the search.
-   * 
- * - * string placement = 1 [(.google.api.field_behavior) = REQUIRED]; - * - * @return The bytes for placement. - */ - @java.lang.Override - public com.google.protobuf.ByteString getPlacementBytes() { - java.lang.Object ref = placement_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - placement_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + public interface SpellCorrectionSpecOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec) + com.google.protobuf.MessageOrBuilder { - public static final int BRANCH_FIELD_NUMBER = 2; - private volatile java.lang.Object branch_; - /** - * - * - *
-   * The branch resource name, such as
-   * `projects/*/locations/global/catalogs/default_catalog/branches/0`.
-   * Use "default_branch" as the branch ID or leave this field empty, to search
-   * products under the default branch.
-   * 
- * - * string branch = 2 [(.google.api.resource_reference) = { ... } - * - * @return The branch. - */ - @java.lang.Override - public java.lang.String getBranch() { - java.lang.Object ref = branch_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - branch_ = s; - return s; - } + /** + * + * + *
+     * The mode under which spell correction should take effect to
+     * replace the original search query. Default to
+     * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.AUTO].
+     * 
+ * + * .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode mode = 1; + * + * @return The enum numeric value on the wire for mode. + */ + int getModeValue(); + /** + * + * + *
+     * The mode under which spell correction should take effect to
+     * replace the original search query. Default to
+     * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.AUTO].
+     * 
+ * + * .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode mode = 1; + * + * @return The mode. + */ + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode getMode(); } /** * * *
-   * The branch resource name, such as
-   * `projects/*/locations/global/catalogs/default_catalog/branches/0`.
-   * Use "default_branch" as the branch ID or leave this field empty, to search
-   * products under the default branch.
+   * The specification for query spell correction.
    * 
* - * string branch = 2 [(.google.api.resource_reference) = { ... } - * - * @return The bytes for branch. + * Protobuf type {@code google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec} */ - @java.lang.Override - public com.google.protobuf.ByteString getBranchBytes() { - java.lang.Object ref = branch_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - branch_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + public static final class SpellCorrectionSpec extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec) + SpellCorrectionSpecOrBuilder { + private static final long serialVersionUID = 0L; + // Use SpellCorrectionSpec.newBuilder() to construct. + private SpellCorrectionSpec(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); } - } - public static final int QUERY_FIELD_NUMBER = 3; - private volatile java.lang.Object query_; - /** - * - * - *
-   * Raw search query.
-   * 
- * - * string query = 3; - * - * @return The query. - */ - @java.lang.Override - public java.lang.String getQuery() { - java.lang.Object ref = query_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - query_ = s; - return s; - } - } - /** - * - * - *
-   * Raw search query.
-   * 
- * - * string query = 3; - * - * @return The bytes for query. - */ - @java.lang.Override - public com.google.protobuf.ByteString getQueryBytes() { - java.lang.Object ref = query_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - query_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + private SpellCorrectionSpec() { + mode_ = 0; } - } - public static final int VISITOR_ID_FIELD_NUMBER = 4; - private volatile java.lang.Object visitorId_; - /** - * - * - *
-   * Required. A unique identifier for tracking visitors. For example, this
-   * could be implemented with an HTTP cookie, which should be able to uniquely
-   * identify a visitor on a single device. This unique identifier should not
-   * change if the visitor logs in or out of the website.
-   * This should be the same identifier as
-   * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id].
-   * The field must be a UTF-8 encoded string with a length limit of 128
-   * characters. Otherwise, an INVALID_ARGUMENT error is returned.
-   * 
- * - * string visitor_id = 4 [(.google.api.field_behavior) = REQUIRED]; - * - * @return The visitorId. - */ - @java.lang.Override - public java.lang.String getVisitorId() { - java.lang.Object ref = visitorId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - visitorId_ = s; - return s; + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new SpellCorrectionSpec(); } - } - /** - * - * - *
-   * Required. A unique identifier for tracking visitors. For example, this
-   * could be implemented with an HTTP cookie, which should be able to uniquely
-   * identify a visitor on a single device. This unique identifier should not
-   * change if the visitor logs in or out of the website.
-   * This should be the same identifier as
-   * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id].
-   * The field must be a UTF-8 encoded string with a length limit of 128
-   * characters. Otherwise, an INVALID_ARGUMENT error is returned.
-   * 
- * - * string visitor_id = 4 [(.google.api.field_behavior) = REQUIRED]; - * - * @return The bytes for visitorId. - */ - @java.lang.Override - public com.google.protobuf.ByteString getVisitorIdBytes() { - java.lang.Object ref = visitorId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - visitorId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; } - } + + private SpellCorrectionSpec( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: + { + int rawValue = input.readEnum(); + + mode_ = rawValue; + break; + } + default: + { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.retail.v2.SearchServiceProto + .internal_static_google_cloud_retail_v2_SearchRequest_SpellCorrectionSpec_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.retail.v2.SearchServiceProto + .internal_static_google_cloud_retail_v2_SearchRequest_SpellCorrectionSpec_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.class, + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Builder.class); + } + + /** + * + * + *
+     * Enum describing under which mode spell correction should occur.
+     * 
+ * + * Protobuf enum {@code google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode} + */ + public enum Mode implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+       * Unspecified spell correction mode. This defaults to
+       * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.AUTO].
+       * 
+ * + * MODE_UNSPECIFIED = 0; + */ + MODE_UNSPECIFIED(0), + /** + * + * + *
+       * Google Retail Search will try to find a spell suggestion if there
+       * is any and put in the
+       * [SearchResponse.corrected_query][google.cloud.retail.v2.SearchResponse.corrected_query].
+       * The spell suggestion will not be used as the search query.
+       * 
+ * + * SUGGESTION_ONLY = 1; + */ + SUGGESTION_ONLY(1), + /** + * + * + *
+       * Automatic spell correction built by Google Retail Search. Search will
+       * be based on the corrected query if found.
+       * 
+ * + * AUTO = 2; + */ + AUTO(2), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+       * Unspecified spell correction mode. This defaults to
+       * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.AUTO].
+       * 
+ * + * MODE_UNSPECIFIED = 0; + */ + public static final int MODE_UNSPECIFIED_VALUE = 0; + /** + * + * + *
+       * Google Retail Search will try to find a spell suggestion if there
+       * is any and put in the
+       * [SearchResponse.corrected_query][google.cloud.retail.v2.SearchResponse.corrected_query].
+       * The spell suggestion will not be used as the search query.
+       * 
+ * + * SUGGESTION_ONLY = 1; + */ + public static final int SUGGESTION_ONLY_VALUE = 1; + /** + * + * + *
+       * Automatic spell correction built by Google Retail Search. Search will
+       * be based on the corrected query if found.
+       * 
+ * + * AUTO = 2; + */ + public static final int AUTO_VALUE = 2; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static Mode valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static Mode forNumber(int value) { + switch (value) { + case 0: + return MODE_UNSPECIFIED; + case 1: + return SUGGESTION_ONLY; + case 2: + return AUTO; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public Mode findValueByNumber(int number) { + return Mode.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final Mode[] VALUES = values(); + + public static Mode valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private Mode(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode) + } + + public static final int MODE_FIELD_NUMBER = 1; + private int mode_; + /** + * + * + *
+     * The mode under which spell correction should take effect to
+     * replace the original search query. Default to
+     * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.AUTO].
+     * 
+ * + * .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode mode = 1; + * + * @return The enum numeric value on the wire for mode. + */ + @java.lang.Override + public int getModeValue() { + return mode_; + } + /** + * + * + *
+     * The mode under which spell correction should take effect to
+     * replace the original search query. Default to
+     * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.AUTO].
+     * 
+ * + * .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode mode = 1; + * + * @return The mode. + */ + @java.lang.Override + public com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode getMode() { + @SuppressWarnings("deprecation") + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode result = + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.valueOf(mode_); + return result == null + ? com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.UNRECOGNIZED + : result; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (mode_ + != com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.MODE_UNSPECIFIED + .getNumber()) { + output.writeEnum(1, mode_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (mode_ + != com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.MODE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, mode_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec)) { + return super.equals(obj); + } + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec other = + (com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec) obj; + + if (mode_ != other.mode_) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + MODE_FIELD_NUMBER; + hash = (53 * hash) + mode_; + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * + * + *
+     * The specification for query spell correction.
+     * 
+ * + * Protobuf type {@code google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec) + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpecOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.retail.v2.SearchServiceProto + .internal_static_google_cloud_retail_v2_SearchRequest_SpellCorrectionSpec_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.retail.v2.SearchServiceProto + .internal_static_google_cloud_retail_v2_SearchRequest_SpellCorrectionSpec_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.class, + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Builder.class); + } + + // Construct using com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {} + } + + @java.lang.Override + public Builder clear() { + super.clear(); + mode_ = 0; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.retail.v2.SearchServiceProto + .internal_static_google_cloud_retail_v2_SearchRequest_SpellCorrectionSpec_descriptor; + } + + @java.lang.Override + public com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec + getDefaultInstanceForType() { + return com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec build() { + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec buildPartial() { + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec result = + new com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec(this); + result.mode_ = mode_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec) { + return mergeFrom((com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec other) { + if (other + == com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.getDefaultInstance()) + return this; + if (other.mode_ != 0) { + setModeValue(other.getModeValue()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = + (com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec) + e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int mode_ = 0; + /** + * + * + *
+       * The mode under which spell correction should take effect to
+       * replace the original search query. Default to
+       * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.AUTO].
+       * 
+ * + * .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode mode = 1; + * + * @return The enum numeric value on the wire for mode. + */ + @java.lang.Override + public int getModeValue() { + return mode_; + } + /** + * + * + *
+       * The mode under which spell correction should take effect to
+       * replace the original search query. Default to
+       * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.AUTO].
+       * 
+ * + * .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode mode = 1; + * + * @param value The enum numeric value on the wire for mode to set. + * @return This builder for chaining. + */ + public Builder setModeValue(int value) { + + mode_ = value; + onChanged(); + return this; + } + /** + * + * + *
+       * The mode under which spell correction should take effect to
+       * replace the original search query. Default to
+       * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.AUTO].
+       * 
+ * + * .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode mode = 1; + * + * @return The mode. + */ + @java.lang.Override + public com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode getMode() { + @SuppressWarnings("deprecation") + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode result = + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.valueOf(mode_); + return result == null + ? com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.UNRECOGNIZED + : result; + } + /** + * + * + *
+       * The mode under which spell correction should take effect to
+       * replace the original search query. Default to
+       * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.AUTO].
+       * 
+ * + * .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode mode = 1; + * + * @param value The mode to set. + * @return This builder for chaining. + */ + public Builder setMode( + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode value) { + if (value == null) { + throw new NullPointerException(); + } + + mode_ = value.getNumber(); + onChanged(); + return this; + } + /** + * + * + *
+       * The mode under which spell correction should take effect to
+       * replace the original search query. Default to
+       * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.AUTO].
+       * 
+ * + * .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode mode = 1; + * + * @return This builder for chaining. + */ + public Builder clearMode() { + + mode_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec) + } + + // @@protoc_insertion_point(class_scope:google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec) + private static final com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec(); + } + + public static com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SpellCorrectionSpec parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new SpellCorrectionSpec(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + private int bitField0_; + public static final int PLACEMENT_FIELD_NUMBER = 1; + private volatile java.lang.Object placement_; + /** + * + * + *
+   * Required. The resource name of the search engine placement, such as
+   * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`.
+   * This field is used to identify the serving configuration name and the set
+   * of models that will be used to make the search.
+   * 
+ * + * string placement = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The placement. + */ + @java.lang.Override + public java.lang.String getPlacement() { + java.lang.Object ref = placement_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + placement_ = s; + return s; + } + } + /** + * + * + *
+   * Required. The resource name of the search engine placement, such as
+   * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`.
+   * This field is used to identify the serving configuration name and the set
+   * of models that will be used to make the search.
+   * 
+ * + * string placement = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for placement. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPlacementBytes() { + java.lang.Object ref = placement_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + placement_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BRANCH_FIELD_NUMBER = 2; + private volatile java.lang.Object branch_; + /** + * + * + *
+   * The branch resource name, such as
+   * `projects/*/locations/global/catalogs/default_catalog/branches/0`.
+   * Use "default_branch" as the branch ID or leave this field empty, to search
+   * products under the default branch.
+   * 
+ * + * string branch = 2 [(.google.api.resource_reference) = { ... } + * + * @return The branch. + */ + @java.lang.Override + public java.lang.String getBranch() { + java.lang.Object ref = branch_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + branch_ = s; + return s; + } + } + /** + * + * + *
+   * The branch resource name, such as
+   * `projects/*/locations/global/catalogs/default_catalog/branches/0`.
+   * Use "default_branch" as the branch ID or leave this field empty, to search
+   * products under the default branch.
+   * 
+ * + * string branch = 2 [(.google.api.resource_reference) = { ... } + * + * @return The bytes for branch. + */ + @java.lang.Override + public com.google.protobuf.ByteString getBranchBytes() { + java.lang.Object ref = branch_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + branch_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int QUERY_FIELD_NUMBER = 3; + private volatile java.lang.Object query_; + /** + * + * + *
+   * Raw search query.
+   * If this field is empty, the request is considered a category browsing
+   * request and returned results are based on
+   * [filter][google.cloud.retail.v2.SearchRequest.filter] and
+   * [page_categories][google.cloud.retail.v2.SearchRequest.page_categories].
+   * 
+ * + * string query = 3; + * + * @return The query. + */ + @java.lang.Override + public java.lang.String getQuery() { + java.lang.Object ref = query_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + query_ = s; + return s; + } + } + /** + * + * + *
+   * Raw search query.
+   * If this field is empty, the request is considered a category browsing
+   * request and returned results are based on
+   * [filter][google.cloud.retail.v2.SearchRequest.filter] and
+   * [page_categories][google.cloud.retail.v2.SearchRequest.page_categories].
+   * 
+ * + * string query = 3; + * + * @return The bytes for query. + */ + @java.lang.Override + public com.google.protobuf.ByteString getQueryBytes() { + java.lang.Object ref = query_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + query_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int VISITOR_ID_FIELD_NUMBER = 4; + private volatile java.lang.Object visitorId_; + /** + * + * + *
+   * Required. A unique identifier for tracking visitors. For example, this
+   * could be implemented with an HTTP cookie, which should be able to uniquely
+   * identify a visitor on a single device. This unique identifier should not
+   * change if the visitor logs in or out of the website.
+   * This should be the same identifier as
+   * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id].
+   * The field must be a UTF-8 encoded string with a length limit of 128
+   * characters. Otherwise, an INVALID_ARGUMENT error is returned.
+   * 
+ * + * string visitor_id = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The visitorId. + */ + @java.lang.Override + public java.lang.String getVisitorId() { + java.lang.Object ref = visitorId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + visitorId_ = s; + return s; + } + } + /** + * + * + *
+   * Required. A unique identifier for tracking visitors. For example, this
+   * could be implemented with an HTTP cookie, which should be able to uniquely
+   * identify a visitor on a single device. This unique identifier should not
+   * change if the visitor logs in or out of the website.
+   * This should be the same identifier as
+   * [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id].
+   * The field must be a UTF-8 encoded string with a length limit of 128
+   * characters. Otherwise, an INVALID_ARGUMENT error is returned.
+   * 
+ * + * string visitor_id = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for visitorId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getVisitorIdBytes() { + java.lang.Object ref = visitorId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + visitorId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } public static final int USER_INFO_FIELD_NUMBER = 5; private com.google.cloud.retail.v2.UserInfo userInfo_; @@ -11351,7 +12370,7 @@ public com.google.cloud.retail.v2.SearchRequest.FacetSpecOrBuilder getFacetSpecs *
* * @deprecated google.cloud.retail.v2.SearchRequest.dynamic_facet_spec is deprecated. See - * google/cloud/retail/v2/search_service.proto;l=511 + * google/cloud/retail/v2/search_service.proto;l=553 * @return Whether the dynamicFacetSpec field is set. */ @java.lang.Override @@ -11374,7 +12393,7 @@ public boolean hasDynamicFacetSpec() { *
* * @deprecated google.cloud.retail.v2.SearchRequest.dynamic_facet_spec is deprecated. See - * google/cloud/retail/v2/search_service.proto;l=511 + * google/cloud/retail/v2/search_service.proto;l=553 * @return The dynamicFacetSpec. */ @java.lang.Override @@ -11414,10 +12433,10 @@ public com.google.cloud.retail.v2.SearchRequest.DynamicFacetSpec getDynamicFacet * Boost specification to boost certain products. See more details at this * [user guide](https://cloud.google.com/retail/docs/boosting). * Notice that if both [ServingConfig.boost_control_ids][] and - * [SearchRequest.boost_spec] are set, the boost conditions from both places - * are evaluated. If a search request matches multiple boost conditions, - * the final boost score is equal to the sum of the boost scores from all - * matched boost conditions. + * [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + * are set, the boost conditions from both places are evaluated. If a search + * request matches multiple boost conditions, the final boost score is equal + * to the sum of the boost scores from all matched boost conditions. * * * .google.cloud.retail.v2.SearchRequest.BoostSpec boost_spec = 13; @@ -11435,10 +12454,10 @@ public boolean hasBoostSpec() { * Boost specification to boost certain products. See more details at this * [user guide](https://cloud.google.com/retail/docs/boosting). * Notice that if both [ServingConfig.boost_control_ids][] and - * [SearchRequest.boost_spec] are set, the boost conditions from both places - * are evaluated. If a search request matches multiple boost conditions, - * the final boost score is equal to the sum of the boost scores from all - * matched boost conditions. + * [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + * are set, the boost conditions from both places are evaluated. If a search + * request matches multiple boost conditions, the final boost score is equal + * to the sum of the boost scores from all matched boost conditions. * * * .google.cloud.retail.v2.SearchRequest.BoostSpec boost_spec = 13; @@ -11458,10 +12477,10 @@ public com.google.cloud.retail.v2.SearchRequest.BoostSpec getBoostSpec() { * Boost specification to boost certain products. See more details at this * [user guide](https://cloud.google.com/retail/docs/boosting). * Notice that if both [ServingConfig.boost_control_ids][] and - * [SearchRequest.boost_spec] are set, the boost conditions from both places - * are evaluated. If a search request matches multiple boost conditions, - * the final boost score is equal to the sum of the boost scores from all - * matched boost conditions. + * [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + * are set, the boost conditions from both places are evaluated. If a search + * request matches multiple boost conditions, the final boost score is equal + * to the sum of the boost scores from all matched boost conditions. * * * .google.cloud.retail.v2.SearchRequest.BoostSpec boost_spec = 13; @@ -11559,7 +12578,8 @@ public com.google.cloud.retail.v2.SearchRequest.QueryExpansionSpec getQueryExpan * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the - * [Product.inventories.attributes][] map. + * [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + * map. * * attributes.key, where key is any key in the * [Product.attributes][google.cloud.retail.v2.Product.attributes] map. * * pickupInStore.id, where id is any @@ -11637,7 +12657,8 @@ public com.google.protobuf.ProtocolStringList getVariantRollupKeysList() { * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the - * [Product.inventories.attributes][] map. + * [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + * map. * * attributes.key, where key is any key in the * [Product.attributes][google.cloud.retail.v2.Product.attributes] map. * * pickupInStore.id, where id is any @@ -11715,7 +12736,8 @@ public int getVariantRollupKeysCount() { * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the - * [Product.inventories.attributes][] map. + * [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + * map. * * attributes.key, where key is any key in the * [Product.attributes][google.cloud.retail.v2.Product.attributes] map. * * pickupInStore.id, where id is any @@ -11794,7 +12816,8 @@ public java.lang.String getVariantRollupKeys(int index) { * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the - * [Product.inventories.attributes][] map. + * [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + * map. * * attributes.key, where key is any key in the * [Product.attributes][google.cloud.retail.v2.Product.attributes] map. * * pickupInStore.id, where id is any @@ -11992,47 +13015,261 @@ public com.google.cloud.retail.v2.SearchRequest.SearchMode getSearchMode() { * The specification for personalization. * * - * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalization_spec = 32; + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalization_spec = 32; + * + * + * @return Whether the personalizationSpec field is set. + */ + @java.lang.Override + public boolean hasPersonalizationSpec() { + return personalizationSpec_ != null; + } + /** + * + * + *
+   * The specification for personalization.
+   * 
+ * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalization_spec = 32; + * + * + * @return The personalizationSpec. + */ + @java.lang.Override + public com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec getPersonalizationSpec() { + return personalizationSpec_ == null + ? com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.getDefaultInstance() + : personalizationSpec_; + } + /** + * + * + *
+   * The specification for personalization.
+   * 
+ * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalization_spec = 32; + * + */ + @java.lang.Override + public com.google.cloud.retail.v2.SearchRequest.PersonalizationSpecOrBuilder + getPersonalizationSpecOrBuilder() { + return getPersonalizationSpec(); + } + + public static final int LABELS_FIELD_NUMBER = 34; + + private static final class LabelsDefaultEntryHolder { + static final com.google.protobuf.MapEntry defaultEntry = + com.google.protobuf.MapEntry.newDefaultInstance( + com.google.cloud.retail.v2.SearchServiceProto + .internal_static_google_cloud_retail_v2_SearchRequest_LabelsEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.STRING, + ""); + } + + private com.google.protobuf.MapField labels_; + + private com.google.protobuf.MapField internalGetLabels() { + if (labels_ == null) { + return com.google.protobuf.MapField.emptyMapField(LabelsDefaultEntryHolder.defaultEntry); + } + return labels_; + } + + public int getLabelsCount() { + return internalGetLabels().getMap().size(); + } + /** + * + * + *
+   * The labels applied to a resource must meet the following requirements:
+   * * Each resource can have multiple labels, up to a maximum of 64.
+   * * Each label must be a key-value pair.
+   * * Keys have a minimum length of 1 character and a maximum length of 63
+   *   characters and cannot be empty. Values can be empty and have a maximum
+   *   length of 63 characters.
+   * * Keys and values can contain only lowercase letters, numeric characters,
+   *   underscores, and dashes. All characters must use UTF-8 encoding, and
+   *   international characters are allowed.
+   * * The key portion of a label must be unique. However, you can use the same
+   *   key with multiple resources.
+   * * Keys must start with a lowercase letter or international character.
+   * See [Google Cloud
+   * Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
+   * for more details.
+   * 
+ * + * map<string, string> labels = 34; + */ + @java.lang.Override + public boolean containsLabels(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetLabels().getMap().containsKey(key); + } + /** Use {@link #getLabelsMap()} instead. */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getLabels() { + return getLabelsMap(); + } + /** + * + * + *
+   * The labels applied to a resource must meet the following requirements:
+   * * Each resource can have multiple labels, up to a maximum of 64.
+   * * Each label must be a key-value pair.
+   * * Keys have a minimum length of 1 character and a maximum length of 63
+   *   characters and cannot be empty. Values can be empty and have a maximum
+   *   length of 63 characters.
+   * * Keys and values can contain only lowercase letters, numeric characters,
+   *   underscores, and dashes. All characters must use UTF-8 encoding, and
+   *   international characters are allowed.
+   * * The key portion of a label must be unique. However, you can use the same
+   *   key with multiple resources.
+   * * Keys must start with a lowercase letter or international character.
+   * See [Google Cloud
+   * Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
+   * for more details.
+   * 
+ * + * map<string, string> labels = 34; + */ + @java.lang.Override + public java.util.Map getLabelsMap() { + return internalGetLabels().getMap(); + } + /** + * + * + *
+   * The labels applied to a resource must meet the following requirements:
+   * * Each resource can have multiple labels, up to a maximum of 64.
+   * * Each label must be a key-value pair.
+   * * Keys have a minimum length of 1 character and a maximum length of 63
+   *   characters and cannot be empty. Values can be empty and have a maximum
+   *   length of 63 characters.
+   * * Keys and values can contain only lowercase letters, numeric characters,
+   *   underscores, and dashes. All characters must use UTF-8 encoding, and
+   *   international characters are allowed.
+   * * The key portion of a label must be unique. However, you can use the same
+   *   key with multiple resources.
+   * * Keys must start with a lowercase letter or international character.
+   * See [Google Cloud
+   * Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
+   * for more details.
+   * 
+ * + * map<string, string> labels = 34; + */ + @java.lang.Override + public java.lang.String getLabelsOrDefault(java.lang.String key, java.lang.String defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetLabels().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * + * + *
+   * The labels applied to a resource must meet the following requirements:
+   * * Each resource can have multiple labels, up to a maximum of 64.
+   * * Each label must be a key-value pair.
+   * * Keys have a minimum length of 1 character and a maximum length of 63
+   *   characters and cannot be empty. Values can be empty and have a maximum
+   *   length of 63 characters.
+   * * Keys and values can contain only lowercase letters, numeric characters,
+   *   underscores, and dashes. All characters must use UTF-8 encoding, and
+   *   international characters are allowed.
+   * * The key portion of a label must be unique. However, you can use the same
+   *   key with multiple resources.
+   * * Keys must start with a lowercase letter or international character.
+   * See [Google Cloud
+   * Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
+   * for more details.
+   * 
+ * + * map<string, string> labels = 34; + */ + @java.lang.Override + public java.lang.String getLabelsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetLabels().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public static final int SPELL_CORRECTION_SPEC_FIELD_NUMBER = 35; + private com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec spellCorrectionSpec_; + /** + * + * + *
+   * The spell correction specification that specifies the mode under
+   * which spell correction will take effect.
+   * 
+ * + * + * optional .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec spell_correction_spec = 35; * * - * @return Whether the personalizationSpec field is set. + * @return Whether the spellCorrectionSpec field is set. */ @java.lang.Override - public boolean hasPersonalizationSpec() { - return personalizationSpec_ != null; + public boolean hasSpellCorrectionSpec() { + return ((bitField0_ & 0x00000001) != 0); } /** * * *
-   * The specification for personalization.
+   * The spell correction specification that specifies the mode under
+   * which spell correction will take effect.
    * 
* - * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalization_spec = 32; + * + * optional .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec spell_correction_spec = 35; * * - * @return The personalizationSpec. + * @return The spellCorrectionSpec. */ @java.lang.Override - public com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec getPersonalizationSpec() { - return personalizationSpec_ == null - ? com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.getDefaultInstance() - : personalizationSpec_; + public com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec getSpellCorrectionSpec() { + return spellCorrectionSpec_ == null + ? com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.getDefaultInstance() + : spellCorrectionSpec_; } /** * * *
-   * The specification for personalization.
+   * The spell correction specification that specifies the mode under
+   * which spell correction will take effect.
    * 
* - * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalization_spec = 32; + * + * optional .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec spell_correction_spec = 35; * */ @java.lang.Override - public com.google.cloud.retail.v2.SearchRequest.PersonalizationSpecOrBuilder - getPersonalizationSpecOrBuilder() { - return getPersonalizationSpec(); + public com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpecOrBuilder + getSpellCorrectionSpecOrBuilder() { + return spellCorrectionSpec_ == null + ? com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.getDefaultInstance() + : spellCorrectionSpec_; } private byte memoizedIsInitialized = -1; @@ -12108,6 +13345,11 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (personalizationSpec_ != null) { output.writeMessage(32, getPersonalizationSpec()); } + com.google.protobuf.GeneratedMessageV3.serializeStringMapTo( + output, internalGetLabels(), LabelsDefaultEntryHolder.defaultEntry, 34); + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(35, getSpellCorrectionSpec()); + } unknownFields.writeTo(output); } @@ -12187,6 +13429,20 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream.computeMessageSize(32, getPersonalizationSpec()); } + for (java.util.Map.Entry entry : + internalGetLabels().getMap().entrySet()) { + com.google.protobuf.MapEntry labels__ = + LabelsDefaultEntryHolder.defaultEntry + .newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(34, labels__); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(35, getSpellCorrectionSpec()); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -12236,6 +13492,11 @@ public boolean equals(final java.lang.Object obj) { if (hasPersonalizationSpec()) { if (!getPersonalizationSpec().equals(other.getPersonalizationSpec())) return false; } + if (!internalGetLabels().equals(other.internalGetLabels())) return false; + if (hasSpellCorrectionSpec() != other.hasSpellCorrectionSpec()) return false; + if (hasSpellCorrectionSpec()) { + if (!getSpellCorrectionSpec().equals(other.getSpellCorrectionSpec())) return false; + } if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -12301,6 +13562,14 @@ public int hashCode() { hash = (37 * hash) + PERSONALIZATION_SPEC_FIELD_NUMBER; hash = (53 * hash) + getPersonalizationSpec().hashCode(); } + if (!internalGetLabels().getMap().isEmpty()) { + hash = (37 * hash) + LABELS_FIELD_NUMBER; + hash = (53 * hash) + internalGetLabels().hashCode(); + } + if (hasSpellCorrectionSpec()) { + hash = (37 * hash) + SPELL_CORRECTION_SPEC_FIELD_NUMBER; + hash = (53 * hash) + getSpellCorrectionSpec().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -12420,6 +13689,26 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { .internal_static_google_cloud_retail_v2_SearchRequest_descriptor; } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMapField(int number) { + switch (number) { + case 34: + return internalGetLabels(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMutableMapField(int number) { + switch (number) { + case 34: + return internalGetMutableLabels(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { @@ -12443,6 +13732,7 @@ private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { getFacetSpecsFieldBuilder(); + getSpellCorrectionSpecFieldBuilder(); } } @@ -12511,6 +13801,13 @@ public Builder clear() { personalizationSpec_ = null; personalizationSpecBuilder_ = null; } + internalGetMutableLabels().clear(); + if (spellCorrectionSpecBuilder_ == null) { + spellCorrectionSpec_ = null; + } else { + spellCorrectionSpecBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); return this; } @@ -12539,6 +13836,7 @@ public com.google.cloud.retail.v2.SearchRequest buildPartial() { com.google.cloud.retail.v2.SearchRequest result = new com.google.cloud.retail.v2.SearchRequest(this); int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; result.placement_ = placement_; result.branch_ = branch_; result.query_ = query_; @@ -12594,6 +13892,17 @@ public com.google.cloud.retail.v2.SearchRequest buildPartial() { } else { result.personalizationSpec_ = personalizationSpecBuilder_.build(); } + result.labels_ = internalGetLabels(); + result.labels_.makeImmutable(); + if (((from_bitField0_ & 0x00000010) != 0)) { + if (spellCorrectionSpecBuilder_ == null) { + result.spellCorrectionSpec_ = spellCorrectionSpec_; + } else { + result.spellCorrectionSpec_ = spellCorrectionSpecBuilder_.build(); + } + to_bitField0_ |= 0x00000001; + } + result.bitField0_ = to_bitField0_; onBuilt(); return result; } @@ -12746,6 +14055,10 @@ public Builder mergeFrom(com.google.cloud.retail.v2.SearchRequest other) { if (other.hasPersonalizationSpec()) { mergePersonalizationSpec(other.getPersonalizationSpec()); } + internalGetMutableLabels().mergeFrom(other.internalGetLabels()); + if (other.hasSpellCorrectionSpec()) { + mergeSpellCorrectionSpec(other.getSpellCorrectionSpec()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -12783,7 +14096,7 @@ public Builder mergeFrom( * *
      * Required. The resource name of the search engine placement, such as
-     * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`
+     * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`.
      * This field is used to identify the serving configuration name and the set
      * of models that will be used to make the search.
      * 
@@ -12808,7 +14121,7 @@ public java.lang.String getPlacement() { * *
      * Required. The resource name of the search engine placement, such as
-     * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`
+     * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`.
      * This field is used to identify the serving configuration name and the set
      * of models that will be used to make the search.
      * 
@@ -12833,7 +14146,7 @@ public com.google.protobuf.ByteString getPlacementBytes() { * *
      * Required. The resource name of the search engine placement, such as
-     * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`
+     * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`.
      * This field is used to identify the serving configuration name and the set
      * of models that will be used to make the search.
      * 
@@ -12857,7 +14170,7 @@ public Builder setPlacement(java.lang.String value) { * *
      * Required. The resource name of the search engine placement, such as
-     * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`
+     * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`.
      * This field is used to identify the serving configuration name and the set
      * of models that will be used to make the search.
      * 
@@ -12877,7 +14190,7 @@ public Builder clearPlacement() { * *
      * Required. The resource name of the search engine placement, such as
-     * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`
+     * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`.
      * This field is used to identify the serving configuration name and the set
      * of models that will be used to make the search.
      * 
@@ -13025,6 +14338,10 @@ public Builder setBranchBytes(com.google.protobuf.ByteString value) { * *
      * Raw search query.
+     * If this field is empty, the request is considered a category browsing
+     * request and returned results are based on
+     * [filter][google.cloud.retail.v2.SearchRequest.filter] and
+     * [page_categories][google.cloud.retail.v2.SearchRequest.page_categories].
      * 
* * string query = 3; @@ -13047,6 +14364,10 @@ public java.lang.String getQuery() { * *
      * Raw search query.
+     * If this field is empty, the request is considered a category browsing
+     * request and returned results are based on
+     * [filter][google.cloud.retail.v2.SearchRequest.filter] and
+     * [page_categories][google.cloud.retail.v2.SearchRequest.page_categories].
      * 
* * string query = 3; @@ -13069,6 +14390,10 @@ public com.google.protobuf.ByteString getQueryBytes() { * *
      * Raw search query.
+     * If this field is empty, the request is considered a category browsing
+     * request and returned results are based on
+     * [filter][google.cloud.retail.v2.SearchRequest.filter] and
+     * [page_categories][google.cloud.retail.v2.SearchRequest.page_categories].
      * 
* * string query = 3; @@ -13090,6 +14415,10 @@ public Builder setQuery(java.lang.String value) { * *
      * Raw search query.
+     * If this field is empty, the request is considered a category browsing
+     * request and returned results are based on
+     * [filter][google.cloud.retail.v2.SearchRequest.filter] and
+     * [page_categories][google.cloud.retail.v2.SearchRequest.page_categories].
      * 
* * string query = 3; @@ -13107,6 +14436,10 @@ public Builder clearQuery() { * *
      * Raw search query.
+     * If this field is empty, the request is considered a category browsing
+     * request and returned results are based on
+     * [filter][google.cloud.retail.v2.SearchRequest.filter] and
+     * [page_categories][google.cloud.retail.v2.SearchRequest.page_categories].
      * 
* * string query = 3; @@ -14548,7 +15881,7 @@ public com.google.cloud.retail.v2.SearchRequest.FacetSpec.Builder addFacetSpecsB *
* * @deprecated google.cloud.retail.v2.SearchRequest.dynamic_facet_spec is deprecated. See - * google/cloud/retail/v2/search_service.proto;l=511 + * google/cloud/retail/v2/search_service.proto;l=553 * @return Whether the dynamicFacetSpec field is set. */ @java.lang.Deprecated @@ -14570,7 +15903,7 @@ public boolean hasDynamicFacetSpec() { *
* * @deprecated google.cloud.retail.v2.SearchRequest.dynamic_facet_spec is deprecated. See - * google/cloud/retail/v2/search_service.proto;l=511 + * google/cloud/retail/v2/search_service.proto;l=553 * @return The dynamicFacetSpec. */ @java.lang.Deprecated @@ -14788,10 +16121,10 @@ public Builder clearDynamicFacetSpec() { * Boost specification to boost certain products. See more details at this * [user guide](https://cloud.google.com/retail/docs/boosting). * Notice that if both [ServingConfig.boost_control_ids][] and - * [SearchRequest.boost_spec] are set, the boost conditions from both places - * are evaluated. If a search request matches multiple boost conditions, - * the final boost score is equal to the sum of the boost scores from all - * matched boost conditions. + * [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + * are set, the boost conditions from both places are evaluated. If a search + * request matches multiple boost conditions, the final boost score is equal + * to the sum of the boost scores from all matched boost conditions. * * * .google.cloud.retail.v2.SearchRequest.BoostSpec boost_spec = 13; @@ -14808,10 +16141,10 @@ public boolean hasBoostSpec() { * Boost specification to boost certain products. See more details at this * [user guide](https://cloud.google.com/retail/docs/boosting). * Notice that if both [ServingConfig.boost_control_ids][] and - * [SearchRequest.boost_spec] are set, the boost conditions from both places - * are evaluated. If a search request matches multiple boost conditions, - * the final boost score is equal to the sum of the boost scores from all - * matched boost conditions. + * [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + * are set, the boost conditions from both places are evaluated. If a search + * request matches multiple boost conditions, the final boost score is equal + * to the sum of the boost scores from all matched boost conditions. * * * .google.cloud.retail.v2.SearchRequest.BoostSpec boost_spec = 13; @@ -14834,10 +16167,10 @@ public com.google.cloud.retail.v2.SearchRequest.BoostSpec getBoostSpec() { * Boost specification to boost certain products. See more details at this * [user guide](https://cloud.google.com/retail/docs/boosting). * Notice that if both [ServingConfig.boost_control_ids][] and - * [SearchRequest.boost_spec] are set, the boost conditions from both places - * are evaluated. If a search request matches multiple boost conditions, - * the final boost score is equal to the sum of the boost scores from all - * matched boost conditions. + * [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + * are set, the boost conditions from both places are evaluated. If a search + * request matches multiple boost conditions, the final boost score is equal + * to the sum of the boost scores from all matched boost conditions. * * * .google.cloud.retail.v2.SearchRequest.BoostSpec boost_spec = 13; @@ -14862,10 +16195,10 @@ public Builder setBoostSpec(com.google.cloud.retail.v2.SearchRequest.BoostSpec v * Boost specification to boost certain products. See more details at this * [user guide](https://cloud.google.com/retail/docs/boosting). * Notice that if both [ServingConfig.boost_control_ids][] and - * [SearchRequest.boost_spec] are set, the boost conditions from both places - * are evaluated. If a search request matches multiple boost conditions, - * the final boost score is equal to the sum of the boost scores from all - * matched boost conditions. + * [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + * are set, the boost conditions from both places are evaluated. If a search + * request matches multiple boost conditions, the final boost score is equal + * to the sum of the boost scores from all matched boost conditions. * * * .google.cloud.retail.v2.SearchRequest.BoostSpec boost_spec = 13; @@ -14888,10 +16221,10 @@ public Builder setBoostSpec( * Boost specification to boost certain products. See more details at this * [user guide](https://cloud.google.com/retail/docs/boosting). * Notice that if both [ServingConfig.boost_control_ids][] and - * [SearchRequest.boost_spec] are set, the boost conditions from both places - * are evaluated. If a search request matches multiple boost conditions, - * the final boost score is equal to the sum of the boost scores from all - * matched boost conditions. + * [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + * are set, the boost conditions from both places are evaluated. If a search + * request matches multiple boost conditions, the final boost score is equal + * to the sum of the boost scores from all matched boost conditions. * * * .google.cloud.retail.v2.SearchRequest.BoostSpec boost_spec = 13; @@ -14920,10 +16253,10 @@ public Builder mergeBoostSpec(com.google.cloud.retail.v2.SearchRequest.BoostSpec * Boost specification to boost certain products. See more details at this * [user guide](https://cloud.google.com/retail/docs/boosting). * Notice that if both [ServingConfig.boost_control_ids][] and - * [SearchRequest.boost_spec] are set, the boost conditions from both places - * are evaluated. If a search request matches multiple boost conditions, - * the final boost score is equal to the sum of the boost scores from all - * matched boost conditions. + * [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + * are set, the boost conditions from both places are evaluated. If a search + * request matches multiple boost conditions, the final boost score is equal + * to the sum of the boost scores from all matched boost conditions. * * * .google.cloud.retail.v2.SearchRequest.BoostSpec boost_spec = 13; @@ -14946,10 +16279,10 @@ public Builder clearBoostSpec() { * Boost specification to boost certain products. See more details at this * [user guide](https://cloud.google.com/retail/docs/boosting). * Notice that if both [ServingConfig.boost_control_ids][] and - * [SearchRequest.boost_spec] are set, the boost conditions from both places - * are evaluated. If a search request matches multiple boost conditions, - * the final boost score is equal to the sum of the boost scores from all - * matched boost conditions. + * [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + * are set, the boost conditions from both places are evaluated. If a search + * request matches multiple boost conditions, the final boost score is equal + * to the sum of the boost scores from all matched boost conditions. * * * .google.cloud.retail.v2.SearchRequest.BoostSpec boost_spec = 13; @@ -14966,10 +16299,10 @@ public com.google.cloud.retail.v2.SearchRequest.BoostSpec.Builder getBoostSpecBu * Boost specification to boost certain products. See more details at this * [user guide](https://cloud.google.com/retail/docs/boosting). * Notice that if both [ServingConfig.boost_control_ids][] and - * [SearchRequest.boost_spec] are set, the boost conditions from both places - * are evaluated. If a search request matches multiple boost conditions, - * the final boost score is equal to the sum of the boost scores from all - * matched boost conditions. + * [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + * are set, the boost conditions from both places are evaluated. If a search + * request matches multiple boost conditions, the final boost score is equal + * to the sum of the boost scores from all matched boost conditions. * * * .google.cloud.retail.v2.SearchRequest.BoostSpec boost_spec = 13; @@ -14990,10 +16323,10 @@ public com.google.cloud.retail.v2.SearchRequest.BoostSpecOrBuilder getBoostSpecO * Boost specification to boost certain products. See more details at this * [user guide](https://cloud.google.com/retail/docs/boosting). * Notice that if both [ServingConfig.boost_control_ids][] and - * [SearchRequest.boost_spec] are set, the boost conditions from both places - * are evaluated. If a search request matches multiple boost conditions, - * the final boost score is equal to the sum of the boost scores from all - * matched boost conditions. + * [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + * are set, the boost conditions from both places are evaluated. If a search + * request matches multiple boost conditions, the final boost score is equal + * to the sum of the boost scores from all matched boost conditions. * * * .google.cloud.retail.v2.SearchRequest.BoostSpec boost_spec = 13; @@ -15270,7 +16603,8 @@ private void ensureVariantRollupKeysIsMutable() { * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the - * [Product.inventories.attributes][] map. + * [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + * map. * * attributes.key, where key is any key in the * [Product.attributes][google.cloud.retail.v2.Product.attributes] map. * * pickupInStore.id, where id is any @@ -15348,7 +16682,8 @@ public com.google.protobuf.ProtocolStringList getVariantRollupKeysList() { * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the - * [Product.inventories.attributes][] map. + * [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + * map. * * attributes.key, where key is any key in the * [Product.attributes][google.cloud.retail.v2.Product.attributes] map. * * pickupInStore.id, where id is any @@ -15426,7 +16761,8 @@ public int getVariantRollupKeysCount() { * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the - * [Product.inventories.attributes][] map. + * [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + * map. * * attributes.key, where key is any key in the * [Product.attributes][google.cloud.retail.v2.Product.attributes] map. * * pickupInStore.id, where id is any @@ -15505,7 +16841,8 @@ public java.lang.String getVariantRollupKeys(int index) { * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the - * [Product.inventories.attributes][] map. + * [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + * map. * * attributes.key, where key is any key in the * [Product.attributes][google.cloud.retail.v2.Product.attributes] map. * * pickupInStore.id, where id is any @@ -15584,7 +16921,8 @@ public com.google.protobuf.ByteString getVariantRollupKeysBytes(int index) { * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the - * [Product.inventories.attributes][] map. + * [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + * map. * * attributes.key, where key is any key in the * [Product.attributes][google.cloud.retail.v2.Product.attributes] map. * * pickupInStore.id, where id is any @@ -15670,7 +17008,8 @@ public Builder setVariantRollupKeys(int index, java.lang.String value) { * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the - * [Product.inventories.attributes][] map. + * [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + * map. * * attributes.key, where key is any key in the * [Product.attributes][google.cloud.retail.v2.Product.attributes] map. * * pickupInStore.id, where id is any @@ -15755,7 +17094,8 @@ public Builder addVariantRollupKeys(java.lang.String value) { * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the - * [Product.inventories.attributes][] map. + * [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + * map. * * attributes.key, where key is any key in the * [Product.attributes][google.cloud.retail.v2.Product.attributes] map. * * pickupInStore.id, where id is any @@ -15837,7 +17177,8 @@ public Builder addAllVariantRollupKeys(java.lang.Iterable valu * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the - * [Product.inventories.attributes][] map. + * [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + * map. * * attributes.key, where key is any key in the * [Product.attributes][google.cloud.retail.v2.Product.attributes] map. * * pickupInStore.id, where id is any @@ -15918,7 +17259,8 @@ public Builder clearVariantRollupKeys() { * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the - * [Product.inventories.attributes][] map. + * [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + * map. * * attributes.key, where key is any key in the * [Product.attributes][google.cloud.retail.v2.Product.attributes] map. * * pickupInStore.id, where id is any @@ -16524,6 +17866,483 @@ public Builder clearPersonalizationSpec() { return personalizationSpecBuilder_; } + private com.google.protobuf.MapField labels_; + + private com.google.protobuf.MapField internalGetLabels() { + if (labels_ == null) { + return com.google.protobuf.MapField.emptyMapField(LabelsDefaultEntryHolder.defaultEntry); + } + return labels_; + } + + private com.google.protobuf.MapField + internalGetMutableLabels() { + onChanged(); + ; + if (labels_ == null) { + labels_ = com.google.protobuf.MapField.newMapField(LabelsDefaultEntryHolder.defaultEntry); + } + if (!labels_.isMutable()) { + labels_ = labels_.copy(); + } + return labels_; + } + + public int getLabelsCount() { + return internalGetLabels().getMap().size(); + } + /** + * + * + *
+     * The labels applied to a resource must meet the following requirements:
+     * * Each resource can have multiple labels, up to a maximum of 64.
+     * * Each label must be a key-value pair.
+     * * Keys have a minimum length of 1 character and a maximum length of 63
+     *   characters and cannot be empty. Values can be empty and have a maximum
+     *   length of 63 characters.
+     * * Keys and values can contain only lowercase letters, numeric characters,
+     *   underscores, and dashes. All characters must use UTF-8 encoding, and
+     *   international characters are allowed.
+     * * The key portion of a label must be unique. However, you can use the same
+     *   key with multiple resources.
+     * * Keys must start with a lowercase letter or international character.
+     * See [Google Cloud
+     * Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
+     * for more details.
+     * 
+ * + * map<string, string> labels = 34; + */ + @java.lang.Override + public boolean containsLabels(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetLabels().getMap().containsKey(key); + } + /** Use {@link #getLabelsMap()} instead. */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getLabels() { + return getLabelsMap(); + } + /** + * + * + *
+     * The labels applied to a resource must meet the following requirements:
+     * * Each resource can have multiple labels, up to a maximum of 64.
+     * * Each label must be a key-value pair.
+     * * Keys have a minimum length of 1 character and a maximum length of 63
+     *   characters and cannot be empty. Values can be empty and have a maximum
+     *   length of 63 characters.
+     * * Keys and values can contain only lowercase letters, numeric characters,
+     *   underscores, and dashes. All characters must use UTF-8 encoding, and
+     *   international characters are allowed.
+     * * The key portion of a label must be unique. However, you can use the same
+     *   key with multiple resources.
+     * * Keys must start with a lowercase letter or international character.
+     * See [Google Cloud
+     * Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
+     * for more details.
+     * 
+ * + * map<string, string> labels = 34; + */ + @java.lang.Override + public java.util.Map getLabelsMap() { + return internalGetLabels().getMap(); + } + /** + * + * + *
+     * The labels applied to a resource must meet the following requirements:
+     * * Each resource can have multiple labels, up to a maximum of 64.
+     * * Each label must be a key-value pair.
+     * * Keys have a minimum length of 1 character and a maximum length of 63
+     *   characters and cannot be empty. Values can be empty and have a maximum
+     *   length of 63 characters.
+     * * Keys and values can contain only lowercase letters, numeric characters,
+     *   underscores, and dashes. All characters must use UTF-8 encoding, and
+     *   international characters are allowed.
+     * * The key portion of a label must be unique. However, you can use the same
+     *   key with multiple resources.
+     * * Keys must start with a lowercase letter or international character.
+     * See [Google Cloud
+     * Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
+     * for more details.
+     * 
+ * + * map<string, string> labels = 34; + */ + @java.lang.Override + public java.lang.String getLabelsOrDefault( + java.lang.String key, java.lang.String defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetLabels().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * + * + *
+     * The labels applied to a resource must meet the following requirements:
+     * * Each resource can have multiple labels, up to a maximum of 64.
+     * * Each label must be a key-value pair.
+     * * Keys have a minimum length of 1 character and a maximum length of 63
+     *   characters and cannot be empty. Values can be empty and have a maximum
+     *   length of 63 characters.
+     * * Keys and values can contain only lowercase letters, numeric characters,
+     *   underscores, and dashes. All characters must use UTF-8 encoding, and
+     *   international characters are allowed.
+     * * The key portion of a label must be unique. However, you can use the same
+     *   key with multiple resources.
+     * * Keys must start with a lowercase letter or international character.
+     * See [Google Cloud
+     * Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
+     * for more details.
+     * 
+ * + * map<string, string> labels = 34; + */ + @java.lang.Override + public java.lang.String getLabelsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetLabels().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearLabels() { + internalGetMutableLabels().getMutableMap().clear(); + return this; + } + /** + * + * + *
+     * The labels applied to a resource must meet the following requirements:
+     * * Each resource can have multiple labels, up to a maximum of 64.
+     * * Each label must be a key-value pair.
+     * * Keys have a minimum length of 1 character and a maximum length of 63
+     *   characters and cannot be empty. Values can be empty and have a maximum
+     *   length of 63 characters.
+     * * Keys and values can contain only lowercase letters, numeric characters,
+     *   underscores, and dashes. All characters must use UTF-8 encoding, and
+     *   international characters are allowed.
+     * * The key portion of a label must be unique. However, you can use the same
+     *   key with multiple resources.
+     * * Keys must start with a lowercase letter or international character.
+     * See [Google Cloud
+     * Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
+     * for more details.
+     * 
+ * + * map<string, string> labels = 34; + */ + public Builder removeLabels(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableLabels().getMutableMap().remove(key); + return this; + } + /** Use alternate mutation accessors instead. */ + @java.lang.Deprecated + public java.util.Map getMutableLabels() { + return internalGetMutableLabels().getMutableMap(); + } + /** + * + * + *
+     * The labels applied to a resource must meet the following requirements:
+     * * Each resource can have multiple labels, up to a maximum of 64.
+     * * Each label must be a key-value pair.
+     * * Keys have a minimum length of 1 character and a maximum length of 63
+     *   characters and cannot be empty. Values can be empty and have a maximum
+     *   length of 63 characters.
+     * * Keys and values can contain only lowercase letters, numeric characters,
+     *   underscores, and dashes. All characters must use UTF-8 encoding, and
+     *   international characters are allowed.
+     * * The key portion of a label must be unique. However, you can use the same
+     *   key with multiple resources.
+     * * Keys must start with a lowercase letter or international character.
+     * See [Google Cloud
+     * Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
+     * for more details.
+     * 
+ * + * map<string, string> labels = 34; + */ + public Builder putLabels(java.lang.String key, java.lang.String value) { + if (key == null) { + throw new NullPointerException("map key"); + } + if (value == null) { + throw new NullPointerException("map value"); + } + + internalGetMutableLabels().getMutableMap().put(key, value); + return this; + } + /** + * + * + *
+     * The labels applied to a resource must meet the following requirements:
+     * * Each resource can have multiple labels, up to a maximum of 64.
+     * * Each label must be a key-value pair.
+     * * Keys have a minimum length of 1 character and a maximum length of 63
+     *   characters and cannot be empty. Values can be empty and have a maximum
+     *   length of 63 characters.
+     * * Keys and values can contain only lowercase letters, numeric characters,
+     *   underscores, and dashes. All characters must use UTF-8 encoding, and
+     *   international characters are allowed.
+     * * The key portion of a label must be unique. However, you can use the same
+     *   key with multiple resources.
+     * * Keys must start with a lowercase letter or international character.
+     * See [Google Cloud
+     * Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
+     * for more details.
+     * 
+ * + * map<string, string> labels = 34; + */ + public Builder putAllLabels(java.util.Map values) { + internalGetMutableLabels().getMutableMap().putAll(values); + return this; + } + + private com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec spellCorrectionSpec_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec, + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Builder, + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpecOrBuilder> + spellCorrectionSpecBuilder_; + /** + * + * + *
+     * The spell correction specification that specifies the mode under
+     * which spell correction will take effect.
+     * 
+ * + * + * optional .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec spell_correction_spec = 35; + * + * + * @return Whether the spellCorrectionSpec field is set. + */ + public boolean hasSpellCorrectionSpec() { + return ((bitField0_ & 0x00000010) != 0); + } + /** + * + * + *
+     * The spell correction specification that specifies the mode under
+     * which spell correction will take effect.
+     * 
+ * + * + * optional .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec spell_correction_spec = 35; + * + * + * @return The spellCorrectionSpec. + */ + public com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec getSpellCorrectionSpec() { + if (spellCorrectionSpecBuilder_ == null) { + return spellCorrectionSpec_ == null + ? com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.getDefaultInstance() + : spellCorrectionSpec_; + } else { + return spellCorrectionSpecBuilder_.getMessage(); + } + } + /** + * + * + *
+     * The spell correction specification that specifies the mode under
+     * which spell correction will take effect.
+     * 
+ * + * + * optional .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec spell_correction_spec = 35; + * + */ + public Builder setSpellCorrectionSpec( + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec value) { + if (spellCorrectionSpecBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + spellCorrectionSpec_ = value; + onChanged(); + } else { + spellCorrectionSpecBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + return this; + } + /** + * + * + *
+     * The spell correction specification that specifies the mode under
+     * which spell correction will take effect.
+     * 
+ * + * + * optional .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec spell_correction_spec = 35; + * + */ + public Builder setSpellCorrectionSpec( + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Builder builderForValue) { + if (spellCorrectionSpecBuilder_ == null) { + spellCorrectionSpec_ = builderForValue.build(); + onChanged(); + } else { + spellCorrectionSpecBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + return this; + } + /** + * + * + *
+     * The spell correction specification that specifies the mode under
+     * which spell correction will take effect.
+     * 
+ * + * + * optional .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec spell_correction_spec = 35; + * + */ + public Builder mergeSpellCorrectionSpec( + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec value) { + if (spellCorrectionSpecBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) + && spellCorrectionSpec_ != null + && spellCorrectionSpec_ + != com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec + .getDefaultInstance()) { + spellCorrectionSpec_ = + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.newBuilder( + spellCorrectionSpec_) + .mergeFrom(value) + .buildPartial(); + } else { + spellCorrectionSpec_ = value; + } + onChanged(); + } else { + spellCorrectionSpecBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000010; + return this; + } + /** + * + * + *
+     * The spell correction specification that specifies the mode under
+     * which spell correction will take effect.
+     * 
+ * + * + * optional .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec spell_correction_spec = 35; + * + */ + public Builder clearSpellCorrectionSpec() { + if (spellCorrectionSpecBuilder_ == null) { + spellCorrectionSpec_ = null; + onChanged(); + } else { + spellCorrectionSpecBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); + return this; + } + /** + * + * + *
+     * The spell correction specification that specifies the mode under
+     * which spell correction will take effect.
+     * 
+ * + * + * optional .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec spell_correction_spec = 35; + * + */ + public com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Builder + getSpellCorrectionSpecBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getSpellCorrectionSpecFieldBuilder().getBuilder(); + } + /** + * + * + *
+     * The spell correction specification that specifies the mode under
+     * which spell correction will take effect.
+     * 
+ * + * + * optional .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec spell_correction_spec = 35; + * + */ + public com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpecOrBuilder + getSpellCorrectionSpecOrBuilder() { + if (spellCorrectionSpecBuilder_ != null) { + return spellCorrectionSpecBuilder_.getMessageOrBuilder(); + } else { + return spellCorrectionSpec_ == null + ? com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.getDefaultInstance() + : spellCorrectionSpec_; + } + } + /** + * + * + *
+     * The spell correction specification that specifies the mode under
+     * which spell correction will take effect.
+     * 
+ * + * + * optional .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec spell_correction_spec = 35; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec, + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Builder, + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpecOrBuilder> + getSpellCorrectionSpecFieldBuilder() { + if (spellCorrectionSpecBuilder_ == null) { + spellCorrectionSpecBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec, + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Builder, + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpecOrBuilder>( + getSpellCorrectionSpec(), getParentForChildren(), isClean()); + spellCorrectionSpec_ = null; + } + return spellCorrectionSpecBuilder_; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchRequestOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchRequestOrBuilder.java index a9e5f844..e55e41d9 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchRequestOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchRequestOrBuilder.java @@ -28,7 +28,7 @@ public interface SearchRequestOrBuilder * *
    * Required. The resource name of the search engine placement, such as
-   * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`
+   * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`.
    * This field is used to identify the serving configuration name and the set
    * of models that will be used to make the search.
    * 
@@ -43,7 +43,7 @@ public interface SearchRequestOrBuilder * *
    * Required. The resource name of the search engine placement, such as
-   * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`
+   * `projects/*/locations/global/catalogs/default_catalog/placements/default_search`.
    * This field is used to identify the serving configuration name and the set
    * of models that will be used to make the search.
    * 
@@ -90,6 +90,10 @@ public interface SearchRequestOrBuilder * *
    * Raw search query.
+   * If this field is empty, the request is considered a category browsing
+   * request and returned results are based on
+   * [filter][google.cloud.retail.v2.SearchRequest.filter] and
+   * [page_categories][google.cloud.retail.v2.SearchRequest.page_categories].
    * 
* * string query = 3; @@ -102,6 +106,10 @@ public interface SearchRequestOrBuilder * *
    * Raw search query.
+   * If this field is empty, the request is considered a category browsing
+   * request and returned results are based on
+   * [filter][google.cloud.retail.v2.SearchRequest.filter] and
+   * [page_categories][google.cloud.retail.v2.SearchRequest.page_categories].
    * 
* * string query = 3; @@ -447,7 +455,7 @@ public interface SearchRequestOrBuilder * * * @deprecated google.cloud.retail.v2.SearchRequest.dynamic_facet_spec is deprecated. See - * google/cloud/retail/v2/search_service.proto;l=511 + * google/cloud/retail/v2/search_service.proto;l=553 * @return Whether the dynamicFacetSpec field is set. */ @java.lang.Deprecated @@ -467,7 +475,7 @@ public interface SearchRequestOrBuilder * * * @deprecated google.cloud.retail.v2.SearchRequest.dynamic_facet_spec is deprecated. See - * google/cloud/retail/v2/search_service.proto;l=511 + * google/cloud/retail/v2/search_service.proto;l=553 * @return The dynamicFacetSpec. */ @java.lang.Deprecated @@ -496,10 +504,10 @@ public interface SearchRequestOrBuilder * Boost specification to boost certain products. See more details at this * [user guide](https://cloud.google.com/retail/docs/boosting). * Notice that if both [ServingConfig.boost_control_ids][] and - * [SearchRequest.boost_spec] are set, the boost conditions from both places - * are evaluated. If a search request matches multiple boost conditions, - * the final boost score is equal to the sum of the boost scores from all - * matched boost conditions. + * [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + * are set, the boost conditions from both places are evaluated. If a search + * request matches multiple boost conditions, the final boost score is equal + * to the sum of the boost scores from all matched boost conditions. * * * .google.cloud.retail.v2.SearchRequest.BoostSpec boost_spec = 13; @@ -514,10 +522,10 @@ public interface SearchRequestOrBuilder * Boost specification to boost certain products. See more details at this * [user guide](https://cloud.google.com/retail/docs/boosting). * Notice that if both [ServingConfig.boost_control_ids][] and - * [SearchRequest.boost_spec] are set, the boost conditions from both places - * are evaluated. If a search request matches multiple boost conditions, - * the final boost score is equal to the sum of the boost scores from all - * matched boost conditions. + * [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + * are set, the boost conditions from both places are evaluated. If a search + * request matches multiple boost conditions, the final boost score is equal + * to the sum of the boost scores from all matched boost conditions. * * * .google.cloud.retail.v2.SearchRequest.BoostSpec boost_spec = 13; @@ -532,10 +540,10 @@ public interface SearchRequestOrBuilder * Boost specification to boost certain products. See more details at this * [user guide](https://cloud.google.com/retail/docs/boosting). * Notice that if both [ServingConfig.boost_control_ids][] and - * [SearchRequest.boost_spec] are set, the boost conditions from both places - * are evaluated. If a search request matches multiple boost conditions, - * the final boost score is equal to the sum of the boost scores from all - * matched boost conditions. + * [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + * are set, the boost conditions from both places are evaluated. If a search + * request matches multiple boost conditions, the final boost score is equal + * to the sum of the boost scores from all matched boost conditions. * * * .google.cloud.retail.v2.SearchRequest.BoostSpec boost_spec = 13; @@ -615,7 +623,8 @@ public interface SearchRequestOrBuilder * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the - * [Product.inventories.attributes][] map. + * [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + * map. * * attributes.key, where key is any key in the * [Product.attributes][google.cloud.retail.v2.Product.attributes] map. * * pickupInStore.id, where id is any @@ -691,7 +700,8 @@ public interface SearchRequestOrBuilder * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the - * [Product.inventories.attributes][] map. + * [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + * map. * * attributes.key, where key is any key in the * [Product.attributes][google.cloud.retail.v2.Product.attributes] map. * * pickupInStore.id, where id is any @@ -767,7 +777,8 @@ public interface SearchRequestOrBuilder * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the - * [Product.inventories.attributes][] map. + * [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + * map. * * attributes.key, where key is any key in the * [Product.attributes][google.cloud.retail.v2.Product.attributes] map. * * pickupInStore.id, where id is any @@ -844,7 +855,8 @@ public interface SearchRequestOrBuilder * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the - * [Product.inventories.attributes][] map. + * [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + * map. * * attributes.key, where key is any key in the * [Product.attributes][google.cloud.retail.v2.Product.attributes] map. * * pickupInStore.id, where id is any @@ -1046,4 +1058,178 @@ public interface SearchRequestOrBuilder */ com.google.cloud.retail.v2.SearchRequest.PersonalizationSpecOrBuilder getPersonalizationSpecOrBuilder(); + + /** + * + * + *
+   * The labels applied to a resource must meet the following requirements:
+   * * Each resource can have multiple labels, up to a maximum of 64.
+   * * Each label must be a key-value pair.
+   * * Keys have a minimum length of 1 character and a maximum length of 63
+   *   characters and cannot be empty. Values can be empty and have a maximum
+   *   length of 63 characters.
+   * * Keys and values can contain only lowercase letters, numeric characters,
+   *   underscores, and dashes. All characters must use UTF-8 encoding, and
+   *   international characters are allowed.
+   * * The key portion of a label must be unique. However, you can use the same
+   *   key with multiple resources.
+   * * Keys must start with a lowercase letter or international character.
+   * See [Google Cloud
+   * Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
+   * for more details.
+   * 
+ * + * map<string, string> labels = 34; + */ + int getLabelsCount(); + /** + * + * + *
+   * The labels applied to a resource must meet the following requirements:
+   * * Each resource can have multiple labels, up to a maximum of 64.
+   * * Each label must be a key-value pair.
+   * * Keys have a minimum length of 1 character and a maximum length of 63
+   *   characters and cannot be empty. Values can be empty and have a maximum
+   *   length of 63 characters.
+   * * Keys and values can contain only lowercase letters, numeric characters,
+   *   underscores, and dashes. All characters must use UTF-8 encoding, and
+   *   international characters are allowed.
+   * * The key portion of a label must be unique. However, you can use the same
+   *   key with multiple resources.
+   * * Keys must start with a lowercase letter or international character.
+   * See [Google Cloud
+   * Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
+   * for more details.
+   * 
+ * + * map<string, string> labels = 34; + */ + boolean containsLabels(java.lang.String key); + /** Use {@link #getLabelsMap()} instead. */ + @java.lang.Deprecated + java.util.Map getLabels(); + /** + * + * + *
+   * The labels applied to a resource must meet the following requirements:
+   * * Each resource can have multiple labels, up to a maximum of 64.
+   * * Each label must be a key-value pair.
+   * * Keys have a minimum length of 1 character and a maximum length of 63
+   *   characters and cannot be empty. Values can be empty and have a maximum
+   *   length of 63 characters.
+   * * Keys and values can contain only lowercase letters, numeric characters,
+   *   underscores, and dashes. All characters must use UTF-8 encoding, and
+   *   international characters are allowed.
+   * * The key portion of a label must be unique. However, you can use the same
+   *   key with multiple resources.
+   * * Keys must start with a lowercase letter or international character.
+   * See [Google Cloud
+   * Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
+   * for more details.
+   * 
+ * + * map<string, string> labels = 34; + */ + java.util.Map getLabelsMap(); + /** + * + * + *
+   * The labels applied to a resource must meet the following requirements:
+   * * Each resource can have multiple labels, up to a maximum of 64.
+   * * Each label must be a key-value pair.
+   * * Keys have a minimum length of 1 character and a maximum length of 63
+   *   characters and cannot be empty. Values can be empty and have a maximum
+   *   length of 63 characters.
+   * * Keys and values can contain only lowercase letters, numeric characters,
+   *   underscores, and dashes. All characters must use UTF-8 encoding, and
+   *   international characters are allowed.
+   * * The key portion of a label must be unique. However, you can use the same
+   *   key with multiple resources.
+   * * Keys must start with a lowercase letter or international character.
+   * See [Google Cloud
+   * Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
+   * for more details.
+   * 
+ * + * map<string, string> labels = 34; + */ + + /* nullable */ + java.lang.String getLabelsOrDefault( + java.lang.String key, + /* nullable */ + java.lang.String defaultValue); + /** + * + * + *
+   * The labels applied to a resource must meet the following requirements:
+   * * Each resource can have multiple labels, up to a maximum of 64.
+   * * Each label must be a key-value pair.
+   * * Keys have a minimum length of 1 character and a maximum length of 63
+   *   characters and cannot be empty. Values can be empty and have a maximum
+   *   length of 63 characters.
+   * * Keys and values can contain only lowercase letters, numeric characters,
+   *   underscores, and dashes. All characters must use UTF-8 encoding, and
+   *   international characters are allowed.
+   * * The key portion of a label must be unique. However, you can use the same
+   *   key with multiple resources.
+   * * Keys must start with a lowercase letter or international character.
+   * See [Google Cloud
+   * Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
+   * for more details.
+   * 
+ * + * map<string, string> labels = 34; + */ + java.lang.String getLabelsOrThrow(java.lang.String key); + + /** + * + * + *
+   * The spell correction specification that specifies the mode under
+   * which spell correction will take effect.
+   * 
+ * + * + * optional .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec spell_correction_spec = 35; + * + * + * @return Whether the spellCorrectionSpec field is set. + */ + boolean hasSpellCorrectionSpec(); + /** + * + * + *
+   * The spell correction specification that specifies the mode under
+   * which spell correction will take effect.
+   * 
+ * + * + * optional .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec spell_correction_spec = 35; + * + * + * @return The spellCorrectionSpec. + */ + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec getSpellCorrectionSpec(); + /** + * + * + *
+   * The spell correction specification that specifies the mode under
+   * which spell correction will take effect.
+   * 
+ * + * + * optional .google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec spell_correction_spec = 35; + * + */ + com.google.cloud.retail.v2.SearchRequest.SpellCorrectionSpecOrBuilder + getSpellCorrectionSpecOrBuilder(); } diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchResponse.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchResponse.java index f4b46d65..e3130be9 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchResponse.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchResponse.java @@ -6289,7 +6289,9 @@ public int getTotalSize() { * * *
-   * If spell correction applies, the corrected query. Otherwise, empty.
+   * Contains the spell corrected query, if found. If the spell correction type
+   * is AUTOMATIC, then the search results are based on corrected_query.
+   * Otherwise the original query will be used for search.
    * 
* * string corrected_query = 4; @@ -6312,7 +6314,9 @@ public java.lang.String getCorrectedQuery() { * * *
-   * If spell correction applies, the corrected query. Otherwise, empty.
+   * Contains the spell corrected query, if found. If the spell correction type
+   * is AUTOMATIC, then the search results are based on corrected_query.
+   * Otherwise the original query will be used for search.
    * 
* * string corrected_query = 4; @@ -6499,10 +6503,10 @@ public com.google.cloud.retail.v2.SearchResponse.QueryExpansionInfo getQueryExpa * *
    * The URI of a customer-defined redirect page. If redirect action is
-   * triggered, no search will be performed, and only
+   * triggered, no search is performed, and only
    * [redirect_uri][google.cloud.retail.v2.SearchResponse.redirect_uri] and
    * [attribution_token][google.cloud.retail.v2.SearchResponse.attribution_token]
-   * will be set in the response.
+   * are set in the response.
    * 
* * string redirect_uri = 10; @@ -6526,10 +6530,10 @@ public java.lang.String getRedirectUri() { * *
    * The URI of a customer-defined redirect page. If redirect action is
-   * triggered, no search will be performed, and only
+   * triggered, no search is performed, and only
    * [redirect_uri][google.cloud.retail.v2.SearchResponse.redirect_uri] and
    * [attribution_token][google.cloud.retail.v2.SearchResponse.attribution_token]
-   * will be set in the response.
+   * are set in the response.
    * 
* * string redirect_uri = 10; @@ -8097,7 +8101,9 @@ public Builder clearTotalSize() { * * *
-     * If spell correction applies, the corrected query. Otherwise, empty.
+     * Contains the spell corrected query, if found. If the spell correction type
+     * is AUTOMATIC, then the search results are based on corrected_query.
+     * Otherwise the original query will be used for search.
      * 
* * string corrected_query = 4; @@ -8119,7 +8125,9 @@ public java.lang.String getCorrectedQuery() { * * *
-     * If spell correction applies, the corrected query. Otherwise, empty.
+     * Contains the spell corrected query, if found. If the spell correction type
+     * is AUTOMATIC, then the search results are based on corrected_query.
+     * Otherwise the original query will be used for search.
      * 
* * string corrected_query = 4; @@ -8141,7 +8149,9 @@ public com.google.protobuf.ByteString getCorrectedQueryBytes() { * * *
-     * If spell correction applies, the corrected query. Otherwise, empty.
+     * Contains the spell corrected query, if found. If the spell correction type
+     * is AUTOMATIC, then the search results are based on corrected_query.
+     * Otherwise the original query will be used for search.
      * 
* * string corrected_query = 4; @@ -8162,7 +8172,9 @@ public Builder setCorrectedQuery(java.lang.String value) { * * *
-     * If spell correction applies, the corrected query. Otherwise, empty.
+     * Contains the spell corrected query, if found. If the spell correction type
+     * is AUTOMATIC, then the search results are based on corrected_query.
+     * Otherwise the original query will be used for search.
      * 
* * string corrected_query = 4; @@ -8179,7 +8191,9 @@ public Builder clearCorrectedQuery() { * * *
-     * If spell correction applies, the corrected query. Otherwise, empty.
+     * Contains the spell corrected query, if found. If the spell correction type
+     * is AUTOMATIC, then the search results are based on corrected_query.
+     * Otherwise the original query will be used for search.
      * 
* * string corrected_query = 4; @@ -8641,10 +8655,10 @@ public Builder clearQueryExpansionInfo() { * *
      * The URI of a customer-defined redirect page. If redirect action is
-     * triggered, no search will be performed, and only
+     * triggered, no search is performed, and only
      * [redirect_uri][google.cloud.retail.v2.SearchResponse.redirect_uri] and
      * [attribution_token][google.cloud.retail.v2.SearchResponse.attribution_token]
-     * will be set in the response.
+     * are set in the response.
      * 
* * string redirect_uri = 10; @@ -8667,10 +8681,10 @@ public java.lang.String getRedirectUri() { * *
      * The URI of a customer-defined redirect page. If redirect action is
-     * triggered, no search will be performed, and only
+     * triggered, no search is performed, and only
      * [redirect_uri][google.cloud.retail.v2.SearchResponse.redirect_uri] and
      * [attribution_token][google.cloud.retail.v2.SearchResponse.attribution_token]
-     * will be set in the response.
+     * are set in the response.
      * 
* * string redirect_uri = 10; @@ -8693,10 +8707,10 @@ public com.google.protobuf.ByteString getRedirectUriBytes() { * *
      * The URI of a customer-defined redirect page. If redirect action is
-     * triggered, no search will be performed, and only
+     * triggered, no search is performed, and only
      * [redirect_uri][google.cloud.retail.v2.SearchResponse.redirect_uri] and
      * [attribution_token][google.cloud.retail.v2.SearchResponse.attribution_token]
-     * will be set in the response.
+     * are set in the response.
      * 
* * string redirect_uri = 10; @@ -8718,10 +8732,10 @@ public Builder setRedirectUri(java.lang.String value) { * *
      * The URI of a customer-defined redirect page. If redirect action is
-     * triggered, no search will be performed, and only
+     * triggered, no search is performed, and only
      * [redirect_uri][google.cloud.retail.v2.SearchResponse.redirect_uri] and
      * [attribution_token][google.cloud.retail.v2.SearchResponse.attribution_token]
-     * will be set in the response.
+     * are set in the response.
      * 
* * string redirect_uri = 10; @@ -8739,10 +8753,10 @@ public Builder clearRedirectUri() { * *
      * The URI of a customer-defined redirect page. If redirect action is
-     * triggered, no search will be performed, and only
+     * triggered, no search is performed, and only
      * [redirect_uri][google.cloud.retail.v2.SearchResponse.redirect_uri] and
      * [attribution_token][google.cloud.retail.v2.SearchResponse.attribution_token]
-     * will be set in the response.
+     * are set in the response.
      * 
* * string redirect_uri = 10; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchResponseOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchResponseOrBuilder.java index db9ef8a5..9ae9b716 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchResponseOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchResponseOrBuilder.java @@ -148,7 +148,9 @@ public interface SearchResponseOrBuilder * * *
-   * If spell correction applies, the corrected query. Otherwise, empty.
+   * Contains the spell corrected query, if found. If the spell correction type
+   * is AUTOMATIC, then the search results are based on corrected_query.
+   * Otherwise the original query will be used for search.
    * 
* * string corrected_query = 4; @@ -160,7 +162,9 @@ public interface SearchResponseOrBuilder * * *
-   * If spell correction applies, the corrected query. Otherwise, empty.
+   * Contains the spell corrected query, if found. If the spell correction type
+   * is AUTOMATIC, then the search results are based on corrected_query.
+   * Otherwise the original query will be used for search.
    * 
* * string corrected_query = 4; @@ -273,10 +277,10 @@ public interface SearchResponseOrBuilder * *
    * The URI of a customer-defined redirect page. If redirect action is
-   * triggered, no search will be performed, and only
+   * triggered, no search is performed, and only
    * [redirect_uri][google.cloud.retail.v2.SearchResponse.redirect_uri] and
    * [attribution_token][google.cloud.retail.v2.SearchResponse.attribution_token]
-   * will be set in the response.
+   * are set in the response.
    * 
* * string redirect_uri = 10; @@ -289,10 +293,10 @@ public interface SearchResponseOrBuilder * *
    * The URI of a customer-defined redirect page. If redirect action is
-   * triggered, no search will be performed, and only
+   * triggered, no search is performed, and only
    * [redirect_uri][google.cloud.retail.v2.SearchResponse.redirect_uri] and
    * [attribution_token][google.cloud.retail.v2.SearchResponse.attribution_token]
-   * will be set in the response.
+   * are set in the response.
    * 
* * string redirect_uri = 10; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchServiceProto.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchServiceProto.java index 5afae950..28b6899c 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchServiceProto.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchServiceProto.java @@ -59,6 +59,14 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r internal_static_google_cloud_retail_v2_SearchRequest_PersonalizationSpec_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_google_cloud_retail_v2_SearchRequest_PersonalizationSpec_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_retail_v2_SearchRequest_SpellCorrectionSpec_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_retail_v2_SearchRequest_SpellCorrectionSpec_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_retail_v2_SearchRequest_LabelsEntry_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_retail_v2_SearchRequest_LabelsEntry_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_google_cloud_retail_v2_SearchResponse_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable @@ -104,7 +112,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "etail/v2/common.proto\032$google/cloud/reta" + "il/v2/product.proto\032 google/protobuf/fie" + "ld_mask.proto\032\034google/protobuf/struct.pr" - + "oto\"\356\017\n\rSearchRequest\022\026\n\tplacement\030\001 \001(\t" + + "oto\"\374\022\n\rSearchRequest\022\026\n\tplacement\030\001 \001(\t" + "B\003\340A\002\0221\n\006branch\030\002 \001(\tB!\372A\036\n\034retail.googl" + "eapis.com/Branch\022\r\n\005query\030\003 \001(\t\022\027\n\nvisit" + "or_id\030\004 \001(\tB\003\340A\002\0223\n\tuser_info\030\005 \001(\0132 .go" @@ -124,82 +132,92 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "rch_mode\030\037 \001(\01620.google.cloud.retail.v2." + "SearchRequest.SearchMode\022W\n\024personalizat" + "ion_spec\030 \001(\01329.google.cloud.retail.v2." - + "SearchRequest.PersonalizationSpec\032\337\002\n\tFa" - + "cetSpec\022P\n\tfacet_key\030\001 \001(\01328.google.clou" - + "d.retail.v2.SearchRequest.FacetSpec.Face" - + "tKeyB\003\340A\002\022\r\n\005limit\030\002 \001(\005\022\034\n\024excluded_fil" - + "ter_keys\030\003 \003(\t\022\037\n\027enable_dynamic_positio" - + "n\030\004 \001(\010\032\261\001\n\010FacetKey\022\020\n\003key\030\001 \001(\tB\003\340A\002\0223" - + "\n\tintervals\030\002 \003(\0132 .google.cloud.retail." - + "v2.Interval\022\031\n\021restricted_values\030\003 \003(\t\022\020" - + "\n\010prefixes\030\010 \003(\t\022\020\n\010contains\030\t \003(\t\022\020\n\010or" - + "der_by\030\004 \001(\t\022\r\n\005query\030\005 \001(\t\032\226\001\n\020DynamicF" - + "acetSpec\022I\n\004mode\030\001 \001(\0162;.google.cloud.re" - + "tail.v2.SearchRequest.DynamicFacetSpec.M" - + "ode\"7\n\004Mode\022\024\n\020MODE_UNSPECIFIED\020\000\022\014\n\010DIS" - + "ABLED\020\001\022\013\n\007ENABLED\020\002\032\356\001\n\tBoostSpec\022a\n\025co" - + "ndition_boost_specs\030\001 \003(\0132B.google.cloud" - + ".retail.v2.SearchRequest.BoostSpec.Condi" - + "tionBoostSpec\022\'\n\032skip_boost_spec_validat" - + "ion\030\002 \001(\010H\000\210\001\001\0326\n\022ConditionBoostSpec\022\021\n\t" - + "condition\030\001 \001(\t\022\r\n\005boost\030\002 \001(\002B\035\n\033_skip_" - + "boost_spec_validation\032\313\001\n\022QueryExpansion" - + "Spec\022U\n\tcondition\030\001 \001(\0162B.google.cloud.r" - + "etail.v2.SearchRequest.QueryExpansionSpe" - + "c.Condition\022\036\n\026pin_unexpanded_results\030\002 " - + "\001(\010\">\n\tCondition\022\031\n\025CONDITION_UNSPECIFIE" - + "D\020\000\022\014\n\010DISABLED\020\001\022\010\n\004AUTO\020\003\032\231\001\n\023Personal" - + "izationSpec\022L\n\004mode\030\001 \001(\0162>.google.cloud" - + ".retail.v2.SearchRequest.Personalization" - + "Spec.Mode\"4\n\004Mode\022\024\n\020MODE_UNSPECIFIED\020\000\022" - + "\010\n\004AUTO\020\001\022\014\n\010DISABLED\020\002\"[\n\nSearchMode\022\033\n" - + "\027SEARCH_MODE_UNSPECIFIED\020\000\022\027\n\023PRODUCT_SE" - + "ARCH_ONLY\020\001\022\027\n\023FACETED_SEARCH_ONLY\020\002\"\231\n\n" - + "\016SearchResponse\022D\n\007results\030\001 \003(\01323.googl" - + "e.cloud.retail.v2.SearchResponse.SearchR" - + "esult\022<\n\006facets\030\002 \003(\0132,.google.cloud.ret" - + "ail.v2.SearchResponse.Facet\022\022\n\ntotal_siz" - + "e\030\003 \001(\005\022\027\n\017corrected_query\030\004 \001(\t\022\031\n\021attr" - + "ibution_token\030\005 \001(\t\022\027\n\017next_page_token\030\006" - + " \001(\t\022W\n\024query_expansion_info\030\007 \001(\01329.goo" - + "gle.cloud.retail.v2.SearchResponse.Query" - + "ExpansionInfo\022\024\n\014redirect_uri\030\n \001(\t\022\030\n\020a" - + "pplied_controls\030\014 \003(\t\022i\n\035invalid_conditi" - + "on_boost_specs\030\016 \003(\0132B.google.cloud.reta" - + "il.v2.SearchRequest.BoostSpec.ConditionB" - + "oostSpec\032\370\003\n\014SearchResult\022\n\n\002id\030\001 \001(\t\0220\n" - + "\007product\030\002 \001(\0132\037.google.cloud.retail.v2." - + "Product\022\036\n\026matching_variant_count\030\003 \001(\005\022" - + "o\n\027matching_variant_fields\030\004 \003(\0132N.googl" - + "e.cloud.retail.v2.SearchResponse.SearchR" - + "esult.MatchingVariantFieldsEntry\022k\n\025vari" - + "ant_rollup_values\030\005 \003(\0132L.google.cloud.r" - + "etail.v2.SearchResponse.SearchResult.Var" - + "iantRollupValuesEntry\032X\n\032MatchingVariant" - + "FieldsEntry\022\013\n\003key\030\001 \001(\t\022)\n\005value\030\002 \001(\0132" - + "\032.google.protobuf.FieldMask:\0028\001\032R\n\030Varia" - + "ntRollupValuesEntry\022\013\n\003key\030\001 \001(\t\022%\n\005valu" - + "e\030\002 \001(\0132\026.google.protobuf.Value:\0028\001\032\347\001\n\005" - + "Facet\022\013\n\003key\030\001 \001(\t\022G\n\006values\030\002 \003(\01327.goo" - + "gle.cloud.retail.v2.SearchResponse.Facet" - + ".FacetValue\022\025\n\rdynamic_facet\030\003 \001(\010\032q\n\nFa" - + "cetValue\022\017\n\005value\030\001 \001(\tH\000\0224\n\010interval\030\002 " - + "\001(\0132 .google.cloud.retail.v2.IntervalH\000\022" - + "\r\n\005count\030\003 \001(\003B\r\n\013facet_value\032I\n\022QueryEx" - + "pansionInfo\022\026\n\016expanded_query\030\001 \001(\010\022\033\n\023p" - + "inned_result_count\030\002 \001(\0032\206\002\n\rSearchServi" - + "ce\022\251\001\n\006Search\022%.google.cloud.retail.v2.S" - + "earchRequest\032&.google.cloud.retail.v2.Se" - + "archResponse\"P\202\323\344\223\002J\"E/v2/{placement=pro" - + "jects/*/locations/*/catalogs/*/placement" - + "s/*}:search:\001*\032I\312A\025retail.googleapis.com" - + "\322A.https://www.googleapis.com/auth/cloud" - + "-platformB\307\001\n\032com.google.cloud.retail.v2" - + "B\022SearchServiceProtoP\001Z\n\tCondition\022\031\n\025CONDITION_UNSPECIF" + + "IED\020\000\022\014\n\010DISABLED\020\001\022\010\n\004AUTO\020\003\032\231\001\n\023Person" + + "alizationSpec\022L\n\004mode\030\001 \001(\0162>.google.clo" + + "ud.retail.v2.SearchRequest.Personalizati" + + "onSpec.Mode\"4\n\004Mode\022\024\n\020MODE_UNSPECIFIED\020" + + "\000\022\010\n\004AUTO\020\001\022\014\n\010DISABLED\020\002\032\240\001\n\023SpellCorre" + + "ctionSpec\022L\n\004mode\030\001 \001(\0162>.google.cloud.r" + + "etail.v2.SearchRequest.SpellCorrectionSp" + + "ec.Mode\";\n\004Mode\022\024\n\020MODE_UNSPECIFIED\020\000\022\023\n" + + "\017SUGGESTION_ONLY\020\001\022\010\n\004AUTO\020\002\032-\n\013LabelsEn" + + "try\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"[\n\nS" + + "earchMode\022\033\n\027SEARCH_MODE_UNSPECIFIED\020\000\022\027" + + "\n\023PRODUCT_SEARCH_ONLY\020\001\022\027\n\023FACETED_SEARC" + + "H_ONLY\020\002B\030\n\026_spell_correction_spec\"\231\n\n\016S" + + "earchResponse\022D\n\007results\030\001 \003(\01323.google." + + "cloud.retail.v2.SearchResponse.SearchRes" + + "ult\022<\n\006facets\030\002 \003(\0132,.google.cloud.retai" + + "l.v2.SearchResponse.Facet\022\022\n\ntotal_size\030" + + "\003 \001(\005\022\027\n\017corrected_query\030\004 \001(\t\022\031\n\021attrib" + + "ution_token\030\005 \001(\t\022\027\n\017next_page_token\030\006 \001" + + "(\t\022W\n\024query_expansion_info\030\007 \001(\01329.googl" + + "e.cloud.retail.v2.SearchResponse.QueryEx" + + "pansionInfo\022\024\n\014redirect_uri\030\n \001(\t\022\030\n\020app" + + "lied_controls\030\014 \003(\t\022i\n\035invalid_condition" + + "_boost_specs\030\016 \003(\0132B.google.cloud.retail" + + ".v2.SearchRequest.BoostSpec.ConditionBoo" + + "stSpec\032\370\003\n\014SearchResult\022\n\n\002id\030\001 \001(\t\0220\n\007p" + + "roduct\030\002 \001(\0132\037.google.cloud.retail.v2.Pr" + + "oduct\022\036\n\026matching_variant_count\030\003 \001(\005\022o\n" + + "\027matching_variant_fields\030\004 \003(\0132N.google." + + "cloud.retail.v2.SearchResponse.SearchRes" + + "ult.MatchingVariantFieldsEntry\022k\n\025varian" + + "t_rollup_values\030\005 \003(\0132L.google.cloud.ret" + + "ail.v2.SearchResponse.SearchResult.Varia" + + "ntRollupValuesEntry\032X\n\032MatchingVariantFi" + + "eldsEntry\022\013\n\003key\030\001 \001(\t\022)\n\005value\030\002 \001(\0132\032." + + "google.protobuf.FieldMask:\0028\001\032R\n\030Variant" + + "RollupValuesEntry\022\013\n\003key\030\001 \001(\t\022%\n\005value\030" + + "\002 \001(\0132\026.google.protobuf.Value:\0028\001\032\347\001\n\005Fa" + + "cet\022\013\n\003key\030\001 \001(\t\022G\n\006values\030\002 \003(\01327.googl" + + "e.cloud.retail.v2.SearchResponse.Facet.F" + + "acetValue\022\025\n\rdynamic_facet\030\003 \001(\010\032q\n\nFace" + + "tValue\022\017\n\005value\030\001 \001(\tH\000\0224\n\010interval\030\002 \001(" + + "\0132 .google.cloud.retail.v2.IntervalH\000\022\r\n" + + "\005count\030\003 \001(\003B\r\n\013facet_value\032I\n\022QueryExpa" + + "nsionInfo\022\026\n\016expanded_query\030\001 \001(\010\022\033\n\023pin" + + "ned_result_count\030\002 \001(\0032\206\002\n\rSearchService" + + "\022\251\001\n\006Search\022%.google.cloud.retail.v2.Sea" + + "rchRequest\032&.google.cloud.retail.v2.Sear" + + "chResponse\"P\202\323\344\223\002J\"E/v2/{placement=proje" + + "cts/*/locations/*/catalogs/*/placements/" + + "*}:search:\001*\032I\312A\025retail.googleapis.com\322A" + + ".https://www.googleapis.com/auth/cloud-p" + + "latformB\307\001\n\032com.google.cloud.retail.v2B\022" + + "SearchServiceProtoP\001Z * * .google.protobuf.FieldMask update_mask = 2; @@ -241,6 +245,10 @@ public boolean hasUpdateMask() { * fields that are neither immutable nor output only) are updated. * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error * is returned. + * The attribute key can be updated by setting the mask path as + * "attributes.${key_name}". If a key name is present in the mask but not in + * the patching product from the request, this key will be deleted after the + * update. * * * .google.protobuf.FieldMask update_mask = 2; @@ -261,6 +269,10 @@ public com.google.protobuf.FieldMask getUpdateMask() { * fields that are neither immutable nor output only) are updated. * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error * is returned. + * The attribute key can be updated by setting the mask path as + * "attributes.${key_name}". If a key name is present in the mask but not in + * the patching product from the request, this key will be deleted after the + * update. * * * .google.protobuf.FieldMask update_mask = 2; @@ -935,6 +947,10 @@ public com.google.cloud.retail.v2.ProductOrBuilder getProductOrBuilder() { * fields that are neither immutable nor output only) are updated. * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error * is returned. + * The attribute key can be updated by setting the mask path as + * "attributes.${key_name}". If a key name is present in the mask but not in + * the patching product from the request, this key will be deleted after the + * update. * * * .google.protobuf.FieldMask update_mask = 2; @@ -954,6 +970,10 @@ public boolean hasUpdateMask() { * fields that are neither immutable nor output only) are updated. * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error * is returned. + * The attribute key can be updated by setting the mask path as + * "attributes.${key_name}". If a key name is present in the mask but not in + * the patching product from the request, this key will be deleted after the + * update. * * * .google.protobuf.FieldMask update_mask = 2; @@ -979,6 +999,10 @@ public com.google.protobuf.FieldMask getUpdateMask() { * fields that are neither immutable nor output only) are updated. * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error * is returned. + * The attribute key can be updated by setting the mask path as + * "attributes.${key_name}". If a key name is present in the mask but not in + * the patching product from the request, this key will be deleted after the + * update. * * * .google.protobuf.FieldMask update_mask = 2; @@ -1006,6 +1030,10 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask value) { * fields that are neither immutable nor output only) are updated. * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error * is returned. + * The attribute key can be updated by setting the mask path as + * "attributes.${key_name}". If a key name is present in the mask but not in + * the patching product from the request, this key will be deleted after the + * update. * * * .google.protobuf.FieldMask update_mask = 2; @@ -1030,6 +1058,10 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask.Builder builderForVal * fields that are neither immutable nor output only) are updated. * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error * is returned. + * The attribute key can be updated by setting the mask path as + * "attributes.${key_name}". If a key name is present in the mask but not in + * the patching product from the request, this key will be deleted after the + * update. * * * .google.protobuf.FieldMask update_mask = 2; @@ -1059,6 +1091,10 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) { * fields that are neither immutable nor output only) are updated. * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error * is returned. + * The attribute key can be updated by setting the mask path as + * "attributes.${key_name}". If a key name is present in the mask but not in + * the patching product from the request, this key will be deleted after the + * update. * * * .google.protobuf.FieldMask update_mask = 2; @@ -1084,6 +1120,10 @@ public Builder clearUpdateMask() { * fields that are neither immutable nor output only) are updated. * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error * is returned. + * The attribute key can be updated by setting the mask path as + * "attributes.${key_name}". If a key name is present in the mask but not in + * the patching product from the request, this key will be deleted after the + * update. * * * .google.protobuf.FieldMask update_mask = 2; @@ -1103,6 +1143,10 @@ public com.google.protobuf.FieldMask.Builder getUpdateMaskBuilder() { * fields that are neither immutable nor output only) are updated. * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error * is returned. + * The attribute key can be updated by setting the mask path as + * "attributes.${key_name}". If a key name is present in the mask but not in + * the patching product from the request, this key will be deleted after the + * update. * * * .google.protobuf.FieldMask update_mask = 2; @@ -1126,6 +1170,10 @@ public com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder() { * fields that are neither immutable nor output only) are updated. * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error * is returned. + * The attribute key can be updated by setting the mask path as + * "attributes.${key_name}". If a key name is present in the mask but not in + * the patching product from the request, this key will be deleted after the + * update. * * * .google.protobuf.FieldMask update_mask = 2; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UpdateProductRequestOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UpdateProductRequestOrBuilder.java index b79bb021..ad88ec3e 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UpdateProductRequestOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UpdateProductRequestOrBuilder.java @@ -92,6 +92,10 @@ public interface UpdateProductRequestOrBuilder * fields that are neither immutable nor output only) are updated. * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error * is returned. + * The attribute key can be updated by setting the mask path as + * "attributes.${key_name}". If a key name is present in the mask but not in + * the patching product from the request, this key will be deleted after the + * update. * * * .google.protobuf.FieldMask update_mask = 2; @@ -109,6 +113,10 @@ public interface UpdateProductRequestOrBuilder * fields that are neither immutable nor output only) are updated. * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error * is returned. + * The attribute key can be updated by setting the mask path as + * "attributes.${key_name}". If a key name is present in the mask but not in + * the patching product from the request, this key will be deleted after the + * update. * * * .google.protobuf.FieldMask update_mask = 2; @@ -126,6 +134,10 @@ public interface UpdateProductRequestOrBuilder * fields that are neither immutable nor output only) are updated. * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error * is returned. + * The attribute key can be updated by setting the mask path as + * "attributes.${key_name}". If a key name is present in the mask but not in + * the patching product from the request, this key will be deleted after the + * update. * * * .google.protobuf.FieldMask update_mask = 2; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserEvent.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserEvent.java index 2c22a209..0f55ac45 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserEvent.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserEvent.java @@ -414,10 +414,13 @@ public com.google.protobuf.ByteString getEventTypeBytes() { * For example, this could be implemented with an HTTP cookie, which should be * able to uniquely identify a visitor on a single device. This unique * identifier should not change if the visitor log in/out of the website. + * Don't set the field to the same fixed ID for different users. This mixes + * the event history of those users together, which results in degraded model + * quality. * The field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. * The field should not contain PII or user-data. We recommend to use Google - * Analystics [Client + * Analytics [Client * ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) * for this field. * @@ -446,10 +449,13 @@ public java.lang.String getVisitorId() { * For example, this could be implemented with an HTTP cookie, which should be * able to uniquely identify a visitor on a single device. This unique * identifier should not change if the visitor log in/out of the website. + * Don't set the field to the same fixed ID for different users. This mixes + * the event history of those users together, which results in degraded model + * quality. * The field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. * The field should not contain PII or user-data. We recommend to use Google - * Analystics [Client + * Analytics [Client * ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) * for this field. * @@ -753,11 +759,10 @@ public com.google.protobuf.ByteString getAttributionTokenBytes() { * *
    * The main product details related to the event.
-   * This field is required for the following event types:
+   * This field is optional except for the following event types:
    * * `add-to-cart`
    * * `detail-page-view`
    * * `purchase-complete`
-   * * `search`
    * In a `search` event, this field represents the products returned to the end
    * user on the current page (the end user may have not finished browsing the
    * whole page yet). When a new page is returned to the end user, after
@@ -778,11 +783,10 @@ public java.util.List getProductDetail
    *
    * 
    * The main product details related to the event.
-   * This field is required for the following event types:
+   * This field is optional except for the following event types:
    * * `add-to-cart`
    * * `detail-page-view`
    * * `purchase-complete`
-   * * `search`
    * In a `search` event, this field represents the products returned to the end
    * user on the current page (the end user may have not finished browsing the
    * whole page yet). When a new page is returned to the end user, after
@@ -804,11 +808,10 @@ public java.util.List getProductDetail
    *
    * 
    * The main product details related to the event.
-   * This field is required for the following event types:
+   * This field is optional except for the following event types:
    * * `add-to-cart`
    * * `detail-page-view`
    * * `purchase-complete`
-   * * `search`
    * In a `search` event, this field represents the products returned to the end
    * user on the current page (the end user may have not finished browsing the
    * whole page yet). When a new page is returned to the end user, after
@@ -829,11 +832,10 @@ public int getProductDetailsCount() {
    *
    * 
    * The main product details related to the event.
-   * This field is required for the following event types:
+   * This field is optional except for the following event types:
    * * `add-to-cart`
    * * `detail-page-view`
    * * `purchase-complete`
-   * * `search`
    * In a `search` event, this field represents the products returned to the end
    * user on the current page (the end user may have not finished browsing the
    * whole page yet). When a new page is returned to the end user, after
@@ -854,11 +856,10 @@ public com.google.cloud.retail.v2.ProductDetail getProductDetails(int index) {
    *
    * 
    * The main product details related to the event.
-   * This field is required for the following event types:
+   * This field is optional except for the following event types:
    * * `add-to-cart`
    * * `detail-page-view`
    * * `purchase-complete`
-   * * `search`
    * In a `search` event, this field represents the products returned to the end
    * user on the current page (the end user may have not finished browsing the
    * whole page yet). When a new page is returned to the end user, after
@@ -2683,10 +2684,13 @@ public Builder setEventTypeBytes(com.google.protobuf.ByteString value) {
      * For example, this could be implemented with an HTTP cookie, which should be
      * able to uniquely identify a visitor on a single device. This unique
      * identifier should not change if the visitor log in/out of the website.
+     * Don't set the field to the same fixed ID for different users. This mixes
+     * the event history of those users together, which results in degraded model
+     * quality.
      * The field must be a UTF-8 encoded string with a length limit of 128
      * characters. Otherwise, an INVALID_ARGUMENT error is returned.
      * The field should not contain PII or user-data. We recommend to use Google
-     * Analystics [Client
+     * Analytics [Client
      * ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId)
      * for this field.
      * 
@@ -2714,10 +2718,13 @@ public java.lang.String getVisitorId() { * For example, this could be implemented with an HTTP cookie, which should be * able to uniquely identify a visitor on a single device. This unique * identifier should not change if the visitor log in/out of the website. + * Don't set the field to the same fixed ID for different users. This mixes + * the event history of those users together, which results in degraded model + * quality. * The field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. * The field should not contain PII or user-data. We recommend to use Google - * Analystics [Client + * Analytics [Client * ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) * for this field. *
@@ -2745,10 +2752,13 @@ public com.google.protobuf.ByteString getVisitorIdBytes() { * For example, this could be implemented with an HTTP cookie, which should be * able to uniquely identify a visitor on a single device. This unique * identifier should not change if the visitor log in/out of the website. + * Don't set the field to the same fixed ID for different users. This mixes + * the event history of those users together, which results in degraded model + * quality. * The field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. * The field should not contain PII or user-data. We recommend to use Google - * Analystics [Client + * Analytics [Client * ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) * for this field. *
@@ -2775,10 +2785,13 @@ public Builder setVisitorId(java.lang.String value) { * For example, this could be implemented with an HTTP cookie, which should be * able to uniquely identify a visitor on a single device. This unique * identifier should not change if the visitor log in/out of the website. + * Don't set the field to the same fixed ID for different users. This mixes + * the event history of those users together, which results in degraded model + * quality. * The field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. * The field should not contain PII or user-data. We recommend to use Google - * Analystics [Client + * Analytics [Client * ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) * for this field. *
@@ -2801,10 +2814,13 @@ public Builder clearVisitorId() { * For example, this could be implemented with an HTTP cookie, which should be * able to uniquely identify a visitor on a single device. This unique * identifier should not change if the visitor log in/out of the website. + * Don't set the field to the same fixed ID for different users. This mixes + * the event history of those users together, which results in degraded model + * quality. * The field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. * The field should not contain PII or user-data. We recommend to use Google - * Analystics [Client + * Analytics [Client * ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) * for this field. *
@@ -3581,11 +3597,10 @@ private void ensureProductDetailsIsMutable() { * *
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
@@ -3609,11 +3624,10 @@ public java.util.List getProductDetail
      *
      * 
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
@@ -3637,11 +3651,10 @@ public int getProductDetailsCount() {
      *
      * 
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
@@ -3665,11 +3678,10 @@ public com.google.cloud.retail.v2.ProductDetail getProductDetails(int index) {
      *
      * 
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
@@ -3699,11 +3711,10 @@ public Builder setProductDetails(int index, com.google.cloud.retail.v2.ProductDe
      *
      * 
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
@@ -3731,11 +3742,10 @@ public Builder setProductDetails(
      *
      * 
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
@@ -3765,11 +3775,10 @@ public Builder addProductDetails(com.google.cloud.retail.v2.ProductDetail value)
      *
      * 
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
@@ -3799,11 +3808,10 @@ public Builder addProductDetails(int index, com.google.cloud.retail.v2.ProductDe
      *
      * 
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
@@ -3831,11 +3839,10 @@ public Builder addProductDetails(
      *
      * 
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
@@ -3863,11 +3870,10 @@ public Builder addProductDetails(
      *
      * 
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
@@ -3895,11 +3901,10 @@ public Builder addAllProductDetails(
      *
      * 
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
@@ -3926,11 +3931,10 @@ public Builder clearProductDetails() {
      *
      * 
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
@@ -3957,11 +3961,10 @@ public Builder removeProductDetails(int index) {
      *
      * 
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
@@ -3981,11 +3984,10 @@ public com.google.cloud.retail.v2.ProductDetail.Builder getProductDetailsBuilder
      *
      * 
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
@@ -4009,11 +4011,10 @@ public com.google.cloud.retail.v2.ProductDetailOrBuilder getProductDetailsOrBuil
      *
      * 
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
@@ -4038,11 +4039,10 @@ public com.google.cloud.retail.v2.ProductDetailOrBuilder getProductDetailsOrBuil
      *
      * 
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
@@ -4063,11 +4063,10 @@ public com.google.cloud.retail.v2.ProductDetail.Builder addProductDetailsBuilder
      *
      * 
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
@@ -4088,11 +4087,10 @@ public com.google.cloud.retail.v2.ProductDetail.Builder addProductDetailsBuilder
      *
      * 
      * The main product details related to the event.
-     * This field is required for the following event types:
+     * This field is optional except for the following event types:
      * * `add-to-cart`
      * * `detail-page-view`
      * * `purchase-complete`
-     * * `search`
      * In a `search` event, this field represents the products returned to the end
      * user on the current page (the end user may have not finished browsing the
      * whole page yet). When a new page is returned to the end user, after
diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserEventOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserEventOrBuilder.java
index 981770f7..d50e1f9a 100644
--- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserEventOrBuilder.java
+++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserEventOrBuilder.java
@@ -76,10 +76,13 @@ public interface UserEventOrBuilder
    * For example, this could be implemented with an HTTP cookie, which should be
    * able to uniquely identify a visitor on a single device. This unique
    * identifier should not change if the visitor log in/out of the website.
+   * Don't set the field to the same fixed ID for different users. This mixes
+   * the event history of those users together, which results in degraded model
+   * quality.
    * The field must be a UTF-8 encoded string with a length limit of 128
    * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    * The field should not contain PII or user-data. We recommend to use Google
-   * Analystics [Client
+   * Analytics [Client
    * ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId)
    * for this field.
    * 
@@ -97,10 +100,13 @@ public interface UserEventOrBuilder * For example, this could be implemented with an HTTP cookie, which should be * able to uniquely identify a visitor on a single device. This unique * identifier should not change if the visitor log in/out of the website. + * Don't set the field to the same fixed ID for different users. This mixes + * the event history of those users together, which results in degraded model + * quality. * The field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. * The field should not contain PII or user-data. We recommend to use Google - * Analystics [Client + * Analytics [Client * ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) * for this field. *
@@ -322,11 +328,10 @@ public interface UserEventOrBuilder * *
    * The main product details related to the event.
-   * This field is required for the following event types:
+   * This field is optional except for the following event types:
    * * `add-to-cart`
    * * `detail-page-view`
    * * `purchase-complete`
-   * * `search`
    * In a `search` event, this field represents the products returned to the end
    * user on the current page (the end user may have not finished browsing the
    * whole page yet). When a new page is returned to the end user, after
@@ -344,11 +349,10 @@ public interface UserEventOrBuilder
    *
    * 
    * The main product details related to the event.
-   * This field is required for the following event types:
+   * This field is optional except for the following event types:
    * * `add-to-cart`
    * * `detail-page-view`
    * * `purchase-complete`
-   * * `search`
    * In a `search` event, this field represents the products returned to the end
    * user on the current page (the end user may have not finished browsing the
    * whole page yet). When a new page is returned to the end user, after
@@ -366,11 +370,10 @@ public interface UserEventOrBuilder
    *
    * 
    * The main product details related to the event.
-   * This field is required for the following event types:
+   * This field is optional except for the following event types:
    * * `add-to-cart`
    * * `detail-page-view`
    * * `purchase-complete`
-   * * `search`
    * In a `search` event, this field represents the products returned to the end
    * user on the current page (the end user may have not finished browsing the
    * whole page yet). When a new page is returned to the end user, after
@@ -388,11 +391,10 @@ public interface UserEventOrBuilder
    *
    * 
    * The main product details related to the event.
-   * This field is required for the following event types:
+   * This field is optional except for the following event types:
    * * `add-to-cart`
    * * `detail-page-view`
    * * `purchase-complete`
-   * * `search`
    * In a `search` event, this field represents the products returned to the end
    * user on the current page (the end user may have not finished browsing the
    * whole page yet). When a new page is returned to the end user, after
@@ -411,11 +413,10 @@ public interface UserEventOrBuilder
    *
    * 
    * The main product details related to the event.
-   * This field is required for the following event types:
+   * This field is optional except for the following event types:
    * * `add-to-cart`
    * * `detail-page-view`
    * * `purchase-complete`
-   * * `search`
    * In a `search` event, this field represents the products returned to the end
    * user on the current page (the end user may have not finished browsing the
    * whole page yet). When a new page is returned to the end user, after
diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserInfo.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserInfo.java
index d23bc8d7..c4ee9c5f 100644
--- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserInfo.java
+++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserInfo.java
@@ -141,8 +141,11 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    *
    * 
    * Highly recommended for logged-in users. Unique identifier for logged-in
-   * user, such as a user name.
+   * user, such as a user name. Don't set for anonymous users.
    * Always use a hashed value for this ID.
+   * Don't set the field to the same fixed ID for different users. This mixes
+   * the event history of those users together, which results in degraded
+   * model quality.
    * The field must be a UTF-8 encoded string with a length limit of 128
    * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    * 
@@ -168,8 +171,11 @@ public java.lang.String getUserId() { * *
    * Highly recommended for logged-in users. Unique identifier for logged-in
-   * user, such as a user name.
+   * user, such as a user name. Don't set for anonymous users.
    * Always use a hashed value for this ID.
+   * Don't set the field to the same fixed ID for different users. This mixes
+   * the event history of those users together, which results in degraded
+   * model quality.
    * The field must be a UTF-8 encoded string with a length limit of 128
    * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    * 
@@ -722,8 +728,11 @@ public Builder mergeFrom( * *
      * Highly recommended for logged-in users. Unique identifier for logged-in
-     * user, such as a user name.
+     * user, such as a user name. Don't set for anonymous users.
      * Always use a hashed value for this ID.
+     * Don't set the field to the same fixed ID for different users. This mixes
+     * the event history of those users together, which results in degraded
+     * model quality.
      * The field must be a UTF-8 encoded string with a length limit of 128
      * characters. Otherwise, an INVALID_ARGUMENT error is returned.
      * 
@@ -748,8 +757,11 @@ public java.lang.String getUserId() { * *
      * Highly recommended for logged-in users. Unique identifier for logged-in
-     * user, such as a user name.
+     * user, such as a user name. Don't set for anonymous users.
      * Always use a hashed value for this ID.
+     * Don't set the field to the same fixed ID for different users. This mixes
+     * the event history of those users together, which results in degraded
+     * model quality.
      * The field must be a UTF-8 encoded string with a length limit of 128
      * characters. Otherwise, an INVALID_ARGUMENT error is returned.
      * 
@@ -774,8 +786,11 @@ public com.google.protobuf.ByteString getUserIdBytes() { * *
      * Highly recommended for logged-in users. Unique identifier for logged-in
-     * user, such as a user name.
+     * user, such as a user name. Don't set for anonymous users.
      * Always use a hashed value for this ID.
+     * Don't set the field to the same fixed ID for different users. This mixes
+     * the event history of those users together, which results in degraded
+     * model quality.
      * The field must be a UTF-8 encoded string with a length limit of 128
      * characters. Otherwise, an INVALID_ARGUMENT error is returned.
      * 
@@ -799,8 +814,11 @@ public Builder setUserId(java.lang.String value) { * *
      * Highly recommended for logged-in users. Unique identifier for logged-in
-     * user, such as a user name.
+     * user, such as a user name. Don't set for anonymous users.
      * Always use a hashed value for this ID.
+     * Don't set the field to the same fixed ID for different users. This mixes
+     * the event history of those users together, which results in degraded
+     * model quality.
      * The field must be a UTF-8 encoded string with a length limit of 128
      * characters. Otherwise, an INVALID_ARGUMENT error is returned.
      * 
@@ -820,8 +838,11 @@ public Builder clearUserId() { * *
      * Highly recommended for logged-in users. Unique identifier for logged-in
-     * user, such as a user name.
+     * user, such as a user name. Don't set for anonymous users.
      * Always use a hashed value for this ID.
+     * Don't set the field to the same fixed ID for different users. This mixes
+     * the event history of those users together, which results in degraded
+     * model quality.
      * The field must be a UTF-8 encoded string with a length limit of 128
      * characters. Otherwise, an INVALID_ARGUMENT error is returned.
      * 
diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserInfoOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserInfoOrBuilder.java index cae44c7d..ece646b4 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserInfoOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserInfoOrBuilder.java @@ -28,8 +28,11 @@ public interface UserInfoOrBuilder * *
    * Highly recommended for logged-in users. Unique identifier for logged-in
-   * user, such as a user name.
+   * user, such as a user name. Don't set for anonymous users.
    * Always use a hashed value for this ID.
+   * Don't set the field to the same fixed ID for different users. This mixes
+   * the event history of those users together, which results in degraded
+   * model quality.
    * The field must be a UTF-8 encoded string with a length limit of 128
    * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    * 
@@ -44,8 +47,11 @@ public interface UserInfoOrBuilder * *
    * Highly recommended for logged-in users. Unique identifier for logged-in
-   * user, such as a user name.
+   * user, such as a user name. Don't set for anonymous users.
    * Always use a hashed value for this ID.
+   * Don't set the field to the same fixed ID for different users. This mixes
+   * the event history of those users together, which results in degraded
+   * model quality.
    * The field must be a UTF-8 encoded string with a length limit of 128
    * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    * 
diff --git a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/catalog.proto b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/catalog.proto index b5de698d..119afaf3 100644 --- a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/catalog.proto +++ b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/catalog.proto @@ -40,10 +40,10 @@ message ProductLevelConfig { // default to // [Product.Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] if // unset. - // * `variant`: You can only ingest - // [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] - // [Product][google.cloud.retail.v2.Product]s. - // This means + // * `variant` (incompatible with Retail Search): You can only + // ingest + // [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] + // [Product][google.cloud.retail.v2.Product]s. This means // [Product.primary_product_id][google.cloud.retail.v2.Product.primary_product_id] // cannot be empty. // @@ -54,8 +54,8 @@ message ProductLevelConfig { // [merchant_center_product_id_field][google.cloud.retail.v2.ProductLevelConfig.merchant_center_product_id_field] // is `itemGroupId`, an INVALID_ARGUMENT error is returned. // - // See [Using product - // levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + // See [Product + // levels](https://cloud.google.com/retail/docs/catalog#product-levels) // for more details. string ingestion_product_type = 1; @@ -76,8 +76,8 @@ message ProductLevelConfig { // [ingestion_product_type][google.cloud.retail.v2.ProductLevelConfig.ingestion_product_type] // is `variant`, an INVALID_ARGUMENT error is returned. // - // See [Using product - // levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) + // See [Product + // levels](https://cloud.google.com/retail/docs/catalog#product-levels) // for more details. string merchant_center_product_id_field = 2; } diff --git a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/common.proto b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/common.proto index 733b8cca..386a9aa6 100644 --- a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/common.proto +++ b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/common.proto @@ -115,24 +115,29 @@ message CustomAttribute { // Otherwise, an INVALID_ARGUMENT error is returned. repeated double numbers = 2; - // This field will only be used when + // This field is normally ignored unless // [AttributesConfig.attribute_config_level][] of the - // [Catalog][google.cloud.retail.v2.Catalog] is - // 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are - // searchable by text queries in + // [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated + // 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level + // attribute configuration, see [Configuration + // modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). + // If true, custom attribute values are searchable by text queries in // [SearchService.Search][google.cloud.retail.v2.SearchService.Search]. // // This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent]. // // Only set if type [text][google.cloud.retail.v2.CustomAttribute.text] is // set. Otherwise, a INVALID_ARGUMENT error is returned. - optional bool searchable = 3; + optional bool searchable = 3 [deprecated = true]; - // This field will only be used when + // This field is normally ignored unless // [AttributesConfig.attribute_config_level][] of the - // [Catalog][google.cloud.retail.v2.Catalog] is - // 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are - // indexed, so that it can be filtered, faceted or boosted in + // [Catalog][google.cloud.retail.v2.Catalog] is set to the deprecated + // 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level + // attribute configuration, see [Configuration + // modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). + // If true, custom attribute values are indexed, so that they can be filtered, + // faceted or boosted in // [SearchService.Search][google.cloud.retail.v2.SearchService.Search]. // // This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent]. @@ -142,7 +147,7 @@ message CustomAttribute { // and // [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] // for more details. - optional bool indexable = 4; + optional bool indexable = 4 [deprecated = true]; } // Fulfillment information, such as the store IDs for in-store pickup or region @@ -284,7 +289,10 @@ message PriceInfo { float price = 2; // Price of the product without any discount. If zero, by default set to be - // the [price][google.cloud.retail.v2.PriceInfo.price]. + // the [price][google.cloud.retail.v2.PriceInfo.price]. If set, + // [original_price][google.cloud.retail.v2.PriceInfo.original_price] should be + // greater than or equal to [price][google.cloud.retail.v2.PriceInfo.price], + // otherwise an INVALID_ARGUMENT error is thrown. float original_price = 3; // The costs associated with the sale of a particular product. Used for gross @@ -368,10 +376,14 @@ message Rating { // Information of an end user. message UserInfo { // Highly recommended for logged-in users. Unique identifier for logged-in - // user, such as a user name. + // user, such as a user name. Don't set for anonymous users. // // Always use a hashed value for this ID. // + // Don't set the field to the same fixed ID for different users. This mixes + // the event history of those users together, which results in degraded + // model quality. + // // The field must be a UTF-8 encoded string with a length limit of 128 // characters. Otherwise, an INVALID_ARGUMENT error is returned. string user_id = 1; diff --git a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/completion_service.proto b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/completion_service.proto index 5e7e9a6c..68306218 100644 --- a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/completion_service.proto +++ b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/completion_service.proto @@ -133,9 +133,9 @@ message CompleteQueryRequest { // // * user-data // - // * cloud-retail - // This option requires additional allowlisting. Before using cloud-retail, - // contact Cloud Retail support team first. + // * cloud-retail: + // This option requires enabling auto-learning function first. See + // [guidelines](https://cloud.google.com/retail/docs/completion-overview#generated-completion-dataset). string dataset = 6; // Completion max suggestions. If left unset or set to 0, then will fallback @@ -154,10 +154,13 @@ message CompleteQueryResponse { string suggestion = 1; // Custom attributes for the suggestion term. + // // * For "user-data", the attributes are additional custom attributes // ingested through BigQuery. + // // * For "cloud-retail", the attributes are product attributes generated - // by Cloud Retail. + // by Cloud Retail. This is an experimental feature. Contact Retail Search + // support team if you are interested in enabling it. map attributes = 2; } @@ -185,11 +188,15 @@ message CompleteQueryResponse { // [CompleteQueryRequest.visitor_id][google.cloud.retail.v2.CompleteQueryRequest.visitor_id] // field is set and [UserEvent][google.cloud.retail.v2.UserEvent] is imported. // The recent searches satisfy the follow rules: + // // * They are ordered from latest to oldest. + // // * They are matched with // [CompleteQueryRequest.query][google.cloud.retail.v2.CompleteQueryRequest.query] // case insensitively. + // // * They are transformed to lower cases. + // // * They are UTF-8 safe. // // Recent searches are deduplicated. More recent searches will be reserved diff --git a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/import_config.proto b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/import_config.proto index 74cec22a..cadec119 100644 --- a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/import_config.proto +++ b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/import_config.proto @@ -214,11 +214,18 @@ message ImportProductsRequest { // [ReconciliationMode.INCREMENTAL][google.cloud.retail.v2.ImportProductsRequest.ReconciliationMode.INCREMENTAL]. ReconciliationMode reconciliation_mode = 5; - // Pub/Sub topic for receiving notification. If this field is set, + // Full Pub/Sub topic name for receiving notification. If this field is set, // when the import is finished, a notification will be sent to // specified Pub/Sub topic. The message data will be JSON string of a // [Operation][google.longrunning.Operation]. - // Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. + // + // Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has + // to be within the same project as + // [ImportProductsRequest.parent][google.cloud.retail.v2.ImportProductsRequest.parent]. + // Make sure that both + // `cloud-retail-customer-data-access@system.gserviceaccount.com` and + // `service-@gcp-sa-retail.iam.gserviceaccount.com` + // have the `pubsub.topics.publish` IAM permission on the topic. // // Only supported when // [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode] diff --git a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/prediction_service.proto b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/prediction_service.proto index 061db142..f1f1b4e1 100644 --- a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/prediction_service.proto +++ b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/prediction_service.proto @@ -63,6 +63,16 @@ message PredictRequest { // they took to trigger the predict request. Note that this user event detail // won't be ingested to userEvent logs. Thus, a separate userEvent write // request is required for event logging. + // + // Don't set + // [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] or + // [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] to the same + // fixed ID for different users. If you are trying to receive non-personalized + // recommendations (not recommended; this can negatively impact model + // performance), instead set + // [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id] to a + // random unique ID and leave + // [UserInfo.user_id][google.cloud.retail.v2.UserInfo.user_id] unset. UserEvent user_event = 2 [(google.api.field_behavior) = REQUIRED]; // Maximum number of results to return per page. Set this property @@ -143,7 +153,7 @@ message PredictRequest { // * Each resource can have multiple labels, up to a maximum of 64. // * Each label must be a key-value pair. // * Keys have a minimum length of 1 character and a maximum length of 63 - // characters, and cannot be empty. Values can be empty, and have a maximum + // characters and cannot be empty. Values can be empty and have a maximum // length of 63 characters. // * Keys and values can contain only lowercase letters, numeric characters, // underscores, and dashes. All characters must use UTF-8 encoding, and @@ -169,9 +179,9 @@ message PredictResponse { // // Possible values: // - // * `product`: JSON representation of the product. Will be set if + // * `product`: JSON representation of the product. Is set if // `returnProduct` is set to true in `PredictRequest.params`. - // * `score`: Prediction score in double value. Will be set if + // * `score`: Prediction score in double value. Is set if // `returnScore` is set to true in `PredictRequest.params`. map metadata = 2; } diff --git a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/product.proto b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/product.proto index ea861fb6..43443295 100644 --- a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/product.proto +++ b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/product.proto @@ -536,11 +536,11 @@ message Product { // * [name][google.cloud.retail.v2.Product.name] // * [color_info][google.cloud.retail.v2.Product.color_info] // - // Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is + // The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is // returned. // // Note: Returning more fields in - // [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase + // [SearchResponse][google.cloud.retail.v2.SearchResponse] can increase // response payload size and serving latency. google.protobuf.FieldMask retrievable_fields = 30; diff --git a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/product_service.proto b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/product_service.proto index 71319834..ba8d8d18 100644 --- a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/product_service.proto +++ b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/product_service.proto @@ -88,7 +88,7 @@ service ProductService { // Bulk import of multiple [Product][google.cloud.retail.v2.Product]s. // - // Request processing may be synchronous. No partial updating is supported. + // Request processing may be synchronous. // Non-existing items are created. // // Note that it is possible for a subset of the @@ -139,7 +139,7 @@ service ProductService { // // Pre-existing inventory information can only be updated with // [SetInventory][google.cloud.retail.v2.ProductService.SetInventory], - // [AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces], + // [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces], // and // [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. // @@ -345,6 +345,11 @@ message UpdateProductRequest { // // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error // is returned. + // + // The attribute key can be updated by setting the mask path as + // "attributes.${key_name}". If a key name is present in the mask but not in + // the patching product from the request, this key will be deleted after the + // update. google.protobuf.FieldMask update_mask = 2; // If set to true, and the [Product][google.cloud.retail.v2.Product] is not @@ -572,7 +577,9 @@ message SetInventoryMetadata {} // method. message SetInventoryResponse {} -// Request message for [AddFulfillmentPlaces][] method. +// Request message for +// [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces] +// method. message AddFulfillmentPlacesRequest { // Required. Full resource name of [Product][google.cloud.retail.v2.Product], // such as @@ -640,15 +647,19 @@ message AddFulfillmentPlacesRequest { // Metadata related to the progress of the AddFulfillmentPlaces operation. // Currently empty because there is no meaningful metadata populated from the -// [AddFulfillmentPlaces][] method. +// [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces] +// method. message AddFulfillmentPlacesMetadata {} // Response of the AddFulfillmentPlacesRequest. Currently empty because -// there is no meaningful response populated from the [AddFulfillmentPlaces][] +// there is no meaningful response populated from the +// [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces] // method. message AddFulfillmentPlacesResponse {} -// Request message for [AddLocalInventories][] method. +// Request message for +// [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories] +// method. message AddLocalInventoriesRequest { // Required. Full resource name of [Product][google.cloud.retail.v2.Product], // such as @@ -700,11 +711,15 @@ message AddLocalInventoriesRequest { // Metadata related to the progress of the AddLocalInventories operation. // Currently empty because there is no meaningful metadata populated from the -// [AddLocalInventories][] method. +// [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories] +// method. message AddLocalInventoriesMetadata {} -// Response of the [AddLocalInventories][] API. Currently empty because -// there is no meaningful response populated from the [AddLocalInventories][] +// Response of the +// [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories] +// API. Currently empty because there is no meaningful response populated from +// the +// [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories] // method. message AddLocalInventoriesResponse {} @@ -782,7 +797,8 @@ message RemoveFulfillmentPlacesRequest { // If this field is set to an invalid value other than these, an // INVALID_ARGUMENT error is returned. // - // This field directly corresponds to [Product.fulfillment_info.type][]. + // This field directly corresponds to + // [Product.fulfillment_info.type][google.cloud.retail.v2.FulfillmentInfo.type]. string type = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The IDs for this diff --git a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/purge_config.proto b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/purge_config.proto index 6c8d54c7..cb510745 100644 --- a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/purge_config.proto +++ b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/purge_config.proto @@ -37,7 +37,10 @@ message PurgeUserEventsRequest { // Required. The resource name of the catalog under which the events are // created. The format is // `projects/${projectId}/locations/global/catalogs/${catalogId}` - string parent = 1 [(google.api.field_behavior) = REQUIRED]; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; // Required. The filter string to specify the events to be deleted with a // length limit of 5,000 characters. Empty string filter is not allowed. The diff --git a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/search_service.proto b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/search_service.proto index ec8750ae..82242742 100644 --- a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/search_service.proto +++ b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/search_service.proto @@ -113,8 +113,8 @@ message SearchRequest { // Only get facet for the given restricted values. For example, when using // "pickupInStore" as key and set restricted values to // ["store123", "store456"], only facets for "store123" and "store456" are - // returned. Only supported on textual fields and fulfillments. - // Maximum is 20. + // returned. Only supported on predefined textual fields, custom textual + // attributes and fulfillments. Maximum is 20. // // Must be set for the fulfillment facet keys: // @@ -206,19 +206,29 @@ message SearchRequest { // List of keys to exclude when faceting. // + // // By default, // [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] // is not excluded from the filter unless it is listed in this field. // - // For example, suppose there are 100 products with color facet "Red" and - // 200 products with color facet "Blue". A query containing the filter - // "colorFamilies:ANY("Red")" and have "colorFamilies" as + // Listing a facet key in this field allows its values to appear as facet + // results, even when they are filtered out of search results. Using this + // field does not affect what search results are returned. + // + // For example, suppose there are 100 products with the color facet "Red" + // and 200 products with the color facet "Blue". A query containing the + // filter "colorFamilies:ANY("Red")" and having "colorFamilies" as // [FacetKey.key][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.key] - // will by default return the "Red" with count 100. + // would by default return only "Red" products in the search results, and + // also return "Red" with count 100 as the only color facet. Although there + // are also blue products available, "Blue" would not be shown as an + // available facet value. // - // If this field contains "colorFamilies", then the query returns both the - // "Red" with count 100 and "Blue" with count 200, because the - // "colorFamilies" key is now excluded from the filter. + // If "colorFamilies" is listed in "excludedFilterKeys", then the query + // returns the facet values "Red" with count 100 and "Blue" with count + // 200, because the "colorFamilies" key is now excluded from the filter. + // Because this field doesn't affect search results, the search results + // are still correctly filtered to return only "Red" products. // // A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error // is returned. @@ -317,7 +327,7 @@ message SearchRequest { // Condition boost specifications. If a product matches multiple conditions // in the specifictions, boost scores from these specifications are all // applied and combined in a non-linear way. Maximum number of - // specifications is 10. + // specifications is 20. repeated ConditionBoostSpec condition_boost_specs = 1; // Whether to skip boostspec validation. If this field is set to true, @@ -377,6 +387,31 @@ message SearchRequest { Mode mode = 1; } + // The specification for query spell correction. + message SpellCorrectionSpec { + // Enum describing under which mode spell correction should occur. + enum Mode { + // Unspecified spell correction mode. This defaults to + // [Mode.AUTO][google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. + MODE_UNSPECIFIED = 0; + + // Google Retail Search will try to find a spell suggestion if there + // is any and put in the + // [SearchResponse.corrected_query][google.cloud.retail.v2.SearchResponse.corrected_query]. + // The spell suggestion will not be used as the search query. + SUGGESTION_ONLY = 1; + + // Automatic spell correction built by Google Retail Search. Search will + // be based on the corrected query if found. + AUTO = 2; + } + + // The mode under which spell correction should take effect to + // replace the original search query. Default to + // [Mode.AUTO][google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. + Mode mode = 1; + } + // The search mode of each search request. enum SearchMode { // Default value. In this case both product search and faceted search will @@ -398,7 +433,9 @@ message SearchRequest { // Only faceted search will be performed. The product search will be // disabled. // - // When in this mode, one or both of [SearchRequest.facet_spec][] and + // When in this mode, one or both of + // [SearchRequest.facet_specs][google.cloud.retail.v2.SearchRequest.facet_specs] + // and // [SearchRequest.dynamic_facet_spec][google.cloud.retail.v2.SearchRequest.dynamic_facet_spec] // should be set. Otherwise, an INVALID_ARGUMENT error is returned. Only // [SearchResponse.Facet] will be returned. [SearchResponse.SearchResult] @@ -407,7 +444,7 @@ message SearchRequest { } // Required. The resource name of the search engine placement, such as - // `projects/*/locations/global/catalogs/default_catalog/placements/default_search` + // `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. // This field is used to identify the serving configuration name and the set // of models that will be used to make the search. string placement = 1 [(google.api.field_behavior) = REQUIRED]; @@ -422,6 +459,11 @@ message SearchRequest { ]; // Raw search query. + // + // If this field is empty, the request is considered a category browsing + // request and returned results are based on + // [filter][google.cloud.retail.v2.SearchRequest.filter] and + // [page_categories][google.cloud.retail.v2.SearchRequest.page_categories]. string query = 3; // Required. A unique identifier for tracking visitors. For example, this @@ -515,10 +557,10 @@ message SearchRequest { // [user guide](https://cloud.google.com/retail/docs/boosting). // // Notice that if both [ServingConfig.boost_control_ids][] and - // [SearchRequest.boost_spec] are set, the boost conditions from both places - // are evaluated. If a search request matches multiple boost conditions, - // the final boost score is equal to the sum of the boost scores from all - // matched boost conditions. + // [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] + // are set, the boost conditions from both places are evaluated. If a search + // request matches multiple boost conditions, the final boost score is equal + // to the sum of the boost scores from all matched boost conditions. BoostSpec boost_spec = 13; // The query expansion specification that specifies the conditions under which @@ -553,7 +595,8 @@ message SearchRequest { // * inventory(place_id,price) // * inventory(place_id,original_price) // * inventory(place_id,attributes.key), where key is any key in the - // [Product.inventories.attributes][] map. + // [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] + // map. // * attributes.key, where key is any key in the // [Product.attributes][google.cloud.retail.v2.Product.attributes] map. // * pickupInStore.id, where id is any @@ -617,6 +660,29 @@ message SearchRequest { // The specification for personalization. PersonalizationSpec personalization_spec = 32; + + // The labels applied to a resource must meet the following requirements: + // + // * Each resource can have multiple labels, up to a maximum of 64. + // * Each label must be a key-value pair. + // * Keys have a minimum length of 1 character and a maximum length of 63 + // characters and cannot be empty. Values can be empty and have a maximum + // length of 63 characters. + // * Keys and values can contain only lowercase letters, numeric characters, + // underscores, and dashes. All characters must use UTF-8 encoding, and + // international characters are allowed. + // * The key portion of a label must be unique. However, you can use the same + // key with multiple resources. + // * Keys must start with a lowercase letter or international character. + // + // See [Google Cloud + // Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) + // for more details. + map labels = 34; + + // The spell correction specification that specifies the mode under + // which spell correction will take effect. + optional SpellCorrectionSpec spell_correction_spec = 35; } // Response message for @@ -750,7 +816,9 @@ message SearchResponse { // matches. int32 total_size = 3; - // If spell correction applies, the corrected query. Otherwise, empty. + // Contains the spell corrected query, if found. If the spell correction type + // is AUTOMATIC, then the search results are based on corrected_query. + // Otherwise the original query will be used for search. string corrected_query = 4; // A unique search token. This should be included in the @@ -768,10 +836,10 @@ message SearchResponse { QueryExpansionInfo query_expansion_info = 7; // The URI of a customer-defined redirect page. If redirect action is - // triggered, no search will be performed, and only + // triggered, no search is performed, and only // [redirect_uri][google.cloud.retail.v2.SearchResponse.redirect_uri] and // [attribution_token][google.cloud.retail.v2.SearchResponse.attribution_token] - // will be set in the response. + // are set in the response. string redirect_uri = 10; // The fully qualified resource name of applied diff --git a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/user_event.proto b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/user_event.proto index 8e21f8aa..fc315f88 100644 --- a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/user_event.proto +++ b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/user_event.proto @@ -54,11 +54,15 @@ message UserEvent { // able to uniquely identify a visitor on a single device. This unique // identifier should not change if the visitor log in/out of the website. // + // Don't set the field to the same fixed ID for different users. This mixes + // the event history of those users together, which results in degraded model + // quality. + // // The field must be a UTF-8 encoded string with a length limit of 128 // characters. Otherwise, an INVALID_ARGUMENT error is returned. // // The field should not contain PII or user-data. We recommend to use Google - // Analystics [Client + // Analytics [Client // ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) // for this field. string visitor_id = 2 [(google.api.field_behavior) = REQUIRED]; @@ -111,12 +115,11 @@ message UserEvent { // The main product details related to the event. // - // This field is required for the following event types: + // This field is optional except for the following event types: // // * `add-to-cart` // * `detail-page-view` // * `purchase-complete` - // * `search` // // In a `search` event, this field represents the products returned to the end // user on the current page (the end user may have not finished browsing the