diff --git a/README.md b/README.md index 21ada94a..69288030 100644 --- a/README.md +++ b/README.md @@ -27,13 +27,13 @@ If you are using Maven, add this to your pom.xml file: If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-retail:2.0.15' +implementation 'com.google.cloud:google-cloud-retail:2.0.16' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-retail" % "2.0.15" +libraryDependencies += "com.google.cloud" % "google-cloud-retail" % "2.0.16" ``` ## Authentication diff --git a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/CatalogServiceClient.java b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/CatalogServiceClient.java index fc359221..cf11d537 100644 --- a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/CatalogServiceClient.java +++ b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/CatalogServiceClient.java @@ -403,10 +403,6 @@ public final UnaryCallable updateCatalogCallable( *
  • UserEventService will only join events with products from branch {newBranch}. * * - *

    This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. - * *

    Sample code: * *

    {@code
    @@ -461,10 +457,6 @@ public final void setDefaultBranch(CatalogName catalog) {
        *   
  • UserEventService will only join events with products from branch {newBranch}. * * - *

    This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. - * *

    Sample code: * *

    {@code
    @@ -517,10 +509,6 @@ public final void setDefaultBranch(String catalog) {
        *   
  • UserEventService will only join events with products from branch {newBranch}. * * - *

    This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. - * *

    Sample code: * *

    {@code
    @@ -531,6 +519,7 @@ public final void setDefaultBranch(String catalog) {
        *           .setBranchId(
        *               BranchName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]").toString())
        *           .setNote("note3387378")
    +   *           .setForce(true)
        *           .build();
        *   catalogServiceClient.setDefaultBranch(request);
        * }
    @@ -576,10 +565,6 @@ public final void setDefaultBranch(SetDefaultBranchRequest request) {
        *   
  • UserEventService will only join events with products from branch {newBranch}. * * - *

    This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. - * *

    Sample code: * *

    {@code
    @@ -590,6 +575,7 @@ public final void setDefaultBranch(SetDefaultBranchRequest request) {
        *           .setBranchId(
        *               BranchName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]").toString())
        *           .setNote("note3387378")
    +   *           .setForce(true)
        *           .build();
        *   ApiFuture future = catalogServiceClient.setDefaultBranchCallable().futureCall(request);
        *   // Do something.
    @@ -607,10 +593,6 @@ public final UnaryCallable setDefaultBranchCalla
        * [CatalogService.SetDefaultBranch][google.cloud.retail.v2.CatalogService.SetDefaultBranch]
        * method under a specified parent catalog.
        *
    -   * 

    This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. - * *

    Sample code: * *

    {@code
    @@ -638,10 +620,6 @@ public final GetDefaultBranchResponse getDefaultBranch(CatalogName catalog) {
        * [CatalogService.SetDefaultBranch][google.cloud.retail.v2.CatalogService.SetDefaultBranch]
        * method under a specified parent catalog.
        *
    -   * 

    This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. - * *

    Sample code: * *

    {@code
    @@ -667,10 +645,6 @@ public final GetDefaultBranchResponse getDefaultBranch(String catalog) {
        * [CatalogService.SetDefaultBranch][google.cloud.retail.v2.CatalogService.SetDefaultBranch]
        * method under a specified parent catalog.
        *
    -   * 

    This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. - * *

    Sample code: * *

    {@code
    @@ -696,10 +670,6 @@ public final GetDefaultBranchResponse getDefaultBranch(GetDefaultBranchRequest r
        * [CatalogService.SetDefaultBranch][google.cloud.retail.v2.CatalogService.SetDefaultBranch]
        * method under a specified parent catalog.
        *
    -   * 

    This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. - * *

    Sample code: * *

    {@code
    diff --git a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/CompletionServiceClient.java b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/CompletionServiceClient.java
    index 2844d0ee..09a1f1cc 100644
    --- a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/CompletionServiceClient.java
    +++ b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/CompletionServiceClient.java
    @@ -33,9 +33,8 @@
     /**
      * Service Description: Auto-completion service for retail.
      *
    - * 

    This feature is only available for users who have Retail Search enabled. Please submit a form - * [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using - * Retail Search. + *

    This feature is only available for users who have Retail Search enabled. Please enable Retail + * Search on Cloud Console before using this feature. * *

    This class provides the ability to make remote calls to the backing service through method * calls that map to API methods. Sample code to get started: @@ -173,9 +172,8 @@ public final OperationsClient getOperationsClient() { /** * Completes the specified prefix with keyword suggestions. * - *

    This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

    This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

    Sample code: * @@ -206,9 +204,8 @@ public final CompleteQueryResponse completeQuery(CompleteQueryRequest request) { /** * Completes the specified prefix with keyword suggestions. * - *

    This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

    This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

    Sample code: * @@ -239,11 +236,13 @@ public final UnaryCallable complete /** * Bulk import of processed completion dataset. * - *

    Request processing may be synchronous. Partial updating is not supported. + *

    Request processing is asynchronous. Partial updating is not supported. * - *

    This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

    The operation is successfully finished only after the imported suggestions are indexed + * successfully and ready for serving. The process takes hours. + * + *

    This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

    Sample code: * @@ -272,11 +271,13 @@ public final UnaryCallable complete /** * Bulk import of processed completion dataset. * - *

    Request processing may be synchronous. Partial updating is not supported. + *

    Request processing is asynchronous. Partial updating is not supported. + * + *

    The operation is successfully finished only after the imported suggestions are indexed + * successfully and ready for serving. The process takes hours. * - *

    This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

    This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

    Sample code: * @@ -305,11 +306,13 @@ public final UnaryCallable complete /** * Bulk import of processed completion dataset. * - *

    Request processing may be synchronous. Partial updating is not supported. + *

    Request processing is asynchronous. Partial updating is not supported. + * + *

    The operation is successfully finished only after the imported suggestions are indexed + * successfully and ready for serving. The process takes hours. * - *

    This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

    This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

    Sample code: * 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 57b9a6d8..c442b437 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 @@ -903,17 +903,17 @@ public final UnaryCallable importProductsCalla * [CreateProductRequest.product][google.cloud.retail.v2.CreateProductRequest.product], then any * pre-existing inventory information for this product will be used. * - *

    If no inventory fields are set in [UpdateProductRequest.set_mask][], then any existing - * inventory information will be preserved. + *

    If no inventory fields are set in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask], 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], and * [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. * - *

    This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

    This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

    Sample code: * @@ -948,6 +948,24 @@ public final UnaryCallable importProductsCalla * information, the provided inventory information will be merged while respecting the last * update time for each inventory field, using the provided or default value for * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time]. + *

    The caller can replace place IDs for a subset of fulfillment types in the following + * ways: + *

      + *
    • Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + *
    • Specifies only the desired fulfillment types and corresponding place IDs to update in + * [SetInventoryRequest.inventory.fulfillment_info][] + *
    + *

    The caller can clear all place IDs from a subset of fulfillment types in the following + * ways: + *

      + *
    • Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + *
    • Specifies only the desired fulfillment types to clear in + * [SetInventoryRequest.inventory.fulfillment_info][] + *
    • Checks that only the desired fulfillment info types have empty + * [SetInventoryRequest.inventory.fulfillment_info.place_ids][] + *
    *

    The last update time is recorded for the following inventory fields: *

      *
    • [Product.price_info][google.cloud.retail.v2.Product.price_info] @@ -958,8 +976,8 @@ public final UnaryCallable importProductsCalla *

      If a full overwrite of inventory information while ignoring timestamps is needed, * [UpdateProduct][] should be invoked instead. * @param setMask Indicates which inventory fields in the provided - * [Product][google.cloud.retail.v2.Product] to update. If not set or set with empty paths, - * all inventory fields will be updated. + * [Product][google.cloud.retail.v2.Product] to update. + *

      At least one field must be provided. *

      If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned * and the entire update will be ignored. * @throws com.google.api.gax.rpc.ApiException if the remote call fails @@ -997,17 +1015,17 @@ public final OperationFuture setInve * [CreateProductRequest.product][google.cloud.retail.v2.CreateProductRequest.product], then any * pre-existing inventory information for this product will be used. * - *

      If no inventory fields are set in [UpdateProductRequest.set_mask][], then any existing - * inventory information will be preserved. + *

      If no inventory fields are set in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask], 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], and * [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

      Sample code: * @@ -1058,17 +1076,17 @@ public final OperationFuture setInve * [CreateProductRequest.product][google.cloud.retail.v2.CreateProductRequest.product], then any * pre-existing inventory information for this product will be used. * - *

      If no inventory fields are set in [UpdateProductRequest.set_mask][], then any existing - * inventory information will be preserved. + *

      If no inventory fields are set in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask], 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], and * [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

      Sample code: * @@ -1119,17 +1137,17 @@ public final OperationFuture setInve * [CreateProductRequest.product][google.cloud.retail.v2.CreateProductRequest.product], then any * pre-existing inventory information for this product will be used. * - *

      If no inventory fields are set in [UpdateProductRequest.set_mask][], then any existing - * inventory information will be preserved. + *

      If no inventory fields are set in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask], 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], and * [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

      Sample code: * @@ -1165,9 +1183,8 @@ public final UnaryCallable setInventoryCallable( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

      Sample code: * @@ -1210,9 +1227,8 @@ public final UnaryCallable setInventoryCallable( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

      Sample code: * @@ -1254,9 +1270,8 @@ public final UnaryCallable setInventoryCallable( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

      Sample code: * @@ -1298,9 +1313,8 @@ public final UnaryCallable setInventoryCallable( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

      Sample code: * @@ -1342,9 +1356,8 @@ public final UnaryCallable setInventoryCallable( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

      Sample code: * @@ -1385,9 +1398,8 @@ public final UnaryCallable setInventoryCallable( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

      Sample code: * @@ -1430,9 +1442,8 @@ public final UnaryCallable setInventoryCallable( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

      Sample code: * @@ -1474,9 +1485,8 @@ public final UnaryCallable setInventoryCallable( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

      Sample code: * @@ -1518,9 +1528,8 @@ public final UnaryCallable setInventoryCallable( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

      Sample code: * @@ -1564,9 +1573,8 @@ public final UnaryCallable setInventoryCallable( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

      Sample code: * @@ -1594,6 +1602,474 @@ public final UnaryCallable setInventoryCallable( return stub.removeFulfillmentPlacesCallable(); } + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Updates local inventory information for a [Product][google.cloud.retail.v2.Product] at a list + * of places, while respecting the last update timestamps of each inventory field. + * + *

      This process is asynchronous and does not require the + * [Product][google.cloud.retail.v2.Product] to exist before updating inventory information. If + * the request is valid, the update will be enqueued and processed downstream. As a consequence, + * when a response is returned, updates are not immediately manifested in the + * [Product][google.cloud.retail.v2.Product] queried by + * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or + * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + * + *

      Local inventory information can only be modified using this method. + * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and + * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no effect on local + * inventories. + * + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. + * + *

      Sample code: + * + *

      {@code
      +   * try (ProductServiceClient productServiceClient = ProductServiceClient.create()) {
      +   *   ProductName product =
      +   *       ProductName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]", "[PRODUCT]");
      +   *   AddLocalInventoriesResponse response =
      +   *       productServiceClient.addLocalInventoriesAsync(product).get();
      +   * }
      +   * }
      + * + * @param product Required. Full resource name of [Product][google.cloud.retail.v2.Product], such + * as + * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. + *

      If the caller does not have permission to access the + * [Product][google.cloud.retail.v2.Product], regardless of whether or not it exists, a + * PERMISSION_DENIED error is returned. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final OperationFuture + addLocalInventoriesAsync(ProductName product) { + AddLocalInventoriesRequest request = + AddLocalInventoriesRequest.newBuilder() + .setProduct(product == null ? null : product.toString()) + .build(); + return addLocalInventoriesAsync(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Updates local inventory information for a [Product][google.cloud.retail.v2.Product] at a list + * of places, while respecting the last update timestamps of each inventory field. + * + *

      This process is asynchronous and does not require the + * [Product][google.cloud.retail.v2.Product] to exist before updating inventory information. If + * the request is valid, the update will be enqueued and processed downstream. As a consequence, + * when a response is returned, updates are not immediately manifested in the + * [Product][google.cloud.retail.v2.Product] queried by + * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or + * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + * + *

      Local inventory information can only be modified using this method. + * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and + * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no effect on local + * inventories. + * + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. + * + *

      Sample code: + * + *

      {@code
      +   * try (ProductServiceClient productServiceClient = ProductServiceClient.create()) {
      +   *   String product =
      +   *       ProductName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]", "[PRODUCT]")
      +   *           .toString();
      +   *   AddLocalInventoriesResponse response =
      +   *       productServiceClient.addLocalInventoriesAsync(product).get();
      +   * }
      +   * }
      + * + * @param product Required. Full resource name of [Product][google.cloud.retail.v2.Product], such + * as + * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. + *

      If the caller does not have permission to access the + * [Product][google.cloud.retail.v2.Product], regardless of whether or not it exists, a + * PERMISSION_DENIED error is returned. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final OperationFuture + addLocalInventoriesAsync(String product) { + AddLocalInventoriesRequest request = + AddLocalInventoriesRequest.newBuilder().setProduct(product).build(); + return addLocalInventoriesAsync(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Updates local inventory information for a [Product][google.cloud.retail.v2.Product] at a list + * of places, while respecting the last update timestamps of each inventory field. + * + *

      This process is asynchronous and does not require the + * [Product][google.cloud.retail.v2.Product] to exist before updating inventory information. If + * the request is valid, the update will be enqueued and processed downstream. As a consequence, + * when a response is returned, updates are not immediately manifested in the + * [Product][google.cloud.retail.v2.Product] queried by + * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or + * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + * + *

      Local inventory information can only be modified using this method. + * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and + * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no effect on local + * inventories. + * + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. + * + *

      Sample code: + * + *

      {@code
      +   * try (ProductServiceClient productServiceClient = ProductServiceClient.create()) {
      +   *   AddLocalInventoriesRequest request =
      +   *       AddLocalInventoriesRequest.newBuilder()
      +   *           .setProduct(
      +   *               ProductName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]", "[PRODUCT]")
      +   *                   .toString())
      +   *           .addAllLocalInventories(new ArrayList())
      +   *           .setAddMask(FieldMask.newBuilder().build())
      +   *           .setAddTime(Timestamp.newBuilder().build())
      +   *           .setAllowMissing(true)
      +   *           .build();
      +   *   AddLocalInventoriesResponse response =
      +   *       productServiceClient.addLocalInventoriesAsync(request).get();
      +   * }
      +   * }
      + * + * @param request The request object containing all of the parameters for the API call. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final OperationFuture + addLocalInventoriesAsync(AddLocalInventoriesRequest request) { + return addLocalInventoriesOperationCallable().futureCall(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Updates local inventory information for a [Product][google.cloud.retail.v2.Product] at a list + * of places, while respecting the last update timestamps of each inventory field. + * + *

      This process is asynchronous and does not require the + * [Product][google.cloud.retail.v2.Product] to exist before updating inventory information. If + * the request is valid, the update will be enqueued and processed downstream. As a consequence, + * when a response is returned, updates are not immediately manifested in the + * [Product][google.cloud.retail.v2.Product] queried by + * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or + * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + * + *

      Local inventory information can only be modified using this method. + * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and + * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no effect on local + * inventories. + * + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. + * + *

      Sample code: + * + *

      {@code
      +   * try (ProductServiceClient productServiceClient = ProductServiceClient.create()) {
      +   *   AddLocalInventoriesRequest request =
      +   *       AddLocalInventoriesRequest.newBuilder()
      +   *           .setProduct(
      +   *               ProductName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]", "[PRODUCT]")
      +   *                   .toString())
      +   *           .addAllLocalInventories(new ArrayList())
      +   *           .setAddMask(FieldMask.newBuilder().build())
      +   *           .setAddTime(Timestamp.newBuilder().build())
      +   *           .setAllowMissing(true)
      +   *           .build();
      +   *   OperationFuture future =
      +   *       productServiceClient.addLocalInventoriesOperationCallable().futureCall(request);
      +   *   // Do something.
      +   *   AddLocalInventoriesResponse response = future.get();
      +   * }
      +   * }
      + */ + public final OperationCallable< + AddLocalInventoriesRequest, AddLocalInventoriesResponse, AddLocalInventoriesMetadata> + addLocalInventoriesOperationCallable() { + return stub.addLocalInventoriesOperationCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Updates local inventory information for a [Product][google.cloud.retail.v2.Product] at a list + * of places, while respecting the last update timestamps of each inventory field. + * + *

      This process is asynchronous and does not require the + * [Product][google.cloud.retail.v2.Product] to exist before updating inventory information. If + * the request is valid, the update will be enqueued and processed downstream. As a consequence, + * when a response is returned, updates are not immediately manifested in the + * [Product][google.cloud.retail.v2.Product] queried by + * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or + * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + * + *

      Local inventory information can only be modified using this method. + * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and + * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no effect on local + * inventories. + * + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. + * + *

      Sample code: + * + *

      {@code
      +   * try (ProductServiceClient productServiceClient = ProductServiceClient.create()) {
      +   *   AddLocalInventoriesRequest request =
      +   *       AddLocalInventoriesRequest.newBuilder()
      +   *           .setProduct(
      +   *               ProductName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]", "[PRODUCT]")
      +   *                   .toString())
      +   *           .addAllLocalInventories(new ArrayList())
      +   *           .setAddMask(FieldMask.newBuilder().build())
      +   *           .setAddTime(Timestamp.newBuilder().build())
      +   *           .setAllowMissing(true)
      +   *           .build();
      +   *   ApiFuture future =
      +   *       productServiceClient.addLocalInventoriesCallable().futureCall(request);
      +   *   // Do something.
      +   *   Operation response = future.get();
      +   * }
      +   * }
      + */ + public final UnaryCallable addLocalInventoriesCallable() { + return stub.addLocalInventoriesCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Remove local inventory information for a [Product][google.cloud.retail.v2.Product] at a list of + * places at a removal timestamp. + * + *

      This process is asynchronous. If the request is valid, the removal will be enqueued and + * processed downstream. As a consequence, when a response is returned, removals are not + * immediately manifested in the [Product][google.cloud.retail.v2.Product] queried by + * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or + * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + * + *

      Local inventory information can only be removed using this method. + * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and + * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no effect on local + * inventories. + * + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. + * + *

      Sample code: + * + *

      {@code
      +   * try (ProductServiceClient productServiceClient = ProductServiceClient.create()) {
      +   *   ProductName product =
      +   *       ProductName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]", "[PRODUCT]");
      +   *   RemoveLocalInventoriesResponse response =
      +   *       productServiceClient.removeLocalInventoriesAsync(product).get();
      +   * }
      +   * }
      + * + * @param product Required. Full resource name of [Product][google.cloud.retail.v2.Product], such + * as + * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. + *

      If the caller does not have permission to access the + * [Product][google.cloud.retail.v2.Product], regardless of whether or not it exists, a + * PERMISSION_DENIED error is returned. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final OperationFuture + removeLocalInventoriesAsync(ProductName product) { + RemoveLocalInventoriesRequest request = + RemoveLocalInventoriesRequest.newBuilder() + .setProduct(product == null ? null : product.toString()) + .build(); + return removeLocalInventoriesAsync(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Remove local inventory information for a [Product][google.cloud.retail.v2.Product] at a list of + * places at a removal timestamp. + * + *

      This process is asynchronous. If the request is valid, the removal will be enqueued and + * processed downstream. As a consequence, when a response is returned, removals are not + * immediately manifested in the [Product][google.cloud.retail.v2.Product] queried by + * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or + * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + * + *

      Local inventory information can only be removed using this method. + * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and + * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no effect on local + * inventories. + * + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. + * + *

      Sample code: + * + *

      {@code
      +   * try (ProductServiceClient productServiceClient = ProductServiceClient.create()) {
      +   *   String product =
      +   *       ProductName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]", "[PRODUCT]")
      +   *           .toString();
      +   *   RemoveLocalInventoriesResponse response =
      +   *       productServiceClient.removeLocalInventoriesAsync(product).get();
      +   * }
      +   * }
      + * + * @param product Required. Full resource name of [Product][google.cloud.retail.v2.Product], such + * as + * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. + *

      If the caller does not have permission to access the + * [Product][google.cloud.retail.v2.Product], regardless of whether or not it exists, a + * PERMISSION_DENIED error is returned. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final OperationFuture + removeLocalInventoriesAsync(String product) { + RemoveLocalInventoriesRequest request = + RemoveLocalInventoriesRequest.newBuilder().setProduct(product).build(); + return removeLocalInventoriesAsync(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Remove local inventory information for a [Product][google.cloud.retail.v2.Product] at a list of + * places at a removal timestamp. + * + *

      This process is asynchronous. If the request is valid, the removal will be enqueued and + * processed downstream. As a consequence, when a response is returned, removals are not + * immediately manifested in the [Product][google.cloud.retail.v2.Product] queried by + * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or + * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + * + *

      Local inventory information can only be removed using this method. + * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and + * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no effect on local + * inventories. + * + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. + * + *

      Sample code: + * + *

      {@code
      +   * try (ProductServiceClient productServiceClient = ProductServiceClient.create()) {
      +   *   RemoveLocalInventoriesRequest request =
      +   *       RemoveLocalInventoriesRequest.newBuilder()
      +   *           .setProduct(
      +   *               ProductName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]", "[PRODUCT]")
      +   *                   .toString())
      +   *           .addAllPlaceIds(new ArrayList())
      +   *           .setRemoveTime(Timestamp.newBuilder().build())
      +   *           .setAllowMissing(true)
      +   *           .build();
      +   *   RemoveLocalInventoriesResponse response =
      +   *       productServiceClient.removeLocalInventoriesAsync(request).get();
      +   * }
      +   * }
      + * + * @param request The request object containing all of the parameters for the API call. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final OperationFuture + removeLocalInventoriesAsync(RemoveLocalInventoriesRequest request) { + return removeLocalInventoriesOperationCallable().futureCall(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Remove local inventory information for a [Product][google.cloud.retail.v2.Product] at a list of + * places at a removal timestamp. + * + *

      This process is asynchronous. If the request is valid, the removal will be enqueued and + * processed downstream. As a consequence, when a response is returned, removals are not + * immediately manifested in the [Product][google.cloud.retail.v2.Product] queried by + * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or + * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + * + *

      Local inventory information can only be removed using this method. + * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and + * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no effect on local + * inventories. + * + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. + * + *

      Sample code: + * + *

      {@code
      +   * try (ProductServiceClient productServiceClient = ProductServiceClient.create()) {
      +   *   RemoveLocalInventoriesRequest request =
      +   *       RemoveLocalInventoriesRequest.newBuilder()
      +   *           .setProduct(
      +   *               ProductName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]", "[PRODUCT]")
      +   *                   .toString())
      +   *           .addAllPlaceIds(new ArrayList())
      +   *           .setRemoveTime(Timestamp.newBuilder().build())
      +   *           .setAllowMissing(true)
      +   *           .build();
      +   *   OperationFuture future =
      +   *       productServiceClient.removeLocalInventoriesOperationCallable().futureCall(request);
      +   *   // Do something.
      +   *   RemoveLocalInventoriesResponse response = future.get();
      +   * }
      +   * }
      + */ + public final OperationCallable< + RemoveLocalInventoriesRequest, + RemoveLocalInventoriesResponse, + RemoveLocalInventoriesMetadata> + removeLocalInventoriesOperationCallable() { + return stub.removeLocalInventoriesOperationCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Remove local inventory information for a [Product][google.cloud.retail.v2.Product] at a list of + * places at a removal timestamp. + * + *

      This process is asynchronous. If the request is valid, the removal will be enqueued and + * processed downstream. As a consequence, when a response is returned, removals are not + * immediately manifested in the [Product][google.cloud.retail.v2.Product] queried by + * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or + * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + * + *

      Local inventory information can only be removed using this method. + * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and + * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no effect on local + * inventories. + * + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. + * + *

      Sample code: + * + *

      {@code
      +   * try (ProductServiceClient productServiceClient = ProductServiceClient.create()) {
      +   *   RemoveLocalInventoriesRequest request =
      +   *       RemoveLocalInventoriesRequest.newBuilder()
      +   *           .setProduct(
      +   *               ProductName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]", "[PRODUCT]")
      +   *                   .toString())
      +   *           .addAllPlaceIds(new ArrayList())
      +   *           .setRemoveTime(Timestamp.newBuilder().build())
      +   *           .setAllowMissing(true)
      +   *           .build();
      +   *   ApiFuture future =
      +   *       productServiceClient.removeLocalInventoriesCallable().futureCall(request);
      +   *   // Do something.
      +   *   Operation response = future.get();
      +   * }
      +   * }
      + */ + public final UnaryCallable + removeLocalInventoriesCallable() { + return stub.removeLocalInventoriesCallable(); + } + @Override public final void close() { stub.close(); diff --git a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/ProductServiceSettings.java b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/ProductServiceSettings.java index 4108ccb5..9472f80d 100644 --- a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/ProductServiceSettings.java +++ b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/ProductServiceSettings.java @@ -148,6 +148,34 @@ public UnaryCallSettings addFulfillmentP .removeFulfillmentPlacesOperationSettings(); } + /** Returns the object with the settings used for calls to addLocalInventories. */ + public UnaryCallSettings addLocalInventoriesSettings() { + return ((ProductServiceStubSettings) getStubSettings()).addLocalInventoriesSettings(); + } + + /** Returns the object with the settings used for calls to addLocalInventories. */ + public OperationCallSettings< + AddLocalInventoriesRequest, AddLocalInventoriesResponse, AddLocalInventoriesMetadata> + addLocalInventoriesOperationSettings() { + return ((ProductServiceStubSettings) getStubSettings()).addLocalInventoriesOperationSettings(); + } + + /** Returns the object with the settings used for calls to removeLocalInventories. */ + public UnaryCallSettings + removeLocalInventoriesSettings() { + return ((ProductServiceStubSettings) getStubSettings()).removeLocalInventoriesSettings(); + } + + /** Returns the object with the settings used for calls to removeLocalInventories. */ + public OperationCallSettings< + RemoveLocalInventoriesRequest, + RemoveLocalInventoriesResponse, + RemoveLocalInventoriesMetadata> + removeLocalInventoriesOperationSettings() { + return ((ProductServiceStubSettings) getStubSettings()) + .removeLocalInventoriesOperationSettings(); + } + public static final ProductServiceSettings create(ProductServiceStubSettings stub) throws IOException { return new ProductServiceSettings.Builder(stub.toBuilder()).build(); @@ -324,6 +352,34 @@ public UnaryCallSettings.Builder setInventorySet return getStubSettingsBuilder().removeFulfillmentPlacesOperationSettings(); } + /** Returns the builder for the settings used for calls to addLocalInventories. */ + public UnaryCallSettings.Builder + addLocalInventoriesSettings() { + return getStubSettingsBuilder().addLocalInventoriesSettings(); + } + + /** Returns the builder for the settings used for calls to addLocalInventories. */ + public OperationCallSettings.Builder< + AddLocalInventoriesRequest, AddLocalInventoriesResponse, AddLocalInventoriesMetadata> + addLocalInventoriesOperationSettings() { + return getStubSettingsBuilder().addLocalInventoriesOperationSettings(); + } + + /** Returns the builder for the settings used for calls to removeLocalInventories. */ + public UnaryCallSettings.Builder + removeLocalInventoriesSettings() { + return getStubSettingsBuilder().removeLocalInventoriesSettings(); + } + + /** Returns the builder for the settings used for calls to removeLocalInventories. */ + public OperationCallSettings.Builder< + RemoveLocalInventoriesRequest, + RemoveLocalInventoriesResponse, + RemoveLocalInventoriesMetadata> + removeLocalInventoriesOperationSettings() { + return getStubSettingsBuilder().removeLocalInventoriesOperationSettings(); + } + @Override public ProductServiceSettings build() throws IOException { return new ProductServiceSettings(this); 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 cda1f5fa..30460c40 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 @@ -37,9 +37,8 @@ /** * Service Description: Service for search. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a form - * [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using - * Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable Retail + * Search on Cloud Console before using this feature. * *

      This class provides the ability to make remote calls to the backing service through method * calls that map to API methods. Sample code to get started: @@ -66,6 +65,7 @@ * .setQueryExpansionSpec(SearchRequest.QueryExpansionSpec.newBuilder().build()) * .addAllVariantRollupKeys(new ArrayList()) * .addAllPageCategories(new ArrayList()) + * .setPersonalizationSpec(SearchRequest.PersonalizationSpec.newBuilder().build()) * .build(); * for (SearchResponse.SearchResult element : searchServiceClient.search(request).iterateAll()) { * // doThingsWith(element); @@ -176,9 +176,8 @@ public SearchServiceStub getStub() { /** * Performs a search. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

      Sample code: * @@ -204,6 +203,7 @@ public SearchServiceStub getStub() { * .setQueryExpansionSpec(SearchRequest.QueryExpansionSpec.newBuilder().build()) * .addAllVariantRollupKeys(new ArrayList()) * .addAllPageCategories(new ArrayList()) + * .setPersonalizationSpec(SearchRequest.PersonalizationSpec.newBuilder().build()) * .build(); * for (SearchResponse.SearchResult element : searchServiceClient.search(request).iterateAll()) { * // doThingsWith(element); @@ -222,9 +222,8 @@ public final SearchPagedResponse search(SearchRequest request) { /** * Performs a search. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

      Sample code: * @@ -250,6 +249,7 @@ public final SearchPagedResponse search(SearchRequest request) { * .setQueryExpansionSpec(SearchRequest.QueryExpansionSpec.newBuilder().build()) * .addAllVariantRollupKeys(new ArrayList()) * .addAllPageCategories(new ArrayList()) + * .setPersonalizationSpec(SearchRequest.PersonalizationSpec.newBuilder().build()) * .build(); * ApiFuture future = * searchServiceClient.searchPagedCallable().futureCall(request); @@ -268,9 +268,8 @@ public final UnaryCallable searchPagedCallab /** * Performs a search. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a - * form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in - * using Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable + * Retail Search on Cloud Console before using this feature. * *

      Sample code: * @@ -296,6 +295,7 @@ public final UnaryCallable searchPagedCallab * .setQueryExpansionSpec(SearchRequest.QueryExpansionSpec.newBuilder().build()) * .addAllVariantRollupKeys(new ArrayList()) * .addAllPageCategories(new ArrayList()) + * .setPersonalizationSpec(SearchRequest.PersonalizationSpec.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 39f211bb..108373ee 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 @@ -444,12 +444,12 @@ public final UnaryCallable importUserEventsC // AUTO-GENERATED DOCUMENTATION AND METHOD. /** - * Triggers a user event rejoin operation with latest product catalog. Events will not be - * annotated with detailed product information if product is missing from the catalog at the time - * the user event is ingested, and these events are stored as unjoined events with a limited usage - * on training and serving. This API can be used to trigger a 'join' operation on specified events - * with latest version of product catalog. It can also be used to correct events joined with wrong - * product catalog. + * Starts a user event rejoin operation with latest product catalog. Events will not be annotated + * with detailed product information if product is missing from the catalog at the time the user + * event is ingested, and these events are stored as unjoined events with a limited usage on + * training and serving. This method can be used to start a join operation on specified events + * with latest version of product catalog. It can also be used to correct events joined with the + * wrong product catalog. A rejoin operation can take hours or days to complete. * *

      Sample code: * @@ -472,12 +472,12 @@ public final UnaryCallable importUserEventsC // AUTO-GENERATED DOCUMENTATION AND METHOD. /** - * Triggers a user event rejoin operation with latest product catalog. Events will not be - * annotated with detailed product information if product is missing from the catalog at the time - * the user event is ingested, and these events are stored as unjoined events with a limited usage - * on training and serving. This API can be used to trigger a 'join' operation on specified events - * with latest version of product catalog. It can also be used to correct events joined with wrong - * product catalog. + * Starts a user event rejoin operation with latest product catalog. Events will not be annotated + * with detailed product information if product is missing from the catalog at the time the user + * event is ingested, and these events are stored as unjoined events with a limited usage on + * training and serving. This method can be used to start a join operation on specified events + * with latest version of product catalog. It can also be used to correct events joined with the + * wrong product catalog. A rejoin operation can take hours or days to complete. * *

      Sample code: * @@ -500,12 +500,12 @@ public final UnaryCallable importUserEventsC // AUTO-GENERATED DOCUMENTATION AND METHOD. /** - * Triggers a user event rejoin operation with latest product catalog. Events will not be - * annotated with detailed product information if product is missing from the catalog at the time - * the user event is ingested, and these events are stored as unjoined events with a limited usage - * on training and serving. This API can be used to trigger a 'join' operation on specified events - * with latest version of product catalog. It can also be used to correct events joined with wrong - * product catalog. + * Starts a user event rejoin operation with latest product catalog. Events will not be annotated + * with detailed product information if product is missing from the catalog at the time the user + * event is ingested, and these events are stored as unjoined events with a limited usage on + * training and serving. This method can be used to start a join operation on specified events + * with latest version of product catalog. It can also be used to correct events joined with the + * wrong product catalog. A rejoin operation can take hours or days to complete. * *

      Sample code: * diff --git a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/gapic_metadata.json b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/gapic_metadata.json index fd9276c8..b27e46ab 100644 --- a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/gapic_metadata.json +++ b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/gapic_metadata.json @@ -61,6 +61,9 @@ "AddFulfillmentPlaces": { "methods": ["addFulfillmentPlacesAsync", "addFulfillmentPlacesAsync", "addFulfillmentPlacesAsync", "addFulfillmentPlacesOperationCallable", "addFulfillmentPlacesCallable"] }, + "AddLocalInventories": { + "methods": ["addLocalInventoriesAsync", "addLocalInventoriesAsync", "addLocalInventoriesAsync", "addLocalInventoriesOperationCallable", "addLocalInventoriesCallable"] + }, "CreateProduct": { "methods": ["createProduct", "createProduct", "createProduct", "createProductCallable"] }, @@ -79,6 +82,9 @@ "RemoveFulfillmentPlaces": { "methods": ["removeFulfillmentPlacesAsync", "removeFulfillmentPlacesAsync", "removeFulfillmentPlacesAsync", "removeFulfillmentPlacesOperationCallable", "removeFulfillmentPlacesCallable"] }, + "RemoveLocalInventories": { + "methods": ["removeLocalInventoriesAsync", "removeLocalInventoriesAsync", "removeLocalInventoriesAsync", "removeLocalInventoriesOperationCallable", "removeLocalInventoriesCallable"] + }, "SetInventory": { "methods": ["setInventoryAsync", "setInventoryAsync", "setInventoryOperationCallable", "setInventoryCallable"] }, 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 44780b0e..65cedee9 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 @@ -15,7 +15,9 @@ */ /** - * The interfaces provided are listed below, along with usage samples. + * A client to Retail API + * + *

      The interfaces provided are listed below, along with usage samples. * *

      ======================= CatalogServiceClient ======================= * @@ -35,9 +37,8 @@ * *

      Service Description: Auto-completion service for retail. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a form - * [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using - * Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable Retail + * Search on Cloud Console before using this feature. * *

      Sample for CompletionServiceClient: * @@ -100,9 +101,8 @@ * *

      Service Description: Service for search. * - *

      This feature is only available for users who have Retail Search enabled. Please submit a form - * [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using - * Retail Search. + *

      This feature is only available for users who have Retail Search enabled. Please enable Retail + * Search on Cloud Console before using this feature. * *

      Sample for SearchServiceClient: * @@ -128,6 +128,7 @@ * .setQueryExpansionSpec(SearchRequest.QueryExpansionSpec.newBuilder().build()) * .addAllVariantRollupKeys(new ArrayList()) * .addAllPageCategories(new ArrayList()) + * .setPersonalizationSpec(SearchRequest.PersonalizationSpec.newBuilder().build()) * .build(); * for (SearchResponse.SearchResult element : searchServiceClient.search(request).iterateAll()) { * // doThingsWith(element); diff --git a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/stub/GrpcProductServiceStub.java b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/stub/GrpcProductServiceStub.java index 0b806a2e..f50bac8a 100644 --- a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/stub/GrpcProductServiceStub.java +++ b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/stub/GrpcProductServiceStub.java @@ -28,6 +28,9 @@ import com.google.cloud.retail.v2.AddFulfillmentPlacesMetadata; import com.google.cloud.retail.v2.AddFulfillmentPlacesRequest; import com.google.cloud.retail.v2.AddFulfillmentPlacesResponse; +import com.google.cloud.retail.v2.AddLocalInventoriesMetadata; +import com.google.cloud.retail.v2.AddLocalInventoriesRequest; +import com.google.cloud.retail.v2.AddLocalInventoriesResponse; import com.google.cloud.retail.v2.CreateProductRequest; import com.google.cloud.retail.v2.DeleteProductRequest; import com.google.cloud.retail.v2.GetProductRequest; @@ -40,6 +43,9 @@ import com.google.cloud.retail.v2.RemoveFulfillmentPlacesMetadata; import com.google.cloud.retail.v2.RemoveFulfillmentPlacesRequest; import com.google.cloud.retail.v2.RemoveFulfillmentPlacesResponse; +import com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata; +import com.google.cloud.retail.v2.RemoveLocalInventoriesRequest; +import com.google.cloud.retail.v2.RemoveLocalInventoriesResponse; import com.google.cloud.retail.v2.SetInventoryMetadata; import com.google.cloud.retail.v2.SetInventoryRequest; import com.google.cloud.retail.v2.SetInventoryResponse; @@ -147,6 +153,26 @@ public class GrpcProductServiceStub extends ProductServiceStub { .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance())) .build(); + private static final MethodDescriptor + addLocalInventoriesMethodDescriptor = + MethodDescriptor.newBuilder() + .setType(MethodDescriptor.MethodType.UNARY) + .setFullMethodName("google.cloud.retail.v2.ProductService/AddLocalInventories") + .setRequestMarshaller( + ProtoUtils.marshaller(AddLocalInventoriesRequest.getDefaultInstance())) + .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance())) + .build(); + + private static final MethodDescriptor + removeLocalInventoriesMethodDescriptor = + MethodDescriptor.newBuilder() + .setType(MethodDescriptor.MethodType.UNARY) + .setFullMethodName("google.cloud.retail.v2.ProductService/RemoveLocalInventories") + .setRequestMarshaller( + ProtoUtils.marshaller(RemoveLocalInventoriesRequest.getDefaultInstance())) + .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance())) + .build(); + private final UnaryCallable createProductCallable; private final UnaryCallable getProductCallable; private final UnaryCallable listProductsCallable; @@ -171,6 +197,17 @@ public class GrpcProductServiceStub extends ProductServiceStub { RemoveFulfillmentPlacesResponse, RemoveFulfillmentPlacesMetadata> removeFulfillmentPlacesOperationCallable; + private final UnaryCallable addLocalInventoriesCallable; + private final OperationCallable< + AddLocalInventoriesRequest, AddLocalInventoriesResponse, AddLocalInventoriesMetadata> + addLocalInventoriesOperationCallable; + private final UnaryCallable + removeLocalInventoriesCallable; + private final OperationCallable< + RemoveLocalInventoriesRequest, + RemoveLocalInventoriesResponse, + RemoveLocalInventoriesMetadata> + removeLocalInventoriesOperationCallable; private final BackgroundResource backgroundResources; private final GrpcOperationsStub operationsStub; @@ -307,6 +344,27 @@ protected GrpcProductServiceStub( return params.build(); }) .build(); + GrpcCallSettings addLocalInventoriesTransportSettings = + GrpcCallSettings.newBuilder() + .setMethodDescriptor(addLocalInventoriesMethodDescriptor) + .setParamsExtractor( + request -> { + ImmutableMap.Builder params = ImmutableMap.builder(); + params.put("product", String.valueOf(request.getProduct())); + return params.build(); + }) + .build(); + GrpcCallSettings + removeLocalInventoriesTransportSettings = + GrpcCallSettings.newBuilder() + .setMethodDescriptor(removeLocalInventoriesMethodDescriptor) + .setParamsExtractor( + request -> { + ImmutableMap.Builder params = ImmutableMap.builder(); + params.put("product", String.valueOf(request.getProduct())); + return params.build(); + }) + .build(); this.createProductCallable = callableFactory.createUnaryCallable( @@ -366,6 +424,28 @@ protected GrpcProductServiceStub( settings.removeFulfillmentPlacesOperationSettings(), clientContext, operationsStub); + this.addLocalInventoriesCallable = + callableFactory.createUnaryCallable( + addLocalInventoriesTransportSettings, + settings.addLocalInventoriesSettings(), + clientContext); + this.addLocalInventoriesOperationCallable = + callableFactory.createOperationCallable( + addLocalInventoriesTransportSettings, + settings.addLocalInventoriesOperationSettings(), + clientContext, + operationsStub); + this.removeLocalInventoriesCallable = + callableFactory.createUnaryCallable( + removeLocalInventoriesTransportSettings, + settings.removeLocalInventoriesSettings(), + clientContext); + this.removeLocalInventoriesOperationCallable = + callableFactory.createOperationCallable( + removeLocalInventoriesTransportSettings, + settings.removeLocalInventoriesOperationSettings(), + clientContext, + operationsStub); this.backgroundResources = new BackgroundResourceAggregation(clientContext.getBackgroundResources()); @@ -454,6 +534,32 @@ public UnaryCallable addFulfillmentPlace return removeFulfillmentPlacesOperationCallable; } + @Override + public UnaryCallable addLocalInventoriesCallable() { + return addLocalInventoriesCallable; + } + + @Override + public OperationCallable< + AddLocalInventoriesRequest, AddLocalInventoriesResponse, AddLocalInventoriesMetadata> + addLocalInventoriesOperationCallable() { + return addLocalInventoriesOperationCallable; + } + + @Override + public UnaryCallable removeLocalInventoriesCallable() { + return removeLocalInventoriesCallable; + } + + @Override + public OperationCallable< + RemoveLocalInventoriesRequest, + RemoveLocalInventoriesResponse, + RemoveLocalInventoriesMetadata> + removeLocalInventoriesOperationCallable() { + return removeLocalInventoriesOperationCallable; + } + @Override public final void close() { try { diff --git a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/stub/ProductServiceStub.java b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/stub/ProductServiceStub.java index 3dfc1961..612bcfe9 100644 --- a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/stub/ProductServiceStub.java +++ b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/stub/ProductServiceStub.java @@ -24,6 +24,9 @@ import com.google.cloud.retail.v2.AddFulfillmentPlacesMetadata; import com.google.cloud.retail.v2.AddFulfillmentPlacesRequest; import com.google.cloud.retail.v2.AddFulfillmentPlacesResponse; +import com.google.cloud.retail.v2.AddLocalInventoriesMetadata; +import com.google.cloud.retail.v2.AddLocalInventoriesRequest; +import com.google.cloud.retail.v2.AddLocalInventoriesResponse; import com.google.cloud.retail.v2.CreateProductRequest; import com.google.cloud.retail.v2.DeleteProductRequest; import com.google.cloud.retail.v2.GetProductRequest; @@ -36,6 +39,9 @@ import com.google.cloud.retail.v2.RemoveFulfillmentPlacesMetadata; import com.google.cloud.retail.v2.RemoveFulfillmentPlacesRequest; import com.google.cloud.retail.v2.RemoveFulfillmentPlacesResponse; +import com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata; +import com.google.cloud.retail.v2.RemoveLocalInventoriesRequest; +import com.google.cloud.retail.v2.RemoveLocalInventoriesResponse; import com.google.cloud.retail.v2.SetInventoryMetadata; import com.google.cloud.retail.v2.SetInventoryRequest; import com.google.cloud.retail.v2.SetInventoryResponse; @@ -125,6 +131,30 @@ public UnaryCallable addFulfillmentPlace throw new UnsupportedOperationException("Not implemented: removeFulfillmentPlacesCallable()"); } + public OperationCallable< + AddLocalInventoriesRequest, AddLocalInventoriesResponse, AddLocalInventoriesMetadata> + addLocalInventoriesOperationCallable() { + throw new UnsupportedOperationException( + "Not implemented: addLocalInventoriesOperationCallable()"); + } + + public UnaryCallable addLocalInventoriesCallable() { + throw new UnsupportedOperationException("Not implemented: addLocalInventoriesCallable()"); + } + + public OperationCallable< + RemoveLocalInventoriesRequest, + RemoveLocalInventoriesResponse, + RemoveLocalInventoriesMetadata> + removeLocalInventoriesOperationCallable() { + throw new UnsupportedOperationException( + "Not implemented: removeLocalInventoriesOperationCallable()"); + } + + public UnaryCallable removeLocalInventoriesCallable() { + throw new UnsupportedOperationException("Not implemented: removeLocalInventoriesCallable()"); + } + @Override public abstract void close(); } diff --git a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/stub/ProductServiceStubSettings.java b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/stub/ProductServiceStubSettings.java index 6e8d171f..5ef824ca 100644 --- a/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/stub/ProductServiceStubSettings.java +++ b/google-cloud-retail/src/main/java/com/google/cloud/retail/v2/stub/ProductServiceStubSettings.java @@ -47,6 +47,9 @@ import com.google.cloud.retail.v2.AddFulfillmentPlacesMetadata; import com.google.cloud.retail.v2.AddFulfillmentPlacesRequest; import com.google.cloud.retail.v2.AddFulfillmentPlacesResponse; +import com.google.cloud.retail.v2.AddLocalInventoriesMetadata; +import com.google.cloud.retail.v2.AddLocalInventoriesRequest; +import com.google.cloud.retail.v2.AddLocalInventoriesResponse; import com.google.cloud.retail.v2.CreateProductRequest; import com.google.cloud.retail.v2.DeleteProductRequest; import com.google.cloud.retail.v2.GetProductRequest; @@ -59,6 +62,9 @@ import com.google.cloud.retail.v2.RemoveFulfillmentPlacesMetadata; import com.google.cloud.retail.v2.RemoveFulfillmentPlacesRequest; import com.google.cloud.retail.v2.RemoveFulfillmentPlacesResponse; +import com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata; +import com.google.cloud.retail.v2.RemoveLocalInventoriesRequest; +import com.google.cloud.retail.v2.RemoveLocalInventoriesResponse; import com.google.cloud.retail.v2.SetInventoryMetadata; import com.google.cloud.retail.v2.SetInventoryRequest; import com.google.cloud.retail.v2.SetInventoryResponse; @@ -138,6 +144,18 @@ public class ProductServiceStubSettings extends StubSettings removeFulfillmentPlacesOperationSettings; + private final UnaryCallSettings + addLocalInventoriesSettings; + private final OperationCallSettings< + AddLocalInventoriesRequest, AddLocalInventoriesResponse, AddLocalInventoriesMetadata> + addLocalInventoriesOperationSettings; + private final UnaryCallSettings + removeLocalInventoriesSettings; + private final OperationCallSettings< + RemoveLocalInventoriesRequest, + RemoveLocalInventoriesResponse, + RemoveLocalInventoriesMetadata> + removeLocalInventoriesOperationSettings; private static final PagedListDescriptor LIST_PRODUCTS_PAGE_STR_DESC = @@ -267,6 +285,33 @@ public UnaryCallSettings addFulfillmentP return removeFulfillmentPlacesOperationSettings; } + /** Returns the object with the settings used for calls to addLocalInventories. */ + public UnaryCallSettings addLocalInventoriesSettings() { + return addLocalInventoriesSettings; + } + + /** Returns the object with the settings used for calls to addLocalInventories. */ + public OperationCallSettings< + AddLocalInventoriesRequest, AddLocalInventoriesResponse, AddLocalInventoriesMetadata> + addLocalInventoriesOperationSettings() { + return addLocalInventoriesOperationSettings; + } + + /** Returns the object with the settings used for calls to removeLocalInventories. */ + public UnaryCallSettings + removeLocalInventoriesSettings() { + return removeLocalInventoriesSettings; + } + + /** Returns the object with the settings used for calls to removeLocalInventories. */ + public OperationCallSettings< + RemoveLocalInventoriesRequest, + RemoveLocalInventoriesResponse, + RemoveLocalInventoriesMetadata> + removeLocalInventoriesOperationSettings() { + return removeLocalInventoriesOperationSettings; + } + @BetaApi("A restructuring of stub classes is planned, so this may break in the future") public ProductServiceStub createStub() throws IOException { if (getTransportChannelProvider() @@ -358,6 +403,12 @@ protected ProductServiceStubSettings(Builder settingsBuilder) throws IOException removeFulfillmentPlacesSettings = settingsBuilder.removeFulfillmentPlacesSettings().build(); removeFulfillmentPlacesOperationSettings = settingsBuilder.removeFulfillmentPlacesOperationSettings().build(); + addLocalInventoriesSettings = settingsBuilder.addLocalInventoriesSettings().build(); + addLocalInventoriesOperationSettings = + settingsBuilder.addLocalInventoriesOperationSettings().build(); + removeLocalInventoriesSettings = settingsBuilder.removeLocalInventoriesSettings().build(); + removeLocalInventoriesOperationSettings = + settingsBuilder.removeLocalInventoriesOperationSettings().build(); } /** Builder for ProductServiceStubSettings. */ @@ -391,6 +442,18 @@ public static class Builder extends StubSettings.Builder removeFulfillmentPlacesOperationSettings; + private final UnaryCallSettings.Builder + addLocalInventoriesSettings; + private final OperationCallSettings.Builder< + AddLocalInventoriesRequest, AddLocalInventoriesResponse, AddLocalInventoriesMetadata> + addLocalInventoriesOperationSettings; + private final UnaryCallSettings.Builder + removeLocalInventoriesSettings; + private final OperationCallSettings.Builder< + RemoveLocalInventoriesRequest, + RemoveLocalInventoriesResponse, + RemoveLocalInventoriesMetadata> + removeLocalInventoriesOperationSettings; private static final ImmutableMap> RETRYABLE_CODE_DEFINITIONS; @@ -460,6 +523,10 @@ protected Builder(ClientContext clientContext) { addFulfillmentPlacesOperationSettings = OperationCallSettings.newBuilder(); removeFulfillmentPlacesSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); removeFulfillmentPlacesOperationSettings = OperationCallSettings.newBuilder(); + addLocalInventoriesSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); + addLocalInventoriesOperationSettings = OperationCallSettings.newBuilder(); + removeLocalInventoriesSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); + removeLocalInventoriesOperationSettings = OperationCallSettings.newBuilder(); unaryMethodSettingsBuilders = ImmutableList.>of( @@ -471,7 +538,9 @@ protected Builder(ClientContext clientContext) { importProductsSettings, setInventorySettings, addFulfillmentPlacesSettings, - removeFulfillmentPlacesSettings); + removeFulfillmentPlacesSettings, + addLocalInventoriesSettings, + removeLocalInventoriesSettings); initDefaults(this); } @@ -493,6 +562,12 @@ protected Builder(ProductServiceStubSettings settings) { removeFulfillmentPlacesSettings = settings.removeFulfillmentPlacesSettings.toBuilder(); removeFulfillmentPlacesOperationSettings = settings.removeFulfillmentPlacesOperationSettings.toBuilder(); + addLocalInventoriesSettings = settings.addLocalInventoriesSettings.toBuilder(); + addLocalInventoriesOperationSettings = + settings.addLocalInventoriesOperationSettings.toBuilder(); + removeLocalInventoriesSettings = settings.removeLocalInventoriesSettings.toBuilder(); + removeLocalInventoriesOperationSettings = + settings.removeLocalInventoriesOperationSettings.toBuilder(); unaryMethodSettingsBuilders = ImmutableList.>of( @@ -504,7 +579,9 @@ protected Builder(ProductServiceStubSettings settings) { importProductsSettings, setInventorySettings, addFulfillmentPlacesSettings, - removeFulfillmentPlacesSettings); + removeFulfillmentPlacesSettings, + addLocalInventoriesSettings, + removeLocalInventoriesSettings); } private static Builder createDefault() { @@ -566,6 +643,16 @@ private static Builder initDefaults(Builder builder) { .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes")) .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params")); + builder + .addLocalInventoriesSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params")); + + builder + .removeLocalInventoriesSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params")); + builder .importProductsOperationSettings() .setInitialCallSettings( @@ -666,6 +753,58 @@ private static Builder initDefaults(Builder builder) { .setTotalTimeout(Duration.ofMillis(300000L)) .build())); + builder + .addLocalInventoriesOperationSettings() + .setInitialCallSettings( + UnaryCallSettings + .newUnaryCallSettingsBuilder() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params")) + .build()) + .setResponseTransformer( + ProtoOperationTransformers.ResponseTransformer.create( + AddLocalInventoriesResponse.class)) + .setMetadataTransformer( + ProtoOperationTransformers.MetadataTransformer.create( + AddLocalInventoriesMetadata.class)) + .setPollingAlgorithm( + OperationTimedPollAlgorithm.create( + RetrySettings.newBuilder() + .setInitialRetryDelay(Duration.ofMillis(5000L)) + .setRetryDelayMultiplier(1.5) + .setMaxRetryDelay(Duration.ofMillis(45000L)) + .setInitialRpcTimeout(Duration.ZERO) + .setRpcTimeoutMultiplier(1.0) + .setMaxRpcTimeout(Duration.ZERO) + .setTotalTimeout(Duration.ofMillis(300000L)) + .build())); + + builder + .removeLocalInventoriesOperationSettings() + .setInitialCallSettings( + UnaryCallSettings + .newUnaryCallSettingsBuilder() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params")) + .build()) + .setResponseTransformer( + ProtoOperationTransformers.ResponseTransformer.create( + RemoveLocalInventoriesResponse.class)) + .setMetadataTransformer( + ProtoOperationTransformers.MetadataTransformer.create( + RemoveLocalInventoriesMetadata.class)) + .setPollingAlgorithm( + OperationTimedPollAlgorithm.create( + RetrySettings.newBuilder() + .setInitialRetryDelay(Duration.ofMillis(5000L)) + .setRetryDelayMultiplier(1.5) + .setMaxRetryDelay(Duration.ofMillis(45000L)) + .setInitialRpcTimeout(Duration.ZERO) + .setRpcTimeoutMultiplier(1.0) + .setMaxRpcTimeout(Duration.ZERO) + .setTotalTimeout(Duration.ofMillis(300000L)) + .build())); + return builder; } @@ -771,6 +910,38 @@ public UnaryCallSettings.Builder setInventorySet return removeFulfillmentPlacesOperationSettings; } + /** Returns the builder for the settings used for calls to addLocalInventories. */ + public UnaryCallSettings.Builder + addLocalInventoriesSettings() { + return addLocalInventoriesSettings; + } + + /** Returns the builder for the settings used for calls to addLocalInventories. */ + @BetaApi( + "The surface for use by generated code is not stable yet and may change in the future.") + public OperationCallSettings.Builder< + AddLocalInventoriesRequest, AddLocalInventoriesResponse, AddLocalInventoriesMetadata> + addLocalInventoriesOperationSettings() { + return addLocalInventoriesOperationSettings; + } + + /** Returns the builder for the settings used for calls to removeLocalInventories. */ + public UnaryCallSettings.Builder + removeLocalInventoriesSettings() { + return removeLocalInventoriesSettings; + } + + /** Returns the builder for the settings used for calls to removeLocalInventories. */ + @BetaApi( + "The surface for use by generated code is not stable yet and may change in the future.") + public OperationCallSettings.Builder< + RemoveLocalInventoriesRequest, + RemoveLocalInventoriesResponse, + RemoveLocalInventoriesMetadata> + removeLocalInventoriesOperationSettings() { + return removeLocalInventoriesOperationSettings; + } + @Override public ProductServiceStubSettings build() throws IOException { return new ProductServiceStubSettings(this); diff --git a/google-cloud-retail/src/test/java/com/google/cloud/retail/v2/MockProductServiceImpl.java b/google-cloud-retail/src/test/java/com/google/cloud/retail/v2/MockProductServiceImpl.java index 9666afac..b521702d 100644 --- a/google-cloud-retail/src/test/java/com/google/cloud/retail/v2/MockProductServiceImpl.java +++ b/google-cloud-retail/src/test/java/com/google/cloud/retail/v2/MockProductServiceImpl.java @@ -246,4 +246,46 @@ public void removeFulfillmentPlaces( Exception.class.getName()))); } } + + @Override + public void addLocalInventories( + AddLocalInventoriesRequest request, StreamObserver responseObserver) { + Object response = responses.poll(); + if (response instanceof Operation) { + requests.add(request); + responseObserver.onNext(((Operation) response)); + responseObserver.onCompleted(); + } else if (response instanceof Exception) { + responseObserver.onError(((Exception) response)); + } else { + responseObserver.onError( + new IllegalArgumentException( + String.format( + "Unrecognized response type %s for method AddLocalInventories, expected %s or %s", + response == null ? "null" : response.getClass().getName(), + Operation.class.getName(), + Exception.class.getName()))); + } + } + + @Override + public void removeLocalInventories( + RemoveLocalInventoriesRequest request, StreamObserver responseObserver) { + Object response = responses.poll(); + if (response instanceof Operation) { + requests.add(request); + responseObserver.onNext(((Operation) response)); + responseObserver.onCompleted(); + } else if (response instanceof Exception) { + responseObserver.onError(((Exception) response)); + } else { + responseObserver.onError( + new IllegalArgumentException( + String.format( + "Unrecognized response type %s for method RemoveLocalInventories, expected %s or %s", + response == null ? "null" : response.getClass().getName(), + Operation.class.getName(), + Exception.class.getName()))); + } + } } diff --git a/google-cloud-retail/src/test/java/com/google/cloud/retail/v2/ProductServiceClientTest.java b/google-cloud-retail/src/test/java/com/google/cloud/retail/v2/ProductServiceClientTest.java index 9bf6c2ee..049c6282 100644 --- a/google-cloud-retail/src/test/java/com/google/cloud/retail/v2/ProductServiceClientTest.java +++ b/google-cloud-retail/src/test/java/com/google/cloud/retail/v2/ProductServiceClientTest.java @@ -906,4 +906,186 @@ public void removeFulfillmentPlacesExceptionTest2() throws Exception { Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); } } + + @Test + public void addLocalInventoriesTest() throws Exception { + AddLocalInventoriesResponse expectedResponse = AddLocalInventoriesResponse.newBuilder().build(); + Operation resultOperation = + Operation.newBuilder() + .setName("addLocalInventoriesTest") + .setDone(true) + .setResponse(Any.pack(expectedResponse)) + .build(); + mockProductService.addResponse(resultOperation); + + ProductName product = + ProductName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]", "[PRODUCT]"); + + AddLocalInventoriesResponse actualResponse = client.addLocalInventoriesAsync(product).get(); + Assert.assertEquals(expectedResponse, actualResponse); + + List actualRequests = mockProductService.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + AddLocalInventoriesRequest actualRequest = ((AddLocalInventoriesRequest) actualRequests.get(0)); + + Assert.assertEquals(product.toString(), actualRequest.getProduct()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void addLocalInventoriesExceptionTest() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockProductService.addException(exception); + + try { + ProductName product = + ProductName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]", "[PRODUCT]"); + client.addLocalInventoriesAsync(product).get(); + Assert.fail("No exception raised"); + } catch (ExecutionException e) { + Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass()); + InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause()); + Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); + } + } + + @Test + public void addLocalInventoriesTest2() throws Exception { + AddLocalInventoriesResponse expectedResponse = AddLocalInventoriesResponse.newBuilder().build(); + Operation resultOperation = + Operation.newBuilder() + .setName("addLocalInventoriesTest") + .setDone(true) + .setResponse(Any.pack(expectedResponse)) + .build(); + mockProductService.addResponse(resultOperation); + + String product = "product-309474065"; + + AddLocalInventoriesResponse actualResponse = client.addLocalInventoriesAsync(product).get(); + Assert.assertEquals(expectedResponse, actualResponse); + + List actualRequests = mockProductService.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + AddLocalInventoriesRequest actualRequest = ((AddLocalInventoriesRequest) actualRequests.get(0)); + + Assert.assertEquals(product, actualRequest.getProduct()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void addLocalInventoriesExceptionTest2() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockProductService.addException(exception); + + try { + String product = "product-309474065"; + client.addLocalInventoriesAsync(product).get(); + Assert.fail("No exception raised"); + } catch (ExecutionException e) { + Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass()); + InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause()); + Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); + } + } + + @Test + public void removeLocalInventoriesTest() throws Exception { + RemoveLocalInventoriesResponse expectedResponse = + RemoveLocalInventoriesResponse.newBuilder().build(); + Operation resultOperation = + Operation.newBuilder() + .setName("removeLocalInventoriesTest") + .setDone(true) + .setResponse(Any.pack(expectedResponse)) + .build(); + mockProductService.addResponse(resultOperation); + + ProductName product = + ProductName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]", "[PRODUCT]"); + + RemoveLocalInventoriesResponse actualResponse = + client.removeLocalInventoriesAsync(product).get(); + Assert.assertEquals(expectedResponse, actualResponse); + + List actualRequests = mockProductService.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + RemoveLocalInventoriesRequest actualRequest = + ((RemoveLocalInventoriesRequest) actualRequests.get(0)); + + Assert.assertEquals(product.toString(), actualRequest.getProduct()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void removeLocalInventoriesExceptionTest() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockProductService.addException(exception); + + try { + ProductName product = + ProductName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[BRANCH]", "[PRODUCT]"); + client.removeLocalInventoriesAsync(product).get(); + Assert.fail("No exception raised"); + } catch (ExecutionException e) { + Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass()); + InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause()); + Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); + } + } + + @Test + public void removeLocalInventoriesTest2() throws Exception { + RemoveLocalInventoriesResponse expectedResponse = + RemoveLocalInventoriesResponse.newBuilder().build(); + Operation resultOperation = + Operation.newBuilder() + .setName("removeLocalInventoriesTest") + .setDone(true) + .setResponse(Any.pack(expectedResponse)) + .build(); + mockProductService.addResponse(resultOperation); + + String product = "product-309474065"; + + RemoveLocalInventoriesResponse actualResponse = + client.removeLocalInventoriesAsync(product).get(); + Assert.assertEquals(expectedResponse, actualResponse); + + List actualRequests = mockProductService.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + RemoveLocalInventoriesRequest actualRequest = + ((RemoveLocalInventoriesRequest) actualRequests.get(0)); + + Assert.assertEquals(product, actualRequest.getProduct()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void removeLocalInventoriesExceptionTest2() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockProductService.addException(exception); + + try { + String product = "product-309474065"; + client.removeLocalInventoriesAsync(product).get(); + Assert.fail("No exception raised"); + } catch (ExecutionException e) { + Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass()); + InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause()); + Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); + } + } } 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 7c96fdb4..55c9aa7e 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 @@ -108,6 +108,7 @@ public void searchTest() throws Exception { .setQueryExpansionSpec(SearchRequest.QueryExpansionSpec.newBuilder().build()) .addAllVariantRollupKeys(new ArrayList()) .addAllPageCategories(new ArrayList()) + .setPersonalizationSpec(SearchRequest.PersonalizationSpec.newBuilder().build()) .build(); SearchPagedResponse pagedListResponse = client.search(request); @@ -141,6 +142,7 @@ public void searchTest() throws Exception { request.getVariantRollupKeysList(), actualRequest.getVariantRollupKeysList()); Assert.assertEquals(request.getPageCategoriesList(), actualRequest.getPageCategoriesList()); Assert.assertEquals(request.getSearchMode(), actualRequest.getSearchMode()); + Assert.assertEquals(request.getPersonalizationSpec(), actualRequest.getPersonalizationSpec()); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), @@ -173,6 +175,7 @@ public void searchExceptionTest() throws Exception { .setQueryExpansionSpec(SearchRequest.QueryExpansionSpec.newBuilder().build()) .addAllVariantRollupKeys(new ArrayList()) .addAllPageCategories(new ArrayList()) + .setPersonalizationSpec(SearchRequest.PersonalizationSpec.newBuilder().build()) .build(); client.search(request); Assert.fail("No exception raised"); diff --git a/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CatalogServiceGrpc.java b/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CatalogServiceGrpc.java index 63fc0e34..872460ed 100644 --- a/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CatalogServiceGrpc.java +++ b/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CatalogServiceGrpc.java @@ -324,9 +324,6 @@ public void updateCatalog( * (if branch is not explicitly set). * * UserEventService will only join events with products from branch * {newBranch}. - * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. *

    */ public void setDefaultBranch( @@ -343,9 +340,6 @@ public void setDefaultBranch( * Get which branch is currently default branch set by * [CatalogService.SetDefaultBranch][google.cloud.retail.v2.CatalogService.SetDefaultBranch] * method under a specified parent catalog. - * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. *
    */ public void getDefaultBranch( @@ -473,9 +467,6 @@ public void updateCatalog( * (if branch is not explicitly set). * * UserEventService will only join events with products from branch * {newBranch}. - * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. *
    */ public void setDefaultBranch( @@ -494,9 +485,6 @@ public void setDefaultBranch( * Get which branch is currently default branch set by * [CatalogService.SetDefaultBranch][google.cloud.retail.v2.CatalogService.SetDefaultBranch] * method under a specified parent catalog. - * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. *
    */ public void getDefaultBranch( @@ -588,9 +576,6 @@ public com.google.cloud.retail.v2.Catalog updateCatalog( * (if branch is not explicitly set). * * UserEventService will only join events with products from branch * {newBranch}. - * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. *
    */ public com.google.protobuf.Empty setDefaultBranch( @@ -606,9 +591,6 @@ public com.google.protobuf.Empty setDefaultBranch( * Get which branch is currently default branch set by * [CatalogService.SetDefaultBranch][google.cloud.retail.v2.CatalogService.SetDefaultBranch] * method under a specified parent catalog. - * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. *
  • */ public com.google.cloud.retail.v2.GetDefaultBranchResponse getDefaultBranch( @@ -697,9 +679,6 @@ protected CatalogServiceFutureStub build( * (if branch is not explicitly set). * * UserEventService will only join events with products from branch * {newBranch}. - * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. *
  • */ public com.google.common.util.concurrent.ListenableFuture @@ -715,9 +694,6 @@ protected CatalogServiceFutureStub build( * Get which branch is currently default branch set by * [CatalogService.SetDefaultBranch][google.cloud.retail.v2.CatalogService.SetDefaultBranch] * method under a specified parent catalog. - * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. *
  • */ public com.google.common.util.concurrent.ListenableFuture< diff --git a/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CompletionServiceGrpc.java b/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CompletionServiceGrpc.java index 21ebd273..3698d608 100644 --- a/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CompletionServiceGrpc.java +++ b/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CompletionServiceGrpc.java @@ -23,8 +23,7 @@ *
      * Auto-completion service for retail.
      * This feature is only available for users who have Retail Search enabled.
    - * Please submit a form [here](https://cloud.google.com/contact) to contact
    - * cloud sales if you are interested in using Retail Search.
    + * Please enable Retail Search on Cloud Console before using this feature.
      * 
    */ @javax.annotation.Generated( @@ -178,8 +177,7 @@ public CompletionServiceFutureStub newStub( *
        * Auto-completion service for retail.
        * This feature is only available for users who have Retail Search enabled.
    -   * Please submit a form [here](https://cloud.google.com/contact) to contact
    -   * cloud sales if you are interested in using Retail Search.
    +   * Please enable Retail Search on Cloud Console before using this feature.
        * 
    */ public abstract static class CompletionServiceImplBase implements io.grpc.BindableService { @@ -190,8 +188,7 @@ public abstract static class CompletionServiceImplBase implements io.grpc.Bindab *
          * Completes the specified prefix with keyword suggestions.
          * This feature is only available for users who have Retail Search enabled.
    -     * Please submit a form [here](https://cloud.google.com/contact) to contact
    -     * cloud sales if you are interested in using Retail Search.
    +     * Please enable Retail Search on Cloud Console before using this feature.
          * 
    */ public void completeQuery( @@ -207,10 +204,11 @@ public void completeQuery( * *
          * Bulk import of processed completion dataset.
    -     * Request processing may be synchronous. Partial updating is not supported.
    +     * Request processing is asynchronous. Partial updating is not supported.
    +     * The operation is successfully finished only after the imported suggestions
    +     * are indexed successfully and ready for serving. The process takes hours.
          * This feature is only available for users who have Retail Search enabled.
    -     * Please submit a form [here](https://cloud.google.com/contact) to contact
    -     * cloud sales if you are interested in using Retail Search.
    +     * Please enable Retail Search on Cloud Console before using this feature.
          * 
    */ public void importCompletionData( @@ -246,8 +244,7 @@ public final io.grpc.ServerServiceDefinition bindService() { *
        * Auto-completion service for retail.
        * This feature is only available for users who have Retail Search enabled.
    -   * Please submit a form [here](https://cloud.google.com/contact) to contact
    -   * cloud sales if you are interested in using Retail Search.
    +   * Please enable Retail Search on Cloud Console before using this feature.
        * 
    */ public static final class CompletionServiceStub @@ -268,8 +265,7 @@ protected CompletionServiceStub build( *
          * Completes the specified prefix with keyword suggestions.
          * This feature is only available for users who have Retail Search enabled.
    -     * Please submit a form [here](https://cloud.google.com/contact) to contact
    -     * cloud sales if you are interested in using Retail Search.
    +     * Please enable Retail Search on Cloud Console before using this feature.
          * 
    */ public void completeQuery( @@ -287,10 +283,11 @@ public void completeQuery( * *
          * Bulk import of processed completion dataset.
    -     * Request processing may be synchronous. Partial updating is not supported.
    +     * Request processing is asynchronous. Partial updating is not supported.
    +     * The operation is successfully finished only after the imported suggestions
    +     * are indexed successfully and ready for serving. The process takes hours.
          * This feature is only available for users who have Retail Search enabled.
    -     * Please submit a form [here](https://cloud.google.com/contact) to contact
    -     * cloud sales if you are interested in using Retail Search.
    +     * Please enable Retail Search on Cloud Console before using this feature.
          * 
    */ public void importCompletionData( @@ -309,8 +306,7 @@ public void importCompletionData( *
        * Auto-completion service for retail.
        * This feature is only available for users who have Retail Search enabled.
    -   * Please submit a form [here](https://cloud.google.com/contact) to contact
    -   * cloud sales if you are interested in using Retail Search.
    +   * Please enable Retail Search on Cloud Console before using this feature.
        * 
    */ public static final class CompletionServiceBlockingStub @@ -332,8 +328,7 @@ protected CompletionServiceBlockingStub build( *
          * Completes the specified prefix with keyword suggestions.
          * This feature is only available for users who have Retail Search enabled.
    -     * Please submit a form [here](https://cloud.google.com/contact) to contact
    -     * cloud sales if you are interested in using Retail Search.
    +     * Please enable Retail Search on Cloud Console before using this feature.
          * 
    */ public com.google.cloud.retail.v2.CompleteQueryResponse completeQuery( @@ -347,10 +342,11 @@ public com.google.cloud.retail.v2.CompleteQueryResponse completeQuery( * *
          * Bulk import of processed completion dataset.
    -     * Request processing may be synchronous. Partial updating is not supported.
    +     * Request processing is asynchronous. Partial updating is not supported.
    +     * The operation is successfully finished only after the imported suggestions
    +     * are indexed successfully and ready for serving. The process takes hours.
          * This feature is only available for users who have Retail Search enabled.
    -     * Please submit a form [here](https://cloud.google.com/contact) to contact
    -     * cloud sales if you are interested in using Retail Search.
    +     * Please enable Retail Search on Cloud Console before using this feature.
          * 
    */ public com.google.longrunning.Operation importCompletionData( @@ -366,8 +362,7 @@ public com.google.longrunning.Operation importCompletionData( *
        * Auto-completion service for retail.
        * This feature is only available for users who have Retail Search enabled.
    -   * Please submit a form [here](https://cloud.google.com/contact) to contact
    -   * cloud sales if you are interested in using Retail Search.
    +   * Please enable Retail Search on Cloud Console before using this feature.
        * 
    */ public static final class CompletionServiceFutureStub @@ -388,8 +383,7 @@ protected CompletionServiceFutureStub build( *
          * Completes the specified prefix with keyword suggestions.
          * This feature is only available for users who have Retail Search enabled.
    -     * Please submit a form [here](https://cloud.google.com/contact) to contact
    -     * cloud sales if you are interested in using Retail Search.
    +     * Please enable Retail Search on Cloud Console before using this feature.
          * 
    */ public com.google.common.util.concurrent.ListenableFuture< @@ -404,10 +398,11 @@ protected CompletionServiceFutureStub build( * *
          * Bulk import of processed completion dataset.
    -     * Request processing may be synchronous. Partial updating is not supported.
    +     * Request processing is asynchronous. Partial updating is not supported.
    +     * The operation is successfully finished only after the imported suggestions
    +     * are indexed successfully and ready for serving. The process takes hours.
          * This feature is only available for users who have Retail Search enabled.
    -     * Please submit a form [here](https://cloud.google.com/contact) to contact
    -     * cloud sales if you are interested in using Retail Search.
    +     * Please enable Retail Search on Cloud Console before using this feature.
          * 
    */ public com.google.common.util.concurrent.ListenableFuture 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 e9f5767e..c9b263d2 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 @@ -428,6 +428,100 @@ private ProductServiceGrpc() {} return getRemoveFulfillmentPlacesMethod; } + private static volatile io.grpc.MethodDescriptor< + com.google.cloud.retail.v2.AddLocalInventoriesRequest, com.google.longrunning.Operation> + getAddLocalInventoriesMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "AddLocalInventories", + requestType = com.google.cloud.retail.v2.AddLocalInventoriesRequest.class, + responseType = com.google.longrunning.Operation.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor< + com.google.cloud.retail.v2.AddLocalInventoriesRequest, com.google.longrunning.Operation> + getAddLocalInventoriesMethod() { + io.grpc.MethodDescriptor< + com.google.cloud.retail.v2.AddLocalInventoriesRequest, com.google.longrunning.Operation> + getAddLocalInventoriesMethod; + if ((getAddLocalInventoriesMethod = ProductServiceGrpc.getAddLocalInventoriesMethod) == null) { + synchronized (ProductServiceGrpc.class) { + if ((getAddLocalInventoriesMethod = ProductServiceGrpc.getAddLocalInventoriesMethod) + == null) { + ProductServiceGrpc.getAddLocalInventoriesMethod = + getAddLocalInventoriesMethod = + io.grpc.MethodDescriptor + . + newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName( + generateFullMethodName(SERVICE_NAME, "AddLocalInventories")) + .setSampledToLocalTracing(true) + .setRequestMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.retail.v2.AddLocalInventoriesRequest + .getDefaultInstance())) + .setResponseMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.longrunning.Operation.getDefaultInstance())) + .setSchemaDescriptor( + new ProductServiceMethodDescriptorSupplier("AddLocalInventories")) + .build(); + } + } + } + return getAddLocalInventoriesMethod; + } + + private static volatile io.grpc.MethodDescriptor< + com.google.cloud.retail.v2.RemoveLocalInventoriesRequest, + com.google.longrunning.Operation> + getRemoveLocalInventoriesMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "RemoveLocalInventories", + requestType = com.google.cloud.retail.v2.RemoveLocalInventoriesRequest.class, + responseType = com.google.longrunning.Operation.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor< + com.google.cloud.retail.v2.RemoveLocalInventoriesRequest, + com.google.longrunning.Operation> + getRemoveLocalInventoriesMethod() { + io.grpc.MethodDescriptor< + com.google.cloud.retail.v2.RemoveLocalInventoriesRequest, + com.google.longrunning.Operation> + getRemoveLocalInventoriesMethod; + if ((getRemoveLocalInventoriesMethod = ProductServiceGrpc.getRemoveLocalInventoriesMethod) + == null) { + synchronized (ProductServiceGrpc.class) { + if ((getRemoveLocalInventoriesMethod = ProductServiceGrpc.getRemoveLocalInventoriesMethod) + == null) { + ProductServiceGrpc.getRemoveLocalInventoriesMethod = + getRemoveLocalInventoriesMethod = + io.grpc.MethodDescriptor + . + newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName( + generateFullMethodName(SERVICE_NAME, "RemoveLocalInventories")) + .setSampledToLocalTracing(true) + .setRequestMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.retail.v2.RemoveLocalInventoriesRequest + .getDefaultInstance())) + .setResponseMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.longrunning.Operation.getDefaultInstance())) + .setSchemaDescriptor( + new ProductServiceMethodDescriptorSupplier("RemoveLocalInventories")) + .build(); + } + } + } + return getRemoveLocalInventoriesMethod; + } + /** Creates a new async stub that supports all call types for the service */ public static ProductServiceStub newStub(io.grpc.Channel channel) { io.grpc.stub.AbstractStub.StubFactory factory = @@ -595,7 +689,8 @@ public void importProducts( * If no inventory fields are set in * [CreateProductRequest.product][google.cloud.retail.v2.CreateProductRequest.product], * then any pre-existing inventory information for this product will be used. - * If no inventory fields are set in [UpdateProductRequest.set_mask][], + * If no inventory fields are set in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask], * then any existing inventory information will be preserved. * Pre-existing inventory information can only be updated with * [SetInventory][google.cloud.retail.v2.ProductService.SetInventory], @@ -603,8 +698,7 @@ public void importProducts( * and * [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. + * Please enable Retail Search on Cloud Console before using this feature. * */ public void setInventory( @@ -629,8 +723,7 @@ public void setInventory( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. + * Please enable Retail Search on Cloud Console before using this feature. * */ public void addFulfillmentPlaces( @@ -655,8 +748,7 @@ public void addFulfillmentPlaces( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. + * Please enable Retail Search on Cloud Console before using this feature. * */ public void removeFulfillmentPlaces( @@ -666,6 +758,64 @@ public void removeFulfillmentPlaces( getRemoveFulfillmentPlacesMethod(), responseObserver); } + /** + * + * + *
    +     * Updates local inventory information for a
    +     * [Product][google.cloud.retail.v2.Product] at a list of places, while
    +     * respecting the last update timestamps of each inventory field.
    +     * This process is asynchronous and does not require the
    +     * [Product][google.cloud.retail.v2.Product] to exist before updating
    +     * inventory information. If the request is valid, the update will be enqueued
    +     * and processed downstream. As a consequence, when a response is returned,
    +     * updates are not immediately manifested in the
    +     * [Product][google.cloud.retail.v2.Product] queried by
    +     * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or
    +     * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts].
    +     * Local inventory information can only be modified using this method.
    +     * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and
    +     * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no
    +     * effect on local inventories.
    +     * This feature is only available for users who have Retail Search enabled.
    +     * Please enable Retail Search on Cloud Console before using this feature.
    +     * 
    + */ + public void addLocalInventories( + com.google.cloud.retail.v2.AddLocalInventoriesRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( + getAddLocalInventoriesMethod(), responseObserver); + } + + /** + * + * + *
    +     * Remove local inventory information for a
    +     * [Product][google.cloud.retail.v2.Product] at a list of places at a removal
    +     * timestamp.
    +     * This process is asynchronous. If the request is valid, the removal will be
    +     * enqueued and processed downstream. As a consequence, when a response is
    +     * returned, removals are not immediately manifested in the
    +     * [Product][google.cloud.retail.v2.Product] queried by
    +     * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or
    +     * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts].
    +     * Local inventory information can only be removed using this method.
    +     * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and
    +     * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no
    +     * effect on local inventories.
    +     * This feature is only available for users who have Retail Search enabled.
    +     * Please enable Retail Search on Cloud Console before using this feature.
    +     * 
    + */ + public void removeLocalInventories( + com.google.cloud.retail.v2.RemoveLocalInventoriesRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( + getRemoveLocalInventoriesMethod(), responseObserver); + } + @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) @@ -724,6 +874,18 @@ public final io.grpc.ServerServiceDefinition bindService() { new MethodHandlers< com.google.cloud.retail.v2.RemoveFulfillmentPlacesRequest, com.google.longrunning.Operation>(this, METHODID_REMOVE_FULFILLMENT_PLACES))) + .addMethod( + getAddLocalInventoriesMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + com.google.cloud.retail.v2.AddLocalInventoriesRequest, + com.google.longrunning.Operation>(this, METHODID_ADD_LOCAL_INVENTORIES))) + .addMethod( + getRemoveLocalInventoriesMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + com.google.cloud.retail.v2.RemoveLocalInventoriesRequest, + com.google.longrunning.Operation>(this, METHODID_REMOVE_LOCAL_INVENTORIES))) .build(); } } @@ -874,7 +1036,8 @@ public void importProducts( * If no inventory fields are set in * [CreateProductRequest.product][google.cloud.retail.v2.CreateProductRequest.product], * then any pre-existing inventory information for this product will be used. - * If no inventory fields are set in [UpdateProductRequest.set_mask][], + * If no inventory fields are set in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask], * then any existing inventory information will be preserved. * Pre-existing inventory information can only be updated with * [SetInventory][google.cloud.retail.v2.ProductService.SetInventory], @@ -882,8 +1045,7 @@ public void importProducts( * and * [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. + * Please enable Retail Search on Cloud Console before using this feature. * */ public void setInventory( @@ -910,8 +1072,7 @@ public void setInventory( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. + * Please enable Retail Search on Cloud Console before using this feature. * */ public void addFulfillmentPlaces( @@ -938,8 +1099,7 @@ public void addFulfillmentPlaces( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. + * Please enable Retail Search on Cloud Console before using this feature. * */ public void removeFulfillmentPlaces( @@ -950,6 +1110,68 @@ public void removeFulfillmentPlaces( request, responseObserver); } + + /** + * + * + *
    +     * Updates local inventory information for a
    +     * [Product][google.cloud.retail.v2.Product] at a list of places, while
    +     * respecting the last update timestamps of each inventory field.
    +     * This process is asynchronous and does not require the
    +     * [Product][google.cloud.retail.v2.Product] to exist before updating
    +     * inventory information. If the request is valid, the update will be enqueued
    +     * and processed downstream. As a consequence, when a response is returned,
    +     * updates are not immediately manifested in the
    +     * [Product][google.cloud.retail.v2.Product] queried by
    +     * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or
    +     * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts].
    +     * Local inventory information can only be modified using this method.
    +     * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and
    +     * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no
    +     * effect on local inventories.
    +     * This feature is only available for users who have Retail Search enabled.
    +     * Please enable Retail Search on Cloud Console before using this feature.
    +     * 
    + */ + public void addLocalInventories( + com.google.cloud.retail.v2.AddLocalInventoriesRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getAddLocalInventoriesMethod(), getCallOptions()), + request, + responseObserver); + } + + /** + * + * + *
    +     * Remove local inventory information for a
    +     * [Product][google.cloud.retail.v2.Product] at a list of places at a removal
    +     * timestamp.
    +     * This process is asynchronous. If the request is valid, the removal will be
    +     * enqueued and processed downstream. As a consequence, when a response is
    +     * returned, removals are not immediately manifested in the
    +     * [Product][google.cloud.retail.v2.Product] queried by
    +     * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or
    +     * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts].
    +     * Local inventory information can only be removed using this method.
    +     * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and
    +     * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no
    +     * effect on local inventories.
    +     * This feature is only available for users who have Retail Search enabled.
    +     * Please enable Retail Search on Cloud Console before using this feature.
    +     * 
    + */ + public void removeLocalInventories( + com.google.cloud.retail.v2.RemoveLocalInventoriesRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getRemoveLocalInventoriesMethod(), getCallOptions()), + request, + responseObserver); + } } /** @@ -1082,7 +1304,8 @@ public com.google.longrunning.Operation importProducts( * If no inventory fields are set in * [CreateProductRequest.product][google.cloud.retail.v2.CreateProductRequest.product], * then any pre-existing inventory information for this product will be used. - * If no inventory fields are set in [UpdateProductRequest.set_mask][], + * If no inventory fields are set in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask], * then any existing inventory information will be preserved. * Pre-existing inventory information can only be updated with * [SetInventory][google.cloud.retail.v2.ProductService.SetInventory], @@ -1090,8 +1313,7 @@ public com.google.longrunning.Operation importProducts( * and * [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. + * Please enable Retail Search on Cloud Console before using this feature. * */ public com.google.longrunning.Operation setInventory( @@ -1115,8 +1337,7 @@ public com.google.longrunning.Operation setInventory( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. + * Please enable Retail Search on Cloud Console before using this feature. * */ public com.google.longrunning.Operation addFulfillmentPlaces( @@ -1140,8 +1361,7 @@ public com.google.longrunning.Operation addFulfillmentPlaces( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. + * Please enable Retail Search on Cloud Console before using this feature. * */ public com.google.longrunning.Operation removeFulfillmentPlaces( @@ -1149,6 +1369,62 @@ public com.google.longrunning.Operation removeFulfillmentPlaces( return io.grpc.stub.ClientCalls.blockingUnaryCall( getChannel(), getRemoveFulfillmentPlacesMethod(), getCallOptions(), request); } + + /** + * + * + *
    +     * Updates local inventory information for a
    +     * [Product][google.cloud.retail.v2.Product] at a list of places, while
    +     * respecting the last update timestamps of each inventory field.
    +     * This process is asynchronous and does not require the
    +     * [Product][google.cloud.retail.v2.Product] to exist before updating
    +     * inventory information. If the request is valid, the update will be enqueued
    +     * and processed downstream. As a consequence, when a response is returned,
    +     * updates are not immediately manifested in the
    +     * [Product][google.cloud.retail.v2.Product] queried by
    +     * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or
    +     * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts].
    +     * Local inventory information can only be modified using this method.
    +     * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and
    +     * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no
    +     * effect on local inventories.
    +     * This feature is only available for users who have Retail Search enabled.
    +     * Please enable Retail Search on Cloud Console before using this feature.
    +     * 
    + */ + public com.google.longrunning.Operation addLocalInventories( + com.google.cloud.retail.v2.AddLocalInventoriesRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getAddLocalInventoriesMethod(), getCallOptions(), request); + } + + /** + * + * + *
    +     * Remove local inventory information for a
    +     * [Product][google.cloud.retail.v2.Product] at a list of places at a removal
    +     * timestamp.
    +     * This process is asynchronous. If the request is valid, the removal will be
    +     * enqueued and processed downstream. As a consequence, when a response is
    +     * returned, removals are not immediately manifested in the
    +     * [Product][google.cloud.retail.v2.Product] queried by
    +     * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or
    +     * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts].
    +     * Local inventory information can only be removed using this method.
    +     * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and
    +     * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no
    +     * effect on local inventories.
    +     * This feature is only available for users who have Retail Search enabled.
    +     * Please enable Retail Search on Cloud Console before using this feature.
    +     * 
    + */ + public com.google.longrunning.Operation removeLocalInventories( + com.google.cloud.retail.v2.RemoveLocalInventoriesRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getRemoveLocalInventoriesMethod(), getCallOptions(), request); + } } /** @@ -1282,7 +1558,8 @@ protected ProductServiceFutureStub build( * If no inventory fields are set in * [CreateProductRequest.product][google.cloud.retail.v2.CreateProductRequest.product], * then any pre-existing inventory information for this product will be used. - * If no inventory fields are set in [UpdateProductRequest.set_mask][], + * If no inventory fields are set in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask], * then any existing inventory information will be preserved. * Pre-existing inventory information can only be updated with * [SetInventory][google.cloud.retail.v2.ProductService.SetInventory], @@ -1290,8 +1567,7 @@ protected ProductServiceFutureStub build( * and * [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. + * Please enable Retail Search on Cloud Console before using this feature. * */ public com.google.common.util.concurrent.ListenableFuture @@ -1315,8 +1591,7 @@ protected ProductServiceFutureStub build( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. + * Please enable Retail Search on Cloud Console before using this feature. * */ public com.google.common.util.concurrent.ListenableFuture @@ -1340,8 +1615,7 @@ protected ProductServiceFutureStub build( * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. * This feature is only available for users who have Retail Search enabled. - * Please submit a form [here](https://cloud.google.com/contact) to contact - * cloud sales if you are interested in using Retail Search. + * Please enable Retail Search on Cloud Console before using this feature. * */ public com.google.common.util.concurrent.ListenableFuture @@ -1349,6 +1623,62 @@ protected ProductServiceFutureStub build( return io.grpc.stub.ClientCalls.futureUnaryCall( getChannel().newCall(getRemoveFulfillmentPlacesMethod(), getCallOptions()), request); } + + /** + * + * + *
    +     * Updates local inventory information for a
    +     * [Product][google.cloud.retail.v2.Product] at a list of places, while
    +     * respecting the last update timestamps of each inventory field.
    +     * This process is asynchronous and does not require the
    +     * [Product][google.cloud.retail.v2.Product] to exist before updating
    +     * inventory information. If the request is valid, the update will be enqueued
    +     * and processed downstream. As a consequence, when a response is returned,
    +     * updates are not immediately manifested in the
    +     * [Product][google.cloud.retail.v2.Product] queried by
    +     * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or
    +     * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts].
    +     * Local inventory information can only be modified using this method.
    +     * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and
    +     * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no
    +     * effect on local inventories.
    +     * This feature is only available for users who have Retail Search enabled.
    +     * Please enable Retail Search on Cloud Console before using this feature.
    +     * 
    + */ + public com.google.common.util.concurrent.ListenableFuture + addLocalInventories(com.google.cloud.retail.v2.AddLocalInventoriesRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getAddLocalInventoriesMethod(), getCallOptions()), request); + } + + /** + * + * + *
    +     * Remove local inventory information for a
    +     * [Product][google.cloud.retail.v2.Product] at a list of places at a removal
    +     * timestamp.
    +     * This process is asynchronous. If the request is valid, the removal will be
    +     * enqueued and processed downstream. As a consequence, when a response is
    +     * returned, removals are not immediately manifested in the
    +     * [Product][google.cloud.retail.v2.Product] queried by
    +     * [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or
    +     * [ListProducts][google.cloud.retail.v2.ProductService.ListProducts].
    +     * Local inventory information can only be removed using this method.
    +     * [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and
    +     * [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no
    +     * effect on local inventories.
    +     * This feature is only available for users who have Retail Search enabled.
    +     * Please enable Retail Search on Cloud Console before using this feature.
    +     * 
    + */ + public com.google.common.util.concurrent.ListenableFuture + removeLocalInventories(com.google.cloud.retail.v2.RemoveLocalInventoriesRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getRemoveLocalInventoriesMethod(), getCallOptions()), request); + } } private static final int METHODID_CREATE_PRODUCT = 0; @@ -1360,6 +1690,8 @@ protected ProductServiceFutureStub build( private static final int METHODID_SET_INVENTORY = 6; private static final int METHODID_ADD_FULFILLMENT_PLACES = 7; private static final int METHODID_REMOVE_FULFILLMENT_PLACES = 8; + private static final int METHODID_ADD_LOCAL_INVENTORIES = 9; + private static final int METHODID_REMOVE_LOCAL_INVENTORIES = 10; private static final class MethodHandlers implements io.grpc.stub.ServerCalls.UnaryMethod, @@ -1424,6 +1756,16 @@ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserv (com.google.cloud.retail.v2.RemoveFulfillmentPlacesRequest) request, (io.grpc.stub.StreamObserver) responseObserver); break; + case METHODID_ADD_LOCAL_INVENTORIES: + serviceImpl.addLocalInventories( + (com.google.cloud.retail.v2.AddLocalInventoriesRequest) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + case METHODID_REMOVE_LOCAL_INVENTORIES: + serviceImpl.removeLocalInventories( + (com.google.cloud.retail.v2.RemoveLocalInventoriesRequest) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; default: throw new AssertionError(); } @@ -1497,6 +1839,8 @@ public static io.grpc.ServiceDescriptor getServiceDescriptor() { .addMethod(getSetInventoryMethod()) .addMethod(getAddFulfillmentPlacesMethod()) .addMethod(getRemoveFulfillmentPlacesMethod()) + .addMethod(getAddLocalInventoriesMethod()) + .addMethod(getRemoveLocalInventoriesMethod()) .build(); } } diff --git a/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchServiceGrpc.java b/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchServiceGrpc.java index e588a438..c37a610c 100644 --- a/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchServiceGrpc.java +++ b/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchServiceGrpc.java @@ -23,8 +23,7 @@ *
      * Service for search.
      * This feature is only available for users who have Retail Search enabled.
    - * Please submit a form [here](https://cloud.google.com/contact) to contact
    - * cloud sales if you are interested in using Retail Search.
    + * Please enable Retail Search on Cloud Console before using this feature.
      * 
    */ @javax.annotation.Generated( @@ -126,8 +125,7 @@ public SearchServiceFutureStub newStub( *
        * Service for search.
        * This feature is only available for users who have Retail Search enabled.
    -   * Please submit a form [here](https://cloud.google.com/contact) to contact
    -   * cloud sales if you are interested in using Retail Search.
    +   * Please enable Retail Search on Cloud Console before using this feature.
        * 
    */ public abstract static class SearchServiceImplBase implements io.grpc.BindableService { @@ -138,8 +136,7 @@ public abstract static class SearchServiceImplBase implements io.grpc.BindableSe *
          * Performs a search.
          * This feature is only available for users who have Retail Search enabled.
    -     * Please submit a form [here](https://cloud.google.com/contact) to contact
    -     * cloud sales if you are interested in using Retail Search.
    +     * Please enable Retail Search on Cloud Console before using this feature.
          * 
    */ public void search( @@ -167,8 +164,7 @@ public final io.grpc.ServerServiceDefinition bindService() { *
        * Service for search.
        * This feature is only available for users who have Retail Search enabled.
    -   * Please submit a form [here](https://cloud.google.com/contact) to contact
    -   * cloud sales if you are interested in using Retail Search.
    +   * Please enable Retail Search on Cloud Console before using this feature.
        * 
    */ public static final class SearchServiceStub @@ -188,8 +184,7 @@ protected SearchServiceStub build(io.grpc.Channel channel, io.grpc.CallOptions c *
          * Performs a search.
          * This feature is only available for users who have Retail Search enabled.
    -     * Please submit a form [here](https://cloud.google.com/contact) to contact
    -     * cloud sales if you are interested in using Retail Search.
    +     * Please enable Retail Search on Cloud Console before using this feature.
          * 
    */ public void search( @@ -206,8 +201,7 @@ public void search( *
        * Service for search.
        * This feature is only available for users who have Retail Search enabled.
    -   * Please submit a form [here](https://cloud.google.com/contact) to contact
    -   * cloud sales if you are interested in using Retail Search.
    +   * Please enable Retail Search on Cloud Console before using this feature.
        * 
    */ public static final class SearchServiceBlockingStub @@ -228,8 +222,7 @@ protected SearchServiceBlockingStub build( *
          * Performs a search.
          * This feature is only available for users who have Retail Search enabled.
    -     * Please submit a form [here](https://cloud.google.com/contact) to contact
    -     * cloud sales if you are interested in using Retail Search.
    +     * Please enable Retail Search on Cloud Console before using this feature.
          * 
    */ public com.google.cloud.retail.v2.SearchResponse search( @@ -245,8 +238,7 @@ public com.google.cloud.retail.v2.SearchResponse search( *
        * Service for search.
        * This feature is only available for users who have Retail Search enabled.
    -   * Please submit a form [here](https://cloud.google.com/contact) to contact
    -   * cloud sales if you are interested in using Retail Search.
    +   * Please enable Retail Search on Cloud Console before using this feature.
        * 
    */ public static final class SearchServiceFutureStub @@ -267,8 +259,7 @@ protected SearchServiceFutureStub build( *
          * Performs a search.
          * This feature is only available for users who have Retail Search enabled.
    -     * Please submit a form [here](https://cloud.google.com/contact) to contact
    -     * cloud sales if you are interested in using Retail Search.
    +     * Please enable Retail Search on Cloud Console before using this feature.
          * 
    */ public com.google.common.util.concurrent.ListenableFuture< diff --git a/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserEventServiceGrpc.java b/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserEventServiceGrpc.java index aca7484f..ea163958 100644 --- a/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserEventServiceGrpc.java +++ b/grpc-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserEventServiceGrpc.java @@ -370,13 +370,14 @@ public void importUserEvents( * * *
    -     * Triggers a user event rejoin operation with latest product catalog. Events
    +     * Starts a user event rejoin operation with latest product catalog. Events
          * will not be annotated with detailed product information if product is
          * missing from the catalog at the time the user event is ingested, and these
          * events are stored as unjoined events with a limited usage on training and
    -     * serving. This API can be used to trigger a 'join' operation on specified
    +     * serving. This method can be used to start a join operation on specified
          * events with latest version of product catalog. It can also be used to
    -     * correct events joined with wrong product catalog.
    +     * correct events joined with the wrong product catalog. A rejoin operation
    +     * can take hours or days to complete.
          * 
    */ public void rejoinUserEvents( @@ -520,13 +521,14 @@ public void importUserEvents( * * *
    -     * Triggers a user event rejoin operation with latest product catalog. Events
    +     * Starts a user event rejoin operation with latest product catalog. Events
          * will not be annotated with detailed product information if product is
          * missing from the catalog at the time the user event is ingested, and these
          * events are stored as unjoined events with a limited usage on training and
    -     * serving. This API can be used to trigger a 'join' operation on specified
    +     * serving. This method can be used to start a join operation on specified
          * events with latest version of product catalog. It can also be used to
    -     * correct events joined with wrong product catalog.
    +     * correct events joined with the wrong product catalog. A rejoin operation
    +     * can take hours or days to complete.
          * 
    */ public void rejoinUserEvents( @@ -625,13 +627,14 @@ public com.google.longrunning.Operation importUserEvents( * * *
    -     * Triggers a user event rejoin operation with latest product catalog. Events
    +     * Starts a user event rejoin operation with latest product catalog. Events
          * will not be annotated with detailed product information if product is
          * missing from the catalog at the time the user event is ingested, and these
          * events are stored as unjoined events with a limited usage on training and
    -     * serving. This API can be used to trigger a 'join' operation on specified
    +     * serving. This method can be used to start a join operation on specified
          * events with latest version of product catalog. It can also be used to
    -     * correct events joined with wrong product catalog.
    +     * correct events joined with the wrong product catalog. A rejoin operation
    +     * can take hours or days to complete.
          * 
    */ public com.google.longrunning.Operation rejoinUserEvents( @@ -727,13 +730,14 @@ protected UserEventServiceFutureStub build( * * *
    -     * Triggers a user event rejoin operation with latest product catalog. Events
    +     * Starts a user event rejoin operation with latest product catalog. Events
          * will not be annotated with detailed product information if product is
          * missing from the catalog at the time the user event is ingested, and these
          * events are stored as unjoined events with a limited usage on training and
    -     * serving. This API can be used to trigger a 'join' operation on specified
    +     * serving. This method can be used to start a join operation on specified
          * events with latest version of product catalog. It can also be used to
    -     * correct events joined with wrong product catalog.
    +     * correct events joined with the wrong product catalog. A rejoin operation
    +     * can take hours or days to complete.
          * 
    */ public com.google.common.util.concurrent.ListenableFuture 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 new file mode 100644 index 00000000..52ade044 --- /dev/null +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesMetadata.java @@ -0,0 +1,461 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/retail/v2/product_service.proto + +package com.google.cloud.retail.v2; + +/** + * + * + *
    + * Metadata related to the progress of the AddLocalInventories operation.
    + * Currently empty because there is no meaningful metadata populated from the
    + * [AddLocalInventories][] method.
    + * 
    + * + * Protobuf type {@code google.cloud.retail.v2.AddLocalInventoriesMetadata} + */ +public final class AddLocalInventoriesMetadata extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.retail.v2.AddLocalInventoriesMetadata) + AddLocalInventoriesMetadataOrBuilder { + private static final long serialVersionUID = 0L; + // Use AddLocalInventoriesMetadata.newBuilder() to construct. + private AddLocalInventoriesMetadata(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private AddLocalInventoriesMetadata() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new AddLocalInventoriesMetadata(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private AddLocalInventoriesMetadata( + 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; + default: + { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.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.ProductServiceProto + .internal_static_google_cloud_retail_v2_AddLocalInventoriesMetadata_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_AddLocalInventoriesMetadata_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.AddLocalInventoriesMetadata.class, + com.google.cloud.retail.v2.AddLocalInventoriesMetadata.Builder.class); + } + + 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 { + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.AddLocalInventoriesMetadata)) { + return super.equals(obj); + } + com.google.cloud.retail.v2.AddLocalInventoriesMetadata other = + (com.google.cloud.retail.v2.AddLocalInventoriesMetadata) obj; + + 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 = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesMetadata parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesMetadata 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.AddLocalInventoriesMetadata parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesMetadata 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.AddLocalInventoriesMetadata parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesMetadata 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.AddLocalInventoriesMetadata parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesMetadata 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.AddLocalInventoriesMetadata parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesMetadata 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.AddLocalInventoriesMetadata 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.AddLocalInventoriesMetadata 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.AddLocalInventoriesMetadata 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; + } + /** + * + * + *
    +   * Metadata related to the progress of the AddLocalInventories operation.
    +   * Currently empty because there is no meaningful metadata populated from the
    +   * [AddLocalInventories][] method.
    +   * 
    + * + * Protobuf type {@code google.cloud.retail.v2.AddLocalInventoriesMetadata} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.retail.v2.AddLocalInventoriesMetadata) + com.google.cloud.retail.v2.AddLocalInventoriesMetadataOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_AddLocalInventoriesMetadata_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_AddLocalInventoriesMetadata_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.AddLocalInventoriesMetadata.class, + com.google.cloud.retail.v2.AddLocalInventoriesMetadata.Builder.class); + } + + // Construct using com.google.cloud.retail.v2.AddLocalInventoriesMetadata.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(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_AddLocalInventoriesMetadata_descriptor; + } + + @java.lang.Override + public com.google.cloud.retail.v2.AddLocalInventoriesMetadata getDefaultInstanceForType() { + return com.google.cloud.retail.v2.AddLocalInventoriesMetadata.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.retail.v2.AddLocalInventoriesMetadata build() { + com.google.cloud.retail.v2.AddLocalInventoriesMetadata result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.retail.v2.AddLocalInventoriesMetadata buildPartial() { + com.google.cloud.retail.v2.AddLocalInventoriesMetadata result = + new com.google.cloud.retail.v2.AddLocalInventoriesMetadata(this); + 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.AddLocalInventoriesMetadata) { + return mergeFrom((com.google.cloud.retail.v2.AddLocalInventoriesMetadata) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.retail.v2.AddLocalInventoriesMetadata other) { + if (other == com.google.cloud.retail.v2.AddLocalInventoriesMetadata.getDefaultInstance()) + return this; + 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.AddLocalInventoriesMetadata parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = + (com.google.cloud.retail.v2.AddLocalInventoriesMetadata) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + 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.AddLocalInventoriesMetadata) + } + + // @@protoc_insertion_point(class_scope:google.cloud.retail.v2.AddLocalInventoriesMetadata) + private static final com.google.cloud.retail.v2.AddLocalInventoriesMetadata DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.retail.v2.AddLocalInventoriesMetadata(); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesMetadata getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AddLocalInventoriesMetadata parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new AddLocalInventoriesMetadata(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.AddLocalInventoriesMetadata getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesMetadataOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesMetadataOrBuilder.java new file mode 100644 index 00000000..5b7a0bef --- /dev/null +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesMetadataOrBuilder.java @@ -0,0 +1,24 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/retail/v2/product_service.proto + +package com.google.cloud.retail.v2; + +public interface AddLocalInventoriesMetadataOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.retail.v2.AddLocalInventoriesMetadata) + com.google.protobuf.MessageOrBuilder {} 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 new file mode 100644 index 00000000..91da7563 --- /dev/null +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesRequest.java @@ -0,0 +1,2064 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/retail/v2/product_service.proto + +package com.google.cloud.retail.v2; + +/** + * + * + *
    + * Request message for [AddLocalInventories][] method.
    + * 
    + * + * Protobuf type {@code google.cloud.retail.v2.AddLocalInventoriesRequest} + */ +public final class AddLocalInventoriesRequest extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.retail.v2.AddLocalInventoriesRequest) + AddLocalInventoriesRequestOrBuilder { + private static final long serialVersionUID = 0L; + // Use AddLocalInventoriesRequest.newBuilder() to construct. + private AddLocalInventoriesRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private AddLocalInventoriesRequest() { + product_ = ""; + localInventories_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new AddLocalInventoriesRequest(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private AddLocalInventoriesRequest( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + 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 10: + { + java.lang.String s = input.readStringRequireUtf8(); + + product_ = s; + break; + } + case 18: + { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + localInventories_ = + new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; + } + localInventories_.add( + input.readMessage( + com.google.cloud.retail.v2.LocalInventory.parser(), extensionRegistry)); + break; + } + case 34: + { + com.google.protobuf.FieldMask.Builder subBuilder = null; + if (addMask_ != null) { + subBuilder = addMask_.toBuilder(); + } + addMask_ = + input.readMessage(com.google.protobuf.FieldMask.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(addMask_); + addMask_ = subBuilder.buildPartial(); + } + + break; + } + case 42: + { + com.google.protobuf.Timestamp.Builder subBuilder = null; + if (addTime_ != null) { + subBuilder = addTime_.toBuilder(); + } + addTime_ = + input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(addTime_); + addTime_ = subBuilder.buildPartial(); + } + + break; + } + case 48: + { + allowMissing_ = input.readBool(); + break; + } + default: + { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + localInventories_ = java.util.Collections.unmodifiableList(localInventories_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_AddLocalInventoriesRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_AddLocalInventoriesRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.AddLocalInventoriesRequest.class, + com.google.cloud.retail.v2.AddLocalInventoriesRequest.Builder.class); + } + + public static final int PRODUCT_FIELD_NUMBER = 1; + private volatile java.lang.Object product_; + /** + * + * + *
    +   * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +   * such as
    +   * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +   * If the caller does not have permission to access the
    +   * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +   * exists, a PERMISSION_DENIED error is returned.
    +   * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The product. + */ + @java.lang.Override + public java.lang.String getProduct() { + java.lang.Object ref = product_; + 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(); + product_ = s; + return s; + } + } + /** + * + * + *
    +   * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +   * such as
    +   * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +   * If the caller does not have permission to access the
    +   * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +   * exists, a PERMISSION_DENIED error is returned.
    +   * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for product. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductBytes() { + java.lang.Object ref = product_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + product_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LOCAL_INVENTORIES_FIELD_NUMBER = 2; + private java.util.List localInventories_; + /** + * + * + *
    +   * Required. A list of inventory information at difference places. Each place
    +   * is identified by its place ID. At most 3000 inventories are allowed per
    +   * request.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + @java.lang.Override + public java.util.List getLocalInventoriesList() { + return localInventories_; + } + /** + * + * + *
    +   * Required. A list of inventory information at difference places. Each place
    +   * is identified by its place ID. At most 3000 inventories are allowed per
    +   * request.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + @java.lang.Override + public java.util.List + getLocalInventoriesOrBuilderList() { + return localInventories_; + } + /** + * + * + *
    +   * Required. A list of inventory information at difference places. Each place
    +   * is identified by its place ID. At most 3000 inventories are allowed per
    +   * request.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + @java.lang.Override + public int getLocalInventoriesCount() { + return localInventories_.size(); + } + /** + * + * + *
    +   * Required. A list of inventory information at difference places. Each place
    +   * is identified by its place ID. At most 3000 inventories are allowed per
    +   * request.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + @java.lang.Override + public com.google.cloud.retail.v2.LocalInventory getLocalInventories(int index) { + return localInventories_.get(index); + } + /** + * + * + *
    +   * Required. A list of inventory information at difference places. Each place
    +   * is identified by its place ID. At most 3000 inventories are allowed per
    +   * request.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + @java.lang.Override + public com.google.cloud.retail.v2.LocalInventoryOrBuilder getLocalInventoriesOrBuilder( + int index) { + return localInventories_.get(index); + } + + public static final int ADD_MASK_FIELD_NUMBER = 4; + private com.google.protobuf.FieldMask addMask_; + /** + * + * + *
    +   * Indicates which inventory fields in the provided list of
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory] to update. The
    +   * field is updated to the provided value.
    +   * If a field is set while the place does not have a previous local inventory,
    +   * the local inventory at that store is created.
    +   * If a field is set while the value of that field is not provided, the
    +   * original field value, if it exists, is deleted.
    +   * If the mask is not set or set with empty paths, all inventory fields will
    +   * be updated.
    +   * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
    +   * is returned and the entire update will be ignored.
    +   * 
    + * + * .google.protobuf.FieldMask add_mask = 4; + * + * @return Whether the addMask field is set. + */ + @java.lang.Override + public boolean hasAddMask() { + return addMask_ != null; + } + /** + * + * + *
    +   * Indicates which inventory fields in the provided list of
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory] to update. The
    +   * field is updated to the provided value.
    +   * If a field is set while the place does not have a previous local inventory,
    +   * the local inventory at that store is created.
    +   * If a field is set while the value of that field is not provided, the
    +   * original field value, if it exists, is deleted.
    +   * If the mask is not set or set with empty paths, all inventory fields will
    +   * be updated.
    +   * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
    +   * is returned and the entire update will be ignored.
    +   * 
    + * + * .google.protobuf.FieldMask add_mask = 4; + * + * @return The addMask. + */ + @java.lang.Override + public com.google.protobuf.FieldMask getAddMask() { + return addMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : addMask_; + } + /** + * + * + *
    +   * Indicates which inventory fields in the provided list of
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory] to update. The
    +   * field is updated to the provided value.
    +   * If a field is set while the place does not have a previous local inventory,
    +   * the local inventory at that store is created.
    +   * If a field is set while the value of that field is not provided, the
    +   * original field value, if it exists, is deleted.
    +   * If the mask is not set or set with empty paths, all inventory fields will
    +   * be updated.
    +   * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
    +   * is returned and the entire update will be ignored.
    +   * 
    + * + * .google.protobuf.FieldMask add_mask = 4; + */ + @java.lang.Override + public com.google.protobuf.FieldMaskOrBuilder getAddMaskOrBuilder() { + return getAddMask(); + } + + public static final int ADD_TIME_FIELD_NUMBER = 5; + private com.google.protobuf.Timestamp addTime_; + /** + * + * + *
    +   * The time when the inventory updates are issued. Used to prevent
    +   * out-of-order updates on local inventory fields. If not provided, the
    +   * internal system time will be used.
    +   * 
    + * + * .google.protobuf.Timestamp add_time = 5; + * + * @return Whether the addTime field is set. + */ + @java.lang.Override + public boolean hasAddTime() { + return addTime_ != null; + } + /** + * + * + *
    +   * The time when the inventory updates are issued. Used to prevent
    +   * out-of-order updates on local inventory fields. If not provided, the
    +   * internal system time will be used.
    +   * 
    + * + * .google.protobuf.Timestamp add_time = 5; + * + * @return The addTime. + */ + @java.lang.Override + public com.google.protobuf.Timestamp getAddTime() { + return addTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : addTime_; + } + /** + * + * + *
    +   * The time when the inventory updates are issued. Used to prevent
    +   * out-of-order updates on local inventory fields. If not provided, the
    +   * internal system time will be used.
    +   * 
    + * + * .google.protobuf.Timestamp add_time = 5; + */ + @java.lang.Override + public com.google.protobuf.TimestampOrBuilder getAddTimeOrBuilder() { + return getAddTime(); + } + + public static final int ALLOW_MISSING_FIELD_NUMBER = 6; + private boolean allowMissing_; + /** + * + * + *
    +   * If set to true, and the [Product][google.cloud.retail.v2.Product] is not
    +   * found, the local inventory will still be processed and retained for at most
    +   * 1 day and processed once the [Product][google.cloud.retail.v2.Product] is
    +   * created. If set to false, a NOT_FOUND error is returned if the
    +   * [Product][google.cloud.retail.v2.Product] is not found.
    +   * 
    + * + * bool allow_missing = 6; + * + * @return The allowMissing. + */ + @java.lang.Override + public boolean getAllowMissing() { + return allowMissing_; + } + + 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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(product_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, product_); + } + for (int i = 0; i < localInventories_.size(); i++) { + output.writeMessage(2, localInventories_.get(i)); + } + if (addMask_ != null) { + output.writeMessage(4, getAddMask()); + } + if (addTime_ != null) { + output.writeMessage(5, getAddTime()); + } + if (allowMissing_ != false) { + output.writeBool(6, allowMissing_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(product_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, product_); + } + for (int i = 0; i < localInventories_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, localInventories_.get(i)); + } + if (addMask_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getAddMask()); + } + if (addTime_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getAddTime()); + } + if (allowMissing_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(6, allowMissing_); + } + 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.AddLocalInventoriesRequest)) { + return super.equals(obj); + } + com.google.cloud.retail.v2.AddLocalInventoriesRequest other = + (com.google.cloud.retail.v2.AddLocalInventoriesRequest) obj; + + if (!getProduct().equals(other.getProduct())) return false; + if (!getLocalInventoriesList().equals(other.getLocalInventoriesList())) return false; + if (hasAddMask() != other.hasAddMask()) return false; + if (hasAddMask()) { + if (!getAddMask().equals(other.getAddMask())) return false; + } + if (hasAddTime() != other.hasAddTime()) return false; + if (hasAddTime()) { + if (!getAddTime().equals(other.getAddTime())) return false; + } + if (getAllowMissing() != other.getAllowMissing()) 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) + PRODUCT_FIELD_NUMBER; + hash = (53 * hash) + getProduct().hashCode(); + if (getLocalInventoriesCount() > 0) { + hash = (37 * hash) + LOCAL_INVENTORIES_FIELD_NUMBER; + hash = (53 * hash) + getLocalInventoriesList().hashCode(); + } + if (hasAddMask()) { + hash = (37 * hash) + ADD_MASK_FIELD_NUMBER; + hash = (53 * hash) + getAddMask().hashCode(); + } + if (hasAddTime()) { + hash = (37 * hash) + ADD_TIME_FIELD_NUMBER; + hash = (53 * hash) + getAddTime().hashCode(); + } + hash = (37 * hash) + ALLOW_MISSING_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAllowMissing()); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesRequest parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesRequest 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.AddLocalInventoriesRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesRequest 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.AddLocalInventoriesRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesRequest 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.AddLocalInventoriesRequest parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesRequest 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.AddLocalInventoriesRequest parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesRequest 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.AddLocalInventoriesRequest 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.AddLocalInventoriesRequest 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.AddLocalInventoriesRequest 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; + } + /** + * + * + *
    +   * Request message for [AddLocalInventories][] method.
    +   * 
    + * + * Protobuf type {@code google.cloud.retail.v2.AddLocalInventoriesRequest} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.retail.v2.AddLocalInventoriesRequest) + com.google.cloud.retail.v2.AddLocalInventoriesRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_AddLocalInventoriesRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_AddLocalInventoriesRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.AddLocalInventoriesRequest.class, + com.google.cloud.retail.v2.AddLocalInventoriesRequest.Builder.class); + } + + // Construct using com.google.cloud.retail.v2.AddLocalInventoriesRequest.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getLocalInventoriesFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + product_ = ""; + + if (localInventoriesBuilder_ == null) { + localInventories_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + localInventoriesBuilder_.clear(); + } + if (addMaskBuilder_ == null) { + addMask_ = null; + } else { + addMask_ = null; + addMaskBuilder_ = null; + } + if (addTimeBuilder_ == null) { + addTime_ = null; + } else { + addTime_ = null; + addTimeBuilder_ = null; + } + allowMissing_ = false; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_AddLocalInventoriesRequest_descriptor; + } + + @java.lang.Override + public com.google.cloud.retail.v2.AddLocalInventoriesRequest getDefaultInstanceForType() { + return com.google.cloud.retail.v2.AddLocalInventoriesRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.retail.v2.AddLocalInventoriesRequest build() { + com.google.cloud.retail.v2.AddLocalInventoriesRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.retail.v2.AddLocalInventoriesRequest buildPartial() { + com.google.cloud.retail.v2.AddLocalInventoriesRequest result = + new com.google.cloud.retail.v2.AddLocalInventoriesRequest(this); + int from_bitField0_ = bitField0_; + result.product_ = product_; + if (localInventoriesBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + localInventories_ = java.util.Collections.unmodifiableList(localInventories_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.localInventories_ = localInventories_; + } else { + result.localInventories_ = localInventoriesBuilder_.build(); + } + if (addMaskBuilder_ == null) { + result.addMask_ = addMask_; + } else { + result.addMask_ = addMaskBuilder_.build(); + } + if (addTimeBuilder_ == null) { + result.addTime_ = addTime_; + } else { + result.addTime_ = addTimeBuilder_.build(); + } + result.allowMissing_ = allowMissing_; + 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.AddLocalInventoriesRequest) { + return mergeFrom((com.google.cloud.retail.v2.AddLocalInventoriesRequest) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.retail.v2.AddLocalInventoriesRequest other) { + if (other == com.google.cloud.retail.v2.AddLocalInventoriesRequest.getDefaultInstance()) + return this; + if (!other.getProduct().isEmpty()) { + product_ = other.product_; + onChanged(); + } + if (localInventoriesBuilder_ == null) { + if (!other.localInventories_.isEmpty()) { + if (localInventories_.isEmpty()) { + localInventories_ = other.localInventories_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureLocalInventoriesIsMutable(); + localInventories_.addAll(other.localInventories_); + } + onChanged(); + } + } else { + if (!other.localInventories_.isEmpty()) { + if (localInventoriesBuilder_.isEmpty()) { + localInventoriesBuilder_.dispose(); + localInventoriesBuilder_ = null; + localInventories_ = other.localInventories_; + bitField0_ = (bitField0_ & ~0x00000001); + localInventoriesBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getLocalInventoriesFieldBuilder() + : null; + } else { + localInventoriesBuilder_.addAllMessages(other.localInventories_); + } + } + } + if (other.hasAddMask()) { + mergeAddMask(other.getAddMask()); + } + if (other.hasAddTime()) { + mergeAddTime(other.getAddTime()); + } + if (other.getAllowMissing() != false) { + setAllowMissing(other.getAllowMissing()); + } + 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.AddLocalInventoriesRequest parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = + (com.google.cloud.retail.v2.AddLocalInventoriesRequest) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private java.lang.Object product_ = ""; + /** + * + * + *
    +     * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +     * such as
    +     * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +     * If the caller does not have permission to access the
    +     * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +     * exists, a PERMISSION_DENIED error is returned.
    +     * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The product. + */ + public java.lang.String getProduct() { + java.lang.Object ref = product_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + product_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * + * + *
    +     * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +     * such as
    +     * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +     * If the caller does not have permission to access the
    +     * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +     * exists, a PERMISSION_DENIED error is returned.
    +     * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for product. + */ + public com.google.protobuf.ByteString getProductBytes() { + java.lang.Object ref = product_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + product_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * + * + *
    +     * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +     * such as
    +     * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +     * If the caller does not have permission to access the
    +     * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +     * exists, a PERMISSION_DENIED error is returned.
    +     * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @param value The product to set. + * @return This builder for chaining. + */ + public Builder setProduct(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + product_ = value; + onChanged(); + return this; + } + /** + * + * + *
    +     * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +     * such as
    +     * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +     * If the caller does not have permission to access the
    +     * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +     * exists, a PERMISSION_DENIED error is returned.
    +     * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return This builder for chaining. + */ + public Builder clearProduct() { + + product_ = getDefaultInstance().getProduct(); + onChanged(); + return this; + } + /** + * + * + *
    +     * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +     * such as
    +     * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +     * If the caller does not have permission to access the
    +     * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +     * exists, a PERMISSION_DENIED error is returned.
    +     * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @param value The bytes for product to set. + * @return This builder for chaining. + */ + public Builder setProductBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + product_ = value; + onChanged(); + return this; + } + + private java.util.List localInventories_ = + java.util.Collections.emptyList(); + + private void ensureLocalInventoriesIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + localInventories_ = + new java.util.ArrayList(localInventories_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.retail.v2.LocalInventory, + com.google.cloud.retail.v2.LocalInventory.Builder, + com.google.cloud.retail.v2.LocalInventoryOrBuilder> + localInventoriesBuilder_; + + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public java.util.List getLocalInventoriesList() { + if (localInventoriesBuilder_ == null) { + return java.util.Collections.unmodifiableList(localInventories_); + } else { + return localInventoriesBuilder_.getMessageList(); + } + } + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public int getLocalInventoriesCount() { + if (localInventoriesBuilder_ == null) { + return localInventories_.size(); + } else { + return localInventoriesBuilder_.getCount(); + } + } + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.cloud.retail.v2.LocalInventory getLocalInventories(int index) { + if (localInventoriesBuilder_ == null) { + return localInventories_.get(index); + } else { + return localInventoriesBuilder_.getMessage(index); + } + } + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder setLocalInventories(int index, com.google.cloud.retail.v2.LocalInventory value) { + if (localInventoriesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLocalInventoriesIsMutable(); + localInventories_.set(index, value); + onChanged(); + } else { + localInventoriesBuilder_.setMessage(index, value); + } + return this; + } + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder setLocalInventories( + int index, com.google.cloud.retail.v2.LocalInventory.Builder builderForValue) { + if (localInventoriesBuilder_ == null) { + ensureLocalInventoriesIsMutable(); + localInventories_.set(index, builderForValue.build()); + onChanged(); + } else { + localInventoriesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder addLocalInventories(com.google.cloud.retail.v2.LocalInventory value) { + if (localInventoriesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLocalInventoriesIsMutable(); + localInventories_.add(value); + onChanged(); + } else { + localInventoriesBuilder_.addMessage(value); + } + return this; + } + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder addLocalInventories(int index, com.google.cloud.retail.v2.LocalInventory value) { + if (localInventoriesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLocalInventoriesIsMutable(); + localInventories_.add(index, value); + onChanged(); + } else { + localInventoriesBuilder_.addMessage(index, value); + } + return this; + } + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder addLocalInventories( + com.google.cloud.retail.v2.LocalInventory.Builder builderForValue) { + if (localInventoriesBuilder_ == null) { + ensureLocalInventoriesIsMutable(); + localInventories_.add(builderForValue.build()); + onChanged(); + } else { + localInventoriesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder addLocalInventories( + int index, com.google.cloud.retail.v2.LocalInventory.Builder builderForValue) { + if (localInventoriesBuilder_ == null) { + ensureLocalInventoriesIsMutable(); + localInventories_.add(index, builderForValue.build()); + onChanged(); + } else { + localInventoriesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder addAllLocalInventories( + java.lang.Iterable values) { + if (localInventoriesBuilder_ == null) { + ensureLocalInventoriesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, localInventories_); + onChanged(); + } else { + localInventoriesBuilder_.addAllMessages(values); + } + return this; + } + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder clearLocalInventories() { + if (localInventoriesBuilder_ == null) { + localInventories_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + localInventoriesBuilder_.clear(); + } + return this; + } + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder removeLocalInventories(int index) { + if (localInventoriesBuilder_ == null) { + ensureLocalInventoriesIsMutable(); + localInventories_.remove(index); + onChanged(); + } else { + localInventoriesBuilder_.remove(index); + } + return this; + } + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.cloud.retail.v2.LocalInventory.Builder getLocalInventoriesBuilder(int index) { + return getLocalInventoriesFieldBuilder().getBuilder(index); + } + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.cloud.retail.v2.LocalInventoryOrBuilder getLocalInventoriesOrBuilder( + int index) { + if (localInventoriesBuilder_ == null) { + return localInventories_.get(index); + } else { + return localInventoriesBuilder_.getMessageOrBuilder(index); + } + } + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public java.util.List + getLocalInventoriesOrBuilderList() { + if (localInventoriesBuilder_ != null) { + return localInventoriesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(localInventories_); + } + } + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.cloud.retail.v2.LocalInventory.Builder addLocalInventoriesBuilder() { + return getLocalInventoriesFieldBuilder() + .addBuilder(com.google.cloud.retail.v2.LocalInventory.getDefaultInstance()); + } + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.cloud.retail.v2.LocalInventory.Builder addLocalInventoriesBuilder(int index) { + return getLocalInventoriesFieldBuilder() + .addBuilder(index, com.google.cloud.retail.v2.LocalInventory.getDefaultInstance()); + } + /** + * + * + *
    +     * Required. A list of inventory information at difference places. Each place
    +     * is identified by its place ID. At most 3000 inventories are allowed per
    +     * request.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public java.util.List + getLocalInventoriesBuilderList() { + return getLocalInventoriesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.retail.v2.LocalInventory, + com.google.cloud.retail.v2.LocalInventory.Builder, + com.google.cloud.retail.v2.LocalInventoryOrBuilder> + getLocalInventoriesFieldBuilder() { + if (localInventoriesBuilder_ == null) { + localInventoriesBuilder_ = + new com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.retail.v2.LocalInventory, + com.google.cloud.retail.v2.LocalInventory.Builder, + com.google.cloud.retail.v2.LocalInventoryOrBuilder>( + localInventories_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + localInventories_ = null; + } + return localInventoriesBuilder_; + } + + private com.google.protobuf.FieldMask addMask_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.FieldMask, + com.google.protobuf.FieldMask.Builder, + com.google.protobuf.FieldMaskOrBuilder> + addMaskBuilder_; + /** + * + * + *
    +     * Indicates which inventory fields in the provided list of
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory] to update. The
    +     * field is updated to the provided value.
    +     * If a field is set while the place does not have a previous local inventory,
    +     * the local inventory at that store is created.
    +     * If a field is set while the value of that field is not provided, the
    +     * original field value, if it exists, is deleted.
    +     * If the mask is not set or set with empty paths, all inventory fields will
    +     * be updated.
    +     * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
    +     * is returned and the entire update will be ignored.
    +     * 
    + * + * .google.protobuf.FieldMask add_mask = 4; + * + * @return Whether the addMask field is set. + */ + public boolean hasAddMask() { + return addMaskBuilder_ != null || addMask_ != null; + } + /** + * + * + *
    +     * Indicates which inventory fields in the provided list of
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory] to update. The
    +     * field is updated to the provided value.
    +     * If a field is set while the place does not have a previous local inventory,
    +     * the local inventory at that store is created.
    +     * If a field is set while the value of that field is not provided, the
    +     * original field value, if it exists, is deleted.
    +     * If the mask is not set or set with empty paths, all inventory fields will
    +     * be updated.
    +     * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
    +     * is returned and the entire update will be ignored.
    +     * 
    + * + * .google.protobuf.FieldMask add_mask = 4; + * + * @return The addMask. + */ + public com.google.protobuf.FieldMask getAddMask() { + if (addMaskBuilder_ == null) { + return addMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : addMask_; + } else { + return addMaskBuilder_.getMessage(); + } + } + /** + * + * + *
    +     * Indicates which inventory fields in the provided list of
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory] to update. The
    +     * field is updated to the provided value.
    +     * If a field is set while the place does not have a previous local inventory,
    +     * the local inventory at that store is created.
    +     * If a field is set while the value of that field is not provided, the
    +     * original field value, if it exists, is deleted.
    +     * If the mask is not set or set with empty paths, all inventory fields will
    +     * be updated.
    +     * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
    +     * is returned and the entire update will be ignored.
    +     * 
    + * + * .google.protobuf.FieldMask add_mask = 4; + */ + public Builder setAddMask(com.google.protobuf.FieldMask value) { + if (addMaskBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + addMask_ = value; + onChanged(); + } else { + addMaskBuilder_.setMessage(value); + } + + return this; + } + /** + * + * + *
    +     * Indicates which inventory fields in the provided list of
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory] to update. The
    +     * field is updated to the provided value.
    +     * If a field is set while the place does not have a previous local inventory,
    +     * the local inventory at that store is created.
    +     * If a field is set while the value of that field is not provided, the
    +     * original field value, if it exists, is deleted.
    +     * If the mask is not set or set with empty paths, all inventory fields will
    +     * be updated.
    +     * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
    +     * is returned and the entire update will be ignored.
    +     * 
    + * + * .google.protobuf.FieldMask add_mask = 4; + */ + public Builder setAddMask(com.google.protobuf.FieldMask.Builder builderForValue) { + if (addMaskBuilder_ == null) { + addMask_ = builderForValue.build(); + onChanged(); + } else { + addMaskBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * + * + *
    +     * Indicates which inventory fields in the provided list of
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory] to update. The
    +     * field is updated to the provided value.
    +     * If a field is set while the place does not have a previous local inventory,
    +     * the local inventory at that store is created.
    +     * If a field is set while the value of that field is not provided, the
    +     * original field value, if it exists, is deleted.
    +     * If the mask is not set or set with empty paths, all inventory fields will
    +     * be updated.
    +     * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
    +     * is returned and the entire update will be ignored.
    +     * 
    + * + * .google.protobuf.FieldMask add_mask = 4; + */ + public Builder mergeAddMask(com.google.protobuf.FieldMask value) { + if (addMaskBuilder_ == null) { + if (addMask_ != null) { + addMask_ = + com.google.protobuf.FieldMask.newBuilder(addMask_).mergeFrom(value).buildPartial(); + } else { + addMask_ = value; + } + onChanged(); + } else { + addMaskBuilder_.mergeFrom(value); + } + + return this; + } + /** + * + * + *
    +     * Indicates which inventory fields in the provided list of
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory] to update. The
    +     * field is updated to the provided value.
    +     * If a field is set while the place does not have a previous local inventory,
    +     * the local inventory at that store is created.
    +     * If a field is set while the value of that field is not provided, the
    +     * original field value, if it exists, is deleted.
    +     * If the mask is not set or set with empty paths, all inventory fields will
    +     * be updated.
    +     * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
    +     * is returned and the entire update will be ignored.
    +     * 
    + * + * .google.protobuf.FieldMask add_mask = 4; + */ + public Builder clearAddMask() { + if (addMaskBuilder_ == null) { + addMask_ = null; + onChanged(); + } else { + addMask_ = null; + addMaskBuilder_ = null; + } + + return this; + } + /** + * + * + *
    +     * Indicates which inventory fields in the provided list of
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory] to update. The
    +     * field is updated to the provided value.
    +     * If a field is set while the place does not have a previous local inventory,
    +     * the local inventory at that store is created.
    +     * If a field is set while the value of that field is not provided, the
    +     * original field value, if it exists, is deleted.
    +     * If the mask is not set or set with empty paths, all inventory fields will
    +     * be updated.
    +     * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
    +     * is returned and the entire update will be ignored.
    +     * 
    + * + * .google.protobuf.FieldMask add_mask = 4; + */ + public com.google.protobuf.FieldMask.Builder getAddMaskBuilder() { + + onChanged(); + return getAddMaskFieldBuilder().getBuilder(); + } + /** + * + * + *
    +     * Indicates which inventory fields in the provided list of
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory] to update. The
    +     * field is updated to the provided value.
    +     * If a field is set while the place does not have a previous local inventory,
    +     * the local inventory at that store is created.
    +     * If a field is set while the value of that field is not provided, the
    +     * original field value, if it exists, is deleted.
    +     * If the mask is not set or set with empty paths, all inventory fields will
    +     * be updated.
    +     * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
    +     * is returned and the entire update will be ignored.
    +     * 
    + * + * .google.protobuf.FieldMask add_mask = 4; + */ + public com.google.protobuf.FieldMaskOrBuilder getAddMaskOrBuilder() { + if (addMaskBuilder_ != null) { + return addMaskBuilder_.getMessageOrBuilder(); + } else { + return addMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : addMask_; + } + } + /** + * + * + *
    +     * Indicates which inventory fields in the provided list of
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory] to update. The
    +     * field is updated to the provided value.
    +     * If a field is set while the place does not have a previous local inventory,
    +     * the local inventory at that store is created.
    +     * If a field is set while the value of that field is not provided, the
    +     * original field value, if it exists, is deleted.
    +     * If the mask is not set or set with empty paths, all inventory fields will
    +     * be updated.
    +     * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
    +     * is returned and the entire update will be ignored.
    +     * 
    + * + * .google.protobuf.FieldMask add_mask = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.FieldMask, + com.google.protobuf.FieldMask.Builder, + com.google.protobuf.FieldMaskOrBuilder> + getAddMaskFieldBuilder() { + if (addMaskBuilder_ == null) { + addMaskBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.FieldMask, + com.google.protobuf.FieldMask.Builder, + com.google.protobuf.FieldMaskOrBuilder>( + getAddMask(), getParentForChildren(), isClean()); + addMask_ = null; + } + return addMaskBuilder_; + } + + private com.google.protobuf.Timestamp addTime_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + addTimeBuilder_; + /** + * + * + *
    +     * The time when the inventory updates are issued. Used to prevent
    +     * out-of-order updates on local inventory fields. If not provided, the
    +     * internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp add_time = 5; + * + * @return Whether the addTime field is set. + */ + public boolean hasAddTime() { + return addTimeBuilder_ != null || addTime_ != null; + } + /** + * + * + *
    +     * The time when the inventory updates are issued. Used to prevent
    +     * out-of-order updates on local inventory fields. If not provided, the
    +     * internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp add_time = 5; + * + * @return The addTime. + */ + public com.google.protobuf.Timestamp getAddTime() { + if (addTimeBuilder_ == null) { + return addTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : addTime_; + } else { + return addTimeBuilder_.getMessage(); + } + } + /** + * + * + *
    +     * The time when the inventory updates are issued. Used to prevent
    +     * out-of-order updates on local inventory fields. If not provided, the
    +     * internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp add_time = 5; + */ + public Builder setAddTime(com.google.protobuf.Timestamp value) { + if (addTimeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + addTime_ = value; + onChanged(); + } else { + addTimeBuilder_.setMessage(value); + } + + return this; + } + /** + * + * + *
    +     * The time when the inventory updates are issued. Used to prevent
    +     * out-of-order updates on local inventory fields. If not provided, the
    +     * internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp add_time = 5; + */ + public Builder setAddTime(com.google.protobuf.Timestamp.Builder builderForValue) { + if (addTimeBuilder_ == null) { + addTime_ = builderForValue.build(); + onChanged(); + } else { + addTimeBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * + * + *
    +     * The time when the inventory updates are issued. Used to prevent
    +     * out-of-order updates on local inventory fields. If not provided, the
    +     * internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp add_time = 5; + */ + public Builder mergeAddTime(com.google.protobuf.Timestamp value) { + if (addTimeBuilder_ == null) { + if (addTime_ != null) { + addTime_ = + com.google.protobuf.Timestamp.newBuilder(addTime_).mergeFrom(value).buildPartial(); + } else { + addTime_ = value; + } + onChanged(); + } else { + addTimeBuilder_.mergeFrom(value); + } + + return this; + } + /** + * + * + *
    +     * The time when the inventory updates are issued. Used to prevent
    +     * out-of-order updates on local inventory fields. If not provided, the
    +     * internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp add_time = 5; + */ + public Builder clearAddTime() { + if (addTimeBuilder_ == null) { + addTime_ = null; + onChanged(); + } else { + addTime_ = null; + addTimeBuilder_ = null; + } + + return this; + } + /** + * + * + *
    +     * The time when the inventory updates are issued. Used to prevent
    +     * out-of-order updates on local inventory fields. If not provided, the
    +     * internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp add_time = 5; + */ + public com.google.protobuf.Timestamp.Builder getAddTimeBuilder() { + + onChanged(); + return getAddTimeFieldBuilder().getBuilder(); + } + /** + * + * + *
    +     * The time when the inventory updates are issued. Used to prevent
    +     * out-of-order updates on local inventory fields. If not provided, the
    +     * internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp add_time = 5; + */ + public com.google.protobuf.TimestampOrBuilder getAddTimeOrBuilder() { + if (addTimeBuilder_ != null) { + return addTimeBuilder_.getMessageOrBuilder(); + } else { + return addTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : addTime_; + } + } + /** + * + * + *
    +     * The time when the inventory updates are issued. Used to prevent
    +     * out-of-order updates on local inventory fields. If not provided, the
    +     * internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp add_time = 5; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + getAddTimeFieldBuilder() { + if (addTimeBuilder_ == null) { + addTimeBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder>( + getAddTime(), getParentForChildren(), isClean()); + addTime_ = null; + } + return addTimeBuilder_; + } + + private boolean allowMissing_; + /** + * + * + *
    +     * If set to true, and the [Product][google.cloud.retail.v2.Product] is not
    +     * found, the local inventory will still be processed and retained for at most
    +     * 1 day and processed once the [Product][google.cloud.retail.v2.Product] is
    +     * created. If set to false, a NOT_FOUND error is returned if the
    +     * [Product][google.cloud.retail.v2.Product] is not found.
    +     * 
    + * + * bool allow_missing = 6; + * + * @return The allowMissing. + */ + @java.lang.Override + public boolean getAllowMissing() { + return allowMissing_; + } + /** + * + * + *
    +     * If set to true, and the [Product][google.cloud.retail.v2.Product] is not
    +     * found, the local inventory will still be processed and retained for at most
    +     * 1 day and processed once the [Product][google.cloud.retail.v2.Product] is
    +     * created. If set to false, a NOT_FOUND error is returned if the
    +     * [Product][google.cloud.retail.v2.Product] is not found.
    +     * 
    + * + * bool allow_missing = 6; + * + * @param value The allowMissing to set. + * @return This builder for chaining. + */ + public Builder setAllowMissing(boolean value) { + + allowMissing_ = value; + onChanged(); + return this; + } + /** + * + * + *
    +     * If set to true, and the [Product][google.cloud.retail.v2.Product] is not
    +     * found, the local inventory will still be processed and retained for at most
    +     * 1 day and processed once the [Product][google.cloud.retail.v2.Product] is
    +     * created. If set to false, a NOT_FOUND error is returned if the
    +     * [Product][google.cloud.retail.v2.Product] is not found.
    +     * 
    + * + * bool allow_missing = 6; + * + * @return This builder for chaining. + */ + public Builder clearAllowMissing() { + + allowMissing_ = false; + 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.AddLocalInventoriesRequest) + } + + // @@protoc_insertion_point(class_scope:google.cloud.retail.v2.AddLocalInventoriesRequest) + private static final com.google.cloud.retail.v2.AddLocalInventoriesRequest DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.retail.v2.AddLocalInventoriesRequest(); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AddLocalInventoriesRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new AddLocalInventoriesRequest(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.AddLocalInventoriesRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesRequestOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesRequestOrBuilder.java new file mode 100644 index 00000000..a514b176 --- /dev/null +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesRequestOrBuilder.java @@ -0,0 +1,259 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/retail/v2/product_service.proto + +package com.google.cloud.retail.v2; + +public interface AddLocalInventoriesRequestOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.retail.v2.AddLocalInventoriesRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
    +   * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +   * such as
    +   * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +   * If the caller does not have permission to access the
    +   * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +   * exists, a PERMISSION_DENIED error is returned.
    +   * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The product. + */ + java.lang.String getProduct(); + /** + * + * + *
    +   * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +   * such as
    +   * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +   * If the caller does not have permission to access the
    +   * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +   * exists, a PERMISSION_DENIED error is returned.
    +   * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for product. + */ + com.google.protobuf.ByteString getProductBytes(); + + /** + * + * + *
    +   * Required. A list of inventory information at difference places. Each place
    +   * is identified by its place ID. At most 3000 inventories are allowed per
    +   * request.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + java.util.List getLocalInventoriesList(); + /** + * + * + *
    +   * Required. A list of inventory information at difference places. Each place
    +   * is identified by its place ID. At most 3000 inventories are allowed per
    +   * request.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + com.google.cloud.retail.v2.LocalInventory getLocalInventories(int index); + /** + * + * + *
    +   * Required. A list of inventory information at difference places. Each place
    +   * is identified by its place ID. At most 3000 inventories are allowed per
    +   * request.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + int getLocalInventoriesCount(); + /** + * + * + *
    +   * Required. A list of inventory information at difference places. Each place
    +   * is identified by its place ID. At most 3000 inventories are allowed per
    +   * request.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + java.util.List + getLocalInventoriesOrBuilderList(); + /** + * + * + *
    +   * Required. A list of inventory information at difference places. Each place
    +   * is identified by its place ID. At most 3000 inventories are allowed per
    +   * request.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.LocalInventory local_inventories = 2 [(.google.api.field_behavior) = REQUIRED]; + * + */ + com.google.cloud.retail.v2.LocalInventoryOrBuilder getLocalInventoriesOrBuilder(int index); + + /** + * + * + *
    +   * Indicates which inventory fields in the provided list of
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory] to update. The
    +   * field is updated to the provided value.
    +   * If a field is set while the place does not have a previous local inventory,
    +   * the local inventory at that store is created.
    +   * If a field is set while the value of that field is not provided, the
    +   * original field value, if it exists, is deleted.
    +   * If the mask is not set or set with empty paths, all inventory fields will
    +   * be updated.
    +   * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
    +   * is returned and the entire update will be ignored.
    +   * 
    + * + * .google.protobuf.FieldMask add_mask = 4; + * + * @return Whether the addMask field is set. + */ + boolean hasAddMask(); + /** + * + * + *
    +   * Indicates which inventory fields in the provided list of
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory] to update. The
    +   * field is updated to the provided value.
    +   * If a field is set while the place does not have a previous local inventory,
    +   * the local inventory at that store is created.
    +   * If a field is set while the value of that field is not provided, the
    +   * original field value, if it exists, is deleted.
    +   * If the mask is not set or set with empty paths, all inventory fields will
    +   * be updated.
    +   * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
    +   * is returned and the entire update will be ignored.
    +   * 
    + * + * .google.protobuf.FieldMask add_mask = 4; + * + * @return The addMask. + */ + com.google.protobuf.FieldMask getAddMask(); + /** + * + * + *
    +   * Indicates which inventory fields in the provided list of
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory] to update. The
    +   * field is updated to the provided value.
    +   * If a field is set while the place does not have a previous local inventory,
    +   * the local inventory at that store is created.
    +   * If a field is set while the value of that field is not provided, the
    +   * original field value, if it exists, is deleted.
    +   * If the mask is not set or set with empty paths, all inventory fields will
    +   * be updated.
    +   * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
    +   * is returned and the entire update will be ignored.
    +   * 
    + * + * .google.protobuf.FieldMask add_mask = 4; + */ + com.google.protobuf.FieldMaskOrBuilder getAddMaskOrBuilder(); + + /** + * + * + *
    +   * The time when the inventory updates are issued. Used to prevent
    +   * out-of-order updates on local inventory fields. If not provided, the
    +   * internal system time will be used.
    +   * 
    + * + * .google.protobuf.Timestamp add_time = 5; + * + * @return Whether the addTime field is set. + */ + boolean hasAddTime(); + /** + * + * + *
    +   * The time when the inventory updates are issued. Used to prevent
    +   * out-of-order updates on local inventory fields. If not provided, the
    +   * internal system time will be used.
    +   * 
    + * + * .google.protobuf.Timestamp add_time = 5; + * + * @return The addTime. + */ + com.google.protobuf.Timestamp getAddTime(); + /** + * + * + *
    +   * The time when the inventory updates are issued. Used to prevent
    +   * out-of-order updates on local inventory fields. If not provided, the
    +   * internal system time will be used.
    +   * 
    + * + * .google.protobuf.Timestamp add_time = 5; + */ + com.google.protobuf.TimestampOrBuilder getAddTimeOrBuilder(); + + /** + * + * + *
    +   * If set to true, and the [Product][google.cloud.retail.v2.Product] is not
    +   * found, the local inventory will still be processed and retained for at most
    +   * 1 day and processed once the [Product][google.cloud.retail.v2.Product] is
    +   * created. If set to false, a NOT_FOUND error is returned if the
    +   * [Product][google.cloud.retail.v2.Product] is not found.
    +   * 
    + * + * bool allow_missing = 6; + * + * @return The allowMissing. + */ + boolean getAllowMissing(); +} 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 new file mode 100644 index 00000000..2c3ca6da --- /dev/null +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesResponse.java @@ -0,0 +1,461 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/retail/v2/product_service.proto + +package com.google.cloud.retail.v2; + +/** + * + * + *
    + * Response of the [AddLocalInventories][] API.  Currently empty because
    + * there is no meaningful response populated from the [AddLocalInventories][]
    + * method.
    + * 
    + * + * Protobuf type {@code google.cloud.retail.v2.AddLocalInventoriesResponse} + */ +public final class AddLocalInventoriesResponse extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.retail.v2.AddLocalInventoriesResponse) + AddLocalInventoriesResponseOrBuilder { + private static final long serialVersionUID = 0L; + // Use AddLocalInventoriesResponse.newBuilder() to construct. + private AddLocalInventoriesResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private AddLocalInventoriesResponse() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new AddLocalInventoriesResponse(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private AddLocalInventoriesResponse( + 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; + default: + { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.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.ProductServiceProto + .internal_static_google_cloud_retail_v2_AddLocalInventoriesResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_AddLocalInventoriesResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.AddLocalInventoriesResponse.class, + com.google.cloud.retail.v2.AddLocalInventoriesResponse.Builder.class); + } + + 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 { + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.AddLocalInventoriesResponse)) { + return super.equals(obj); + } + com.google.cloud.retail.v2.AddLocalInventoriesResponse other = + (com.google.cloud.retail.v2.AddLocalInventoriesResponse) obj; + + 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 = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesResponse parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesResponse 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.AddLocalInventoriesResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesResponse 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.AddLocalInventoriesResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesResponse 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.AddLocalInventoriesResponse parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesResponse 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.AddLocalInventoriesResponse parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesResponse 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.AddLocalInventoriesResponse 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.AddLocalInventoriesResponse 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.AddLocalInventoriesResponse 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; + } + /** + * + * + *
    +   * Response of the [AddLocalInventories][] API.  Currently empty because
    +   * there is no meaningful response populated from the [AddLocalInventories][]
    +   * method.
    +   * 
    + * + * Protobuf type {@code google.cloud.retail.v2.AddLocalInventoriesResponse} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.retail.v2.AddLocalInventoriesResponse) + com.google.cloud.retail.v2.AddLocalInventoriesResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_AddLocalInventoriesResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_AddLocalInventoriesResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.AddLocalInventoriesResponse.class, + com.google.cloud.retail.v2.AddLocalInventoriesResponse.Builder.class); + } + + // Construct using com.google.cloud.retail.v2.AddLocalInventoriesResponse.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(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_AddLocalInventoriesResponse_descriptor; + } + + @java.lang.Override + public com.google.cloud.retail.v2.AddLocalInventoriesResponse getDefaultInstanceForType() { + return com.google.cloud.retail.v2.AddLocalInventoriesResponse.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.retail.v2.AddLocalInventoriesResponse build() { + com.google.cloud.retail.v2.AddLocalInventoriesResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.retail.v2.AddLocalInventoriesResponse buildPartial() { + com.google.cloud.retail.v2.AddLocalInventoriesResponse result = + new com.google.cloud.retail.v2.AddLocalInventoriesResponse(this); + 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.AddLocalInventoriesResponse) { + return mergeFrom((com.google.cloud.retail.v2.AddLocalInventoriesResponse) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.retail.v2.AddLocalInventoriesResponse other) { + if (other == com.google.cloud.retail.v2.AddLocalInventoriesResponse.getDefaultInstance()) + return this; + 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.AddLocalInventoriesResponse parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = + (com.google.cloud.retail.v2.AddLocalInventoriesResponse) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + 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.AddLocalInventoriesResponse) + } + + // @@protoc_insertion_point(class_scope:google.cloud.retail.v2.AddLocalInventoriesResponse) + private static final com.google.cloud.retail.v2.AddLocalInventoriesResponse DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.retail.v2.AddLocalInventoriesResponse(); + } + + public static com.google.cloud.retail.v2.AddLocalInventoriesResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AddLocalInventoriesResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new AddLocalInventoriesResponse(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.AddLocalInventoriesResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesResponseOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesResponseOrBuilder.java new file mode 100644 index 00000000..0936ab77 --- /dev/null +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/AddLocalInventoriesResponseOrBuilder.java @@ -0,0 +1,24 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/retail/v2/product_service.proto + +package com.google.cloud.retail.v2; + +public interface AddLocalInventoriesResponseOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.retail.v2.AddLocalInventoriesResponse) + com.google.protobuf.MessageOrBuilder {} diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/BigQuerySource.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/BigQuerySource.java index e07ccd30..5eaa3a0b 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/BigQuerySource.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/BigQuerySource.java @@ -485,8 +485,17 @@ public com.google.protobuf.ByteString getGcsStagingDirBytes() { * Supported values for user events imports: * * `user_event` (default): One JSON * [UserEvent][google.cloud.retail.v2.UserEvent] per line. - * * `user_event_ga360`: Using + * * `user_event_ga360`: + * The schema is available here: * https://support.google.com/analytics/answer/3437719. + * * `user_event_ga4`: This feature is in private preview. Please contact the + * support team for importing Google Analytics 4 events. + * The schema is available here: + * https://support.google.com/analytics/answer/7029846. + * Supported values for auto-completion imports: + * * `suggestions` (default): One JSON completion suggestion per line. + * * `denylist`: One JSON deny suggestion per line. + * * `allowlist`: One JSON allow suggestion per line. * * * string data_schema = 4; @@ -519,8 +528,17 @@ public java.lang.String getDataSchema() { * Supported values for user events imports: * * `user_event` (default): One JSON * [UserEvent][google.cloud.retail.v2.UserEvent] per line. - * * `user_event_ga360`: Using + * * `user_event_ga360`: + * The schema is available here: * https://support.google.com/analytics/answer/3437719. + * * `user_event_ga4`: This feature is in private preview. Please contact the + * support team for importing Google Analytics 4 events. + * The schema is available here: + * https://support.google.com/analytics/answer/7029846. + * Supported values for auto-completion imports: + * * `suggestions` (default): One JSON completion suggestion per line. + * * `denylist`: One JSON deny suggestion per line. + * * `allowlist`: One JSON allow suggestion per line. * * * string data_schema = 4; @@ -1673,8 +1691,17 @@ public Builder setGcsStagingDirBytes(com.google.protobuf.ByteString value) { * Supported values for user events imports: * * `user_event` (default): One JSON * [UserEvent][google.cloud.retail.v2.UserEvent] per line. - * * `user_event_ga360`: Using + * * `user_event_ga360`: + * The schema is available here: * https://support.google.com/analytics/answer/3437719. + * * `user_event_ga4`: This feature is in private preview. Please contact the + * support team for importing Google Analytics 4 events. + * The schema is available here: + * https://support.google.com/analytics/answer/7029846. + * Supported values for auto-completion imports: + * * `suggestions` (default): One JSON completion suggestion per line. + * * `denylist`: One JSON deny suggestion per line. + * * `allowlist`: One JSON allow suggestion per line. * * * string data_schema = 4; @@ -1706,8 +1733,17 @@ public java.lang.String getDataSchema() { * Supported values for user events imports: * * `user_event` (default): One JSON * [UserEvent][google.cloud.retail.v2.UserEvent] per line. - * * `user_event_ga360`: Using + * * `user_event_ga360`: + * The schema is available here: * https://support.google.com/analytics/answer/3437719. + * * `user_event_ga4`: This feature is in private preview. Please contact the + * support team for importing Google Analytics 4 events. + * The schema is available here: + * https://support.google.com/analytics/answer/7029846. + * Supported values for auto-completion imports: + * * `suggestions` (default): One JSON completion suggestion per line. + * * `denylist`: One JSON deny suggestion per line. + * * `allowlist`: One JSON allow suggestion per line. * * * string data_schema = 4; @@ -1739,8 +1775,17 @@ public com.google.protobuf.ByteString getDataSchemaBytes() { * Supported values for user events imports: * * `user_event` (default): One JSON * [UserEvent][google.cloud.retail.v2.UserEvent] per line. - * * `user_event_ga360`: Using + * * `user_event_ga360`: + * The schema is available here: * https://support.google.com/analytics/answer/3437719. + * * `user_event_ga4`: This feature is in private preview. Please contact the + * support team for importing Google Analytics 4 events. + * The schema is available here: + * https://support.google.com/analytics/answer/7029846. + * Supported values for auto-completion imports: + * * `suggestions` (default): One JSON completion suggestion per line. + * * `denylist`: One JSON deny suggestion per line. + * * `allowlist`: One JSON allow suggestion per line. * * * string data_schema = 4; @@ -1771,8 +1816,17 @@ public Builder setDataSchema(java.lang.String value) { * Supported values for user events imports: * * `user_event` (default): One JSON * [UserEvent][google.cloud.retail.v2.UserEvent] per line. - * * `user_event_ga360`: Using + * * `user_event_ga360`: + * The schema is available here: * https://support.google.com/analytics/answer/3437719. + * * `user_event_ga4`: This feature is in private preview. Please contact the + * support team for importing Google Analytics 4 events. + * The schema is available here: + * https://support.google.com/analytics/answer/7029846. + * Supported values for auto-completion imports: + * * `suggestions` (default): One JSON completion suggestion per line. + * * `denylist`: One JSON deny suggestion per line. + * * `allowlist`: One JSON allow suggestion per line. * * * string data_schema = 4; @@ -1799,8 +1853,17 @@ public Builder clearDataSchema() { * Supported values for user events imports: * * `user_event` (default): One JSON * [UserEvent][google.cloud.retail.v2.UserEvent] per line. - * * `user_event_ga360`: Using + * * `user_event_ga360`: + * The schema is available here: * https://support.google.com/analytics/answer/3437719. + * * `user_event_ga4`: This feature is in private preview. Please contact the + * support team for importing Google Analytics 4 events. + * The schema is available here: + * https://support.google.com/analytics/answer/7029846. + * Supported values for auto-completion imports: + * * `suggestions` (default): One JSON completion suggestion per line. + * * `denylist`: One JSON deny suggestion per line. + * * `allowlist`: One JSON allow suggestion per line. * * * string data_schema = 4; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/BigQuerySourceOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/BigQuerySourceOrBuilder.java index 8a9aa432..c981a74e 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/BigQuerySourceOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/BigQuerySourceOrBuilder.java @@ -193,8 +193,17 @@ public interface BigQuerySourceOrBuilder * Supported values for user events imports: * * `user_event` (default): One JSON * [UserEvent][google.cloud.retail.v2.UserEvent] per line. - * * `user_event_ga360`: Using + * * `user_event_ga360`: + * The schema is available here: * https://support.google.com/analytics/answer/3437719. + * * `user_event_ga4`: This feature is in private preview. Please contact the + * support team for importing Google Analytics 4 events. + * The schema is available here: + * https://support.google.com/analytics/answer/7029846. + * Supported values for auto-completion imports: + * * `suggestions` (default): One JSON completion suggestion per line. + * * `denylist`: One JSON deny suggestion per line. + * * `allowlist`: One JSON allow suggestion per line. * * * string data_schema = 4; @@ -216,8 +225,17 @@ public interface BigQuerySourceOrBuilder * Supported values for user events imports: * * `user_event` (default): One JSON * [UserEvent][google.cloud.retail.v2.UserEvent] per line. - * * `user_event_ga360`: Using + * * `user_event_ga360`: + * The schema is available here: * https://support.google.com/analytics/answer/3437719. + * * `user_event_ga4`: This feature is in private preview. Please contact the + * support team for importing Google Analytics 4 events. + * The schema is available here: + * https://support.google.com/analytics/answer/7029846. + * Supported values for auto-completion imports: + * * `suggestions` (default): One JSON completion suggestion per line. + * * `denylist`: One JSON deny suggestion per line. + * * `allowlist`: One JSON allow suggestion per line. * * * string data_schema = 4; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CatalogServiceProto.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CatalogServiceProto.java index 0eeda118..46c2ed8f 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CatalogServiceProto.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CatalogServiceProto.java @@ -76,43 +76,43 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "ext_page_token\030\002 \001(\t\"~\n\024UpdateCatalogReq" + "uest\0225\n\007catalog\030\001 \001(\0132\037.google.cloud.ret" + "ail.v2.CatalogB\003\340A\002\022/\n\013update_mask\030\002 \001(\013" - + "2\032.google.protobuf.FieldMask\"\222\001\n\027SetDefa" + + "2\032.google.protobuf.FieldMask\"\241\001\n\027SetDefa" + "ultBranchRequest\0223\n\007catalog\030\001 \001(\tB\"\372A\037\n\035" + "retail.googleapis.com/Catalog\0224\n\tbranch_" + "id\030\002 \001(\tB!\372A\036\n\034retail.googleapis.com/Bra" - + "nch\022\014\n\004note\030\003 \001(\t\"N\n\027GetDefaultBranchReq" - + "uest\0223\n\007catalog\030\001 \001(\tB\"\372A\037\n\035retail.googl" - + "eapis.com/Catalog\"\211\001\n\030GetDefaultBranchRe" - + "sponse\0221\n\006branch\030\001 \001(\tB!\372A\036\n\034retail.goog" - + "leapis.com/Branch\022,\n\010set_time\030\002 \001(\0132\032.go" - + "ogle.protobuf.Timestamp\022\014\n\004note\030\003 \001(\t2\305\006" - + "\n\016CatalogService\022\250\001\n\014ListCatalogs\022+.goog" - + "le.cloud.retail.v2.ListCatalogsRequest\032," - + ".google.cloud.retail.v2.ListCatalogsResp" - + "onse\"=\202\323\344\223\002.\022,/v2/{parent=projects/*/loc" - + "ations/*}/catalogs\332A\006parent\022\273\001\n\rUpdateCa" - + "talog\022,.google.cloud.retail.v2.UpdateCat" - + "alogRequest\032\037.google.cloud.retail.v2.Cat" - + "alog\"[\202\323\344\223\002?24/v2/{catalog.name=projects" - + "/*/locations/*/catalogs/*}:\007catalog\332A\023ca" - + "talog,update_mask\022\262\001\n\020SetDefaultBranch\022/" - + ".google.cloud.retail.v2.SetDefaultBranch" - + "Request\032\026.google.protobuf.Empty\"U\202\323\344\223\002E\"" - + "@/v2/{catalog=projects/*/locations/*/cat" - + "alogs/*}:setDefaultBranch:\001*\332A\007catalog\022\311" - + "\001\n\020GetDefaultBranch\022/.google.cloud.retai" - + "l.v2.GetDefaultBranchRequest\0320.google.cl" - + "oud.retail.v2.GetDefaultBranchResponse\"R" - + "\202\323\344\223\002B\022@/v2/{catalog=projects/*/location" - + "s/*/catalogs/*}:getDefaultBranch\332A\007catal" - + "og\032I\312A\025retail.googleapis.com\322A.https://w" - + "ww.googleapis.com/auth/cloud-platformB\310\001" - + "\n\032com.google.cloud.retail.v2B\023CatalogSer" - + "viceProtoP\001Z - * 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. + * Required field. 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. * The field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. * @@ -305,10 +305,10 @@ public java.lang.String getVisitorId() { * * *
    -   * 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.
    +   * Required field. 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.
        * The field must be a UTF-8 encoded string with a length limit of 128
        * characters. Otherwise, an INVALID_ARGUMENT error is returned.
        * 
    @@ -336,12 +336,12 @@ public com.google.protobuf.ByteString getVisitorIdBytes() { * * *
    -   * The list of languages of the query. This is
    -   * the BCP-47 language code, such as "en-US" or "sr-Latn".
    -   * For more information, see
    -   * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -   * The maximum number of allowed characters is 255.
    -   * Only "en-US" is currently supported.
    +   * The language filters applied to the output suggestions. If set, it should
    +   * contain the language of the query. If not set, suggestions are returned
    +   * without considering language restrictions. This is the BCP-47 language
    +   * code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +   * Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +   * number of language codes is 3.
        * 
    * * repeated string language_codes = 3; @@ -355,12 +355,12 @@ public com.google.protobuf.ProtocolStringList getLanguageCodesList() { * * *
    -   * The list of languages of the query. This is
    -   * the BCP-47 language code, such as "en-US" or "sr-Latn".
    -   * For more information, see
    -   * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -   * The maximum number of allowed characters is 255.
    -   * Only "en-US" is currently supported.
    +   * The language filters applied to the output suggestions. If set, it should
    +   * contain the language of the query. If not set, suggestions are returned
    +   * without considering language restrictions. This is the BCP-47 language
    +   * code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +   * Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +   * number of language codes is 3.
        * 
    * * repeated string language_codes = 3; @@ -374,12 +374,12 @@ public int getLanguageCodesCount() { * * *
    -   * The list of languages of the query. This is
    -   * the BCP-47 language code, such as "en-US" or "sr-Latn".
    -   * For more information, see
    -   * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -   * The maximum number of allowed characters is 255.
    -   * Only "en-US" is currently supported.
    +   * The language filters applied to the output suggestions. If set, it should
    +   * contain the language of the query. If not set, suggestions are returned
    +   * without considering language restrictions. This is the BCP-47 language
    +   * code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +   * Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +   * number of language codes is 3.
        * 
    * * repeated string language_codes = 3; @@ -394,12 +394,12 @@ public java.lang.String getLanguageCodes(int index) { * * *
    -   * The list of languages of the query. This is
    -   * the BCP-47 language code, such as "en-US" or "sr-Latn".
    -   * For more information, see
    -   * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -   * The maximum number of allowed characters is 255.
    -   * Only "en-US" is currently supported.
    +   * The language filters applied to the output suggestions. If set, it should
    +   * contain the language of the query. If not set, suggestions are returned
    +   * without considering language restrictions. This is the BCP-47 language
    +   * code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +   * Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +   * number of language codes is 3.
        * 
    * * repeated string language_codes = 3; @@ -1238,10 +1238,10 @@ public Builder setQueryBytes(com.google.protobuf.ByteString value) { * * *
    -     * 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.
    +     * Required field. 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.
          * The field must be a UTF-8 encoded string with a length limit of 128
          * characters. Otherwise, an INVALID_ARGUMENT error is returned.
          * 
    @@ -1265,10 +1265,10 @@ public java.lang.String getVisitorId() { * * *
    -     * 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.
    +     * Required field. 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.
          * The field must be a UTF-8 encoded string with a length limit of 128
          * characters. Otherwise, an INVALID_ARGUMENT error is returned.
          * 
    @@ -1292,10 +1292,10 @@ public com.google.protobuf.ByteString getVisitorIdBytes() { * * *
    -     * 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.
    +     * Required field. 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.
          * The field must be a UTF-8 encoded string with a length limit of 128
          * characters. Otherwise, an INVALID_ARGUMENT error is returned.
          * 
    @@ -1318,10 +1318,10 @@ public Builder setVisitorId(java.lang.String value) { * * *
    -     * 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.
    +     * Required field. 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.
          * The field must be a UTF-8 encoded string with a length limit of 128
          * characters. Otherwise, an INVALID_ARGUMENT error is returned.
          * 
    @@ -1340,10 +1340,10 @@ public Builder clearVisitorId() { * * *
    -     * 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.
    +     * Required field. 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.
          * The field must be a UTF-8 encoded string with a length limit of 128
          * characters. Otherwise, an INVALID_ARGUMENT error is returned.
          * 
    @@ -1377,12 +1377,12 @@ private void ensureLanguageCodesIsMutable() { * * *
    -     * The list of languages of the query. This is
    -     * the BCP-47 language code, such as "en-US" or "sr-Latn".
    -     * For more information, see
    -     * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -     * The maximum number of allowed characters is 255.
    -     * Only "en-US" is currently supported.
    +     * The language filters applied to the output suggestions. If set, it should
    +     * contain the language of the query. If not set, suggestions are returned
    +     * without considering language restrictions. This is the BCP-47 language
    +     * code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +     * Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +     * number of language codes is 3.
          * 
    * * repeated string language_codes = 3; @@ -1396,12 +1396,12 @@ public com.google.protobuf.ProtocolStringList getLanguageCodesList() { * * *
    -     * The list of languages of the query. This is
    -     * the BCP-47 language code, such as "en-US" or "sr-Latn".
    -     * For more information, see
    -     * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -     * The maximum number of allowed characters is 255.
    -     * Only "en-US" is currently supported.
    +     * The language filters applied to the output suggestions. If set, it should
    +     * contain the language of the query. If not set, suggestions are returned
    +     * without considering language restrictions. This is the BCP-47 language
    +     * code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +     * Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +     * number of language codes is 3.
          * 
    * * repeated string language_codes = 3; @@ -1415,12 +1415,12 @@ public int getLanguageCodesCount() { * * *
    -     * The list of languages of the query. This is
    -     * the BCP-47 language code, such as "en-US" or "sr-Latn".
    -     * For more information, see
    -     * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -     * The maximum number of allowed characters is 255.
    -     * Only "en-US" is currently supported.
    +     * The language filters applied to the output suggestions. If set, it should
    +     * contain the language of the query. If not set, suggestions are returned
    +     * without considering language restrictions. This is the BCP-47 language
    +     * code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +     * Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +     * number of language codes is 3.
          * 
    * * repeated string language_codes = 3; @@ -1435,12 +1435,12 @@ public java.lang.String getLanguageCodes(int index) { * * *
    -     * The list of languages of the query. This is
    -     * the BCP-47 language code, such as "en-US" or "sr-Latn".
    -     * For more information, see
    -     * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -     * The maximum number of allowed characters is 255.
    -     * Only "en-US" is currently supported.
    +     * The language filters applied to the output suggestions. If set, it should
    +     * contain the language of the query. If not set, suggestions are returned
    +     * without considering language restrictions. This is the BCP-47 language
    +     * code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +     * Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +     * number of language codes is 3.
          * 
    * * repeated string language_codes = 3; @@ -1455,12 +1455,12 @@ public com.google.protobuf.ByteString getLanguageCodesBytes(int index) { * * *
    -     * The list of languages of the query. This is
    -     * the BCP-47 language code, such as "en-US" or "sr-Latn".
    -     * For more information, see
    -     * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -     * The maximum number of allowed characters is 255.
    -     * Only "en-US" is currently supported.
    +     * The language filters applied to the output suggestions. If set, it should
    +     * contain the language of the query. If not set, suggestions are returned
    +     * without considering language restrictions. This is the BCP-47 language
    +     * code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +     * Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +     * number of language codes is 3.
          * 
    * * repeated string language_codes = 3; @@ -1482,12 +1482,12 @@ public Builder setLanguageCodes(int index, java.lang.String value) { * * *
    -     * The list of languages of the query. This is
    -     * the BCP-47 language code, such as "en-US" or "sr-Latn".
    -     * For more information, see
    -     * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -     * The maximum number of allowed characters is 255.
    -     * Only "en-US" is currently supported.
    +     * The language filters applied to the output suggestions. If set, it should
    +     * contain the language of the query. If not set, suggestions are returned
    +     * without considering language restrictions. This is the BCP-47 language
    +     * code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +     * Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +     * number of language codes is 3.
          * 
    * * repeated string language_codes = 3; @@ -1508,12 +1508,12 @@ public Builder addLanguageCodes(java.lang.String value) { * * *
    -     * The list of languages of the query. This is
    -     * the BCP-47 language code, such as "en-US" or "sr-Latn".
    -     * For more information, see
    -     * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -     * The maximum number of allowed characters is 255.
    -     * Only "en-US" is currently supported.
    +     * The language filters applied to the output suggestions. If set, it should
    +     * contain the language of the query. If not set, suggestions are returned
    +     * without considering language restrictions. This is the BCP-47 language
    +     * code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +     * Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +     * number of language codes is 3.
          * 
    * * repeated string language_codes = 3; @@ -1531,12 +1531,12 @@ public Builder addAllLanguageCodes(java.lang.Iterable values) * * *
    -     * The list of languages of the query. This is
    -     * the BCP-47 language code, such as "en-US" or "sr-Latn".
    -     * For more information, see
    -     * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -     * The maximum number of allowed characters is 255.
    -     * Only "en-US" is currently supported.
    +     * The language filters applied to the output suggestions. If set, it should
    +     * contain the language of the query. If not set, suggestions are returned
    +     * without considering language restrictions. This is the BCP-47 language
    +     * code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +     * Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +     * number of language codes is 3.
          * 
    * * repeated string language_codes = 3; @@ -1553,12 +1553,12 @@ public Builder clearLanguageCodes() { * * *
    -     * The list of languages of the query. This is
    -     * the BCP-47 language code, such as "en-US" or "sr-Latn".
    -     * For more information, see
    -     * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -     * The maximum number of allowed characters is 255.
    -     * Only "en-US" is currently supported.
    +     * The language filters applied to the output suggestions. If set, it should
    +     * contain the language of the query. If not set, suggestions are returned
    +     * without considering language restrictions. This is the BCP-47 language
    +     * code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +     * Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +     * number of language codes is 3.
          * 
    * * repeated string language_codes = 3; 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 e83dbef6..77d441e0 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 @@ -87,10 +87,10 @@ public interface CompleteQueryRequestOrBuilder * * *
    -   * 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.
    +   * Required field. 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.
        * The field must be a UTF-8 encoded string with a length limit of 128
        * characters. Otherwise, an INVALID_ARGUMENT error is returned.
        * 
    @@ -104,10 +104,10 @@ public interface CompleteQueryRequestOrBuilder * * *
    -   * 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.
    +   * Required field. 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.
        * The field must be a UTF-8 encoded string with a length limit of 128
        * characters. Otherwise, an INVALID_ARGUMENT error is returned.
        * 
    @@ -122,12 +122,12 @@ public interface CompleteQueryRequestOrBuilder * * *
    -   * The list of languages of the query. This is
    -   * the BCP-47 language code, such as "en-US" or "sr-Latn".
    -   * For more information, see
    -   * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -   * The maximum number of allowed characters is 255.
    -   * Only "en-US" is currently supported.
    +   * The language filters applied to the output suggestions. If set, it should
    +   * contain the language of the query. If not set, suggestions are returned
    +   * without considering language restrictions. This is the BCP-47 language
    +   * code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +   * Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +   * number of language codes is 3.
        * 
    * * repeated string language_codes = 3; @@ -139,12 +139,12 @@ public interface CompleteQueryRequestOrBuilder * * *
    -   * The list of languages of the query. This is
    -   * the BCP-47 language code, such as "en-US" or "sr-Latn".
    -   * For more information, see
    -   * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -   * The maximum number of allowed characters is 255.
    -   * Only "en-US" is currently supported.
    +   * The language filters applied to the output suggestions. If set, it should
    +   * contain the language of the query. If not set, suggestions are returned
    +   * without considering language restrictions. This is the BCP-47 language
    +   * code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +   * Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +   * number of language codes is 3.
        * 
    * * repeated string language_codes = 3; @@ -156,12 +156,12 @@ public interface CompleteQueryRequestOrBuilder * * *
    -   * The list of languages of the query. This is
    -   * the BCP-47 language code, such as "en-US" or "sr-Latn".
    -   * For more information, see
    -   * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -   * The maximum number of allowed characters is 255.
    -   * Only "en-US" is currently supported.
    +   * The language filters applied to the output suggestions. If set, it should
    +   * contain the language of the query. If not set, suggestions are returned
    +   * without considering language restrictions. This is the BCP-47 language
    +   * code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +   * Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +   * number of language codes is 3.
        * 
    * * repeated string language_codes = 3; @@ -174,12 +174,12 @@ public interface CompleteQueryRequestOrBuilder * * *
    -   * The list of languages of the query. This is
    -   * the BCP-47 language code, such as "en-US" or "sr-Latn".
    -   * For more information, see
    -   * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -   * The maximum number of allowed characters is 255.
    -   * Only "en-US" is currently supported.
    +   * The language filters applied to the output suggestions. If set, it should
    +   * contain the language of the query. If not set, suggestions are returned
    +   * without considering language restrictions. This is the BCP-47 language
    +   * code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +   * Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +   * number of language codes is 3.
        * 
    * * repeated string language_codes = 3; 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 1522ea0f..6d47349d 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 @@ -182,7 +182,11 @@ public interface CompletionResultOrBuilder * * *
    -     * Additional custom attributes ingested through BigQuery.
    +     * 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.
          * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -192,7 +196,11 @@ public interface CompletionResultOrBuilder * * *
    -     * Additional custom attributes ingested through BigQuery.
    +     * 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.
          * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -205,7 +213,11 @@ public interface CompletionResultOrBuilder * * *
    -     * Additional custom attributes ingested through BigQuery.
    +     * 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.
          * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -215,7 +227,11 @@ public interface CompletionResultOrBuilder * * *
    -     * Additional custom attributes ingested through BigQuery.
    +     * 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.
          * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -226,7 +242,11 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * * *
    -     * Additional custom attributes ingested through BigQuery.
    +     * 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.
          * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -441,7 +461,11 @@ public int getAttributesCount() { * * *
    -     * Additional custom attributes ingested through BigQuery.
    +     * 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.
          * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -464,7 +488,11 @@ public boolean containsAttributes(java.lang.String key) { * * *
    -     * Additional custom attributes ingested through BigQuery.
    +     * 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.
          * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -478,7 +506,11 @@ public boolean containsAttributes(java.lang.String key) { * * *
    -     * Additional custom attributes ingested through BigQuery.
    +     * 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.
          * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -497,7 +529,11 @@ public com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * * *
    -     * Additional custom attributes ingested through BigQuery.
    +     * 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.
          * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -1033,7 +1069,11 @@ public int getAttributesCount() { * * *
    -       * Additional custom attributes ingested through BigQuery.
    +       * 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.
            * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -1056,7 +1096,11 @@ public boolean containsAttributes(java.lang.String key) { * * *
    -       * Additional custom attributes ingested through BigQuery.
    +       * 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.
            * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -1070,7 +1114,11 @@ public boolean containsAttributes(java.lang.String key) { * * *
    -       * Additional custom attributes ingested through BigQuery.
    +       * 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.
            * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -1089,7 +1137,11 @@ public com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * * *
    -       * Additional custom attributes ingested through BigQuery.
    +       * 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.
            * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -1115,7 +1167,11 @@ public Builder clearAttributes() { * * *
    -       * Additional custom attributes ingested through BigQuery.
    +       * 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.
            * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -1137,7 +1193,11 @@ public Builder removeAttributes(java.lang.String key) { * * *
    -       * Additional custom attributes ingested through BigQuery.
    +       * 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.
            * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -1157,7 +1217,11 @@ public Builder putAttributes( * * *
    -       * Additional custom attributes ingested through BigQuery.
    +       * 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.
            * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 2; @@ -1983,9 +2047,9 @@ public com.google.cloud.retail.v2.CompleteQueryResponse.CompletionResult getComp * *
        * A unique complete token. This should be included in the
    -   * [SearchRequest][google.cloud.retail.v2.SearchRequest] resulting from this
    -   * completion, which enables accurate attribution of complete model
    -   * performance.
    +   * [UserEvent.completion_detail][google.cloud.retail.v2.UserEvent.completion_detail]
    +   * for search events resulting from this completion, which enables accurate
    +   * attribution of complete model performance.
        * 
    * * string attribution_token = 2; @@ -2009,9 +2073,9 @@ public java.lang.String getAttributionToken() { * *
        * A unique complete token. This should be included in the
    -   * [SearchRequest][google.cloud.retail.v2.SearchRequest] resulting from this
    -   * completion, which enables accurate attribution of complete model
    -   * performance.
    +   * [UserEvent.completion_detail][google.cloud.retail.v2.UserEvent.completion_detail]
    +   * for search events resulting from this completion, which enables accurate
    +   * attribution of complete model performance.
        * 
    * * string attribution_token = 2; @@ -3051,9 +3115,9 @@ public Builder removeCompletionResults(int index) { * *
          * A unique complete token. This should be included in the
    -     * [SearchRequest][google.cloud.retail.v2.SearchRequest] resulting from this
    -     * completion, which enables accurate attribution of complete model
    -     * performance.
    +     * [UserEvent.completion_detail][google.cloud.retail.v2.UserEvent.completion_detail]
    +     * for search events resulting from this completion, which enables accurate
    +     * attribution of complete model performance.
          * 
    * * string attribution_token = 2; @@ -3076,9 +3140,9 @@ public java.lang.String getAttributionToken() { * *
          * A unique complete token. This should be included in the
    -     * [SearchRequest][google.cloud.retail.v2.SearchRequest] resulting from this
    -     * completion, which enables accurate attribution of complete model
    -     * performance.
    +     * [UserEvent.completion_detail][google.cloud.retail.v2.UserEvent.completion_detail]
    +     * for search events resulting from this completion, which enables accurate
    +     * attribution of complete model performance.
          * 
    * * string attribution_token = 2; @@ -3101,9 +3165,9 @@ public com.google.protobuf.ByteString getAttributionTokenBytes() { * *
          * A unique complete token. This should be included in the
    -     * [SearchRequest][google.cloud.retail.v2.SearchRequest] resulting from this
    -     * completion, which enables accurate attribution of complete model
    -     * performance.
    +     * [UserEvent.completion_detail][google.cloud.retail.v2.UserEvent.completion_detail]
    +     * for search events resulting from this completion, which enables accurate
    +     * attribution of complete model performance.
          * 
    * * string attribution_token = 2; @@ -3125,9 +3189,9 @@ public Builder setAttributionToken(java.lang.String value) { * *
          * A unique complete token. This should be included in the
    -     * [SearchRequest][google.cloud.retail.v2.SearchRequest] resulting from this
    -     * completion, which enables accurate attribution of complete model
    -     * performance.
    +     * [UserEvent.completion_detail][google.cloud.retail.v2.UserEvent.completion_detail]
    +     * for search events resulting from this completion, which enables accurate
    +     * attribution of complete model performance.
          * 
    * * string attribution_token = 2; @@ -3145,9 +3209,9 @@ public Builder clearAttributionToken() { * *
          * A unique complete token. This should be included in the
    -     * [SearchRequest][google.cloud.retail.v2.SearchRequest] resulting from this
    -     * completion, which enables accurate attribution of complete model
    -     * performance.
    +     * [UserEvent.completion_detail][google.cloud.retail.v2.UserEvent.completion_detail]
    +     * for search events resulting from this completion, which enables accurate
    +     * attribution of complete model performance.
          * 
    * * string attribution_token = 2; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CompleteQueryResponseOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CompleteQueryResponseOrBuilder.java index 9a0704cc..eda70420 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CompleteQueryResponseOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/CompleteQueryResponseOrBuilder.java @@ -98,9 +98,9 @@ public interface CompleteQueryResponseOrBuilder * *
        * A unique complete token. This should be included in the
    -   * [SearchRequest][google.cloud.retail.v2.SearchRequest] resulting from this
    -   * completion, which enables accurate attribution of complete model
    -   * performance.
    +   * [UserEvent.completion_detail][google.cloud.retail.v2.UserEvent.completion_detail]
    +   * for search events resulting from this completion, which enables accurate
    +   * attribution of complete model performance.
        * 
    * * string attribution_token = 2; @@ -113,9 +113,9 @@ public interface CompleteQueryResponseOrBuilder * *
        * A unique complete token. This should be included in the
    -   * [SearchRequest][google.cloud.retail.v2.SearchRequest] resulting from this
    -   * completion, which enables accurate attribution of complete model
    -   * performance.
    +   * [UserEvent.completion_detail][google.cloud.retail.v2.UserEvent.completion_detail]
    +   * for search events resulting from this completion, which enables accurate
    +   * attribution of complete model performance.
        * 
    * * string attribution_token = 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 992d451f..9047fc85 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 @@ -167,9 +167,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { *
        * The textual values of this custom attribute. For example, `["yellow",
        * "green"]` when the key is "color".
    -   * At most 400 values are allowed. Empty values are not allowed. Each value
    -   * must be a UTF-8 encoded string with a length limit of 256 characters.
    -   * Otherwise, an INVALID_ARGUMENT error is returned.
    +   * Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +   * returned.
        * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
        * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
        * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -188,9 +187,8 @@ public com.google.protobuf.ProtocolStringList getTextList() {
        * 
        * The textual values of this custom attribute. For example, `["yellow",
        * "green"]` when the key is "color".
    -   * At most 400 values are allowed. Empty values are not allowed. Each value
    -   * must be a UTF-8 encoded string with a length limit of 256 characters.
    -   * Otherwise, an INVALID_ARGUMENT error is returned.
    +   * Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +   * returned.
        * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
        * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
        * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -209,9 +207,8 @@ public int getTextCount() {
        * 
        * The textual values of this custom attribute. For example, `["yellow",
        * "green"]` when the key is "color".
    -   * At most 400 values are allowed. Empty values are not allowed. Each value
    -   * must be a UTF-8 encoded string with a length limit of 256 characters.
    -   * Otherwise, an INVALID_ARGUMENT error is returned.
    +   * Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +   * returned.
        * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
        * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
        * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -231,9 +228,8 @@ public java.lang.String getText(int index) {
        * 
        * The textual values of this custom attribute. For example, `["yellow",
        * "green"]` when the key is "color".
    -   * At most 400 values are allowed. Empty values are not allowed. Each value
    -   * must be a UTF-8 encoded string with a length limit of 256 characters.
    -   * Otherwise, an INVALID_ARGUMENT error is returned.
    +   * Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +   * returned.
        * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
        * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
        * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -256,8 +252,6 @@ public com.google.protobuf.ByteString getTextBytes(int index) {
        * 
        * The numerical values of this custom attribute. For example, `[2.3, 15.4]`
        * when the key is "lengths_cm".
    -   * At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
    -   * returned.
        * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
        * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
        * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -277,8 +271,6 @@ public java.util.List getNumbersList() {
        * 
        * The numerical values of this custom attribute. For example, `[2.3, 15.4]`
        * when the key is "lengths_cm".
    -   * At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
    -   * returned.
        * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
        * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
        * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -297,8 +289,6 @@ public int getNumbersCount() {
        * 
        * The numerical values of this custom attribute. For example, `[2.3, 15.4]`
        * when the key is "lengths_cm".
    -   * At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
    -   * returned.
        * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
        * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
        * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -321,7 +311,11 @@ public double getNumbers(int index) {
        *
        *
        * 
    -   * If true, custom attribute values are searchable by text queries in
    +   * This field will only be used when
    +   * [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
        * [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
    @@ -340,7 +334,11 @@ public boolean hasSearchable() {
        *
        *
        * 
    -   * If true, custom attribute values are searchable by text queries in
    +   * This field will only be used when
    +   * [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
        * [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
    @@ -362,8 +360,11 @@ public boolean getSearchable() {
        *
        *
        * 
    -   * If true, custom attribute values are indexed, so that it can be filtered,
    -   * faceted or boosted in
    +   * This field will only be used when
    +   * [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
        * [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],
    @@ -385,8 +386,11 @@ public boolean hasIndexable() {
        *
        *
        * 
    -   * If true, custom attribute values are indexed, so that it can be filtered,
    -   * faceted or boosted in
    +   * This field will only be used when
    +   * [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
        * [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],
    @@ -845,9 +849,8 @@ private void ensureTextIsMutable() {
          * 
          * The textual values of this custom attribute. For example, `["yellow",
          * "green"]` when the key is "color".
    -     * At most 400 values are allowed. Empty values are not allowed. Each value
    -     * must be a UTF-8 encoded string with a length limit of 256 characters.
    -     * Otherwise, an INVALID_ARGUMENT error is returned.
    +     * Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
          * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
          * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
          * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -866,9 +869,8 @@ public com.google.protobuf.ProtocolStringList getTextList() {
          * 
          * The textual values of this custom attribute. For example, `["yellow",
          * "green"]` when the key is "color".
    -     * At most 400 values are allowed. Empty values are not allowed. Each value
    -     * must be a UTF-8 encoded string with a length limit of 256 characters.
    -     * Otherwise, an INVALID_ARGUMENT error is returned.
    +     * Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
          * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
          * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
          * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -887,9 +889,8 @@ public int getTextCount() {
          * 
          * The textual values of this custom attribute. For example, `["yellow",
          * "green"]` when the key is "color".
    -     * At most 400 values are allowed. Empty values are not allowed. Each value
    -     * must be a UTF-8 encoded string with a length limit of 256 characters.
    -     * Otherwise, an INVALID_ARGUMENT error is returned.
    +     * Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
          * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
          * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
          * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -909,9 +910,8 @@ public java.lang.String getText(int index) {
          * 
          * The textual values of this custom attribute. For example, `["yellow",
          * "green"]` when the key is "color".
    -     * At most 400 values are allowed. Empty values are not allowed. Each value
    -     * must be a UTF-8 encoded string with a length limit of 256 characters.
    -     * Otherwise, an INVALID_ARGUMENT error is returned.
    +     * Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
          * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
          * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
          * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -931,9 +931,8 @@ public com.google.protobuf.ByteString getTextBytes(int index) {
          * 
          * The textual values of this custom attribute. For example, `["yellow",
          * "green"]` when the key is "color".
    -     * At most 400 values are allowed. Empty values are not allowed. Each value
    -     * must be a UTF-8 encoded string with a length limit of 256 characters.
    -     * Otherwise, an INVALID_ARGUMENT error is returned.
    +     * Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
          * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
          * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
          * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -960,9 +959,8 @@ public Builder setText(int index, java.lang.String value) {
          * 
          * The textual values of this custom attribute. For example, `["yellow",
          * "green"]` when the key is "color".
    -     * At most 400 values are allowed. Empty values are not allowed. Each value
    -     * must be a UTF-8 encoded string with a length limit of 256 characters.
    -     * Otherwise, an INVALID_ARGUMENT error is returned.
    +     * Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
          * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
          * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
          * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -988,9 +986,8 @@ public Builder addText(java.lang.String value) {
          * 
          * The textual values of this custom attribute. For example, `["yellow",
          * "green"]` when the key is "color".
    -     * At most 400 values are allowed. Empty values are not allowed. Each value
    -     * must be a UTF-8 encoded string with a length limit of 256 characters.
    -     * Otherwise, an INVALID_ARGUMENT error is returned.
    +     * Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
          * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
          * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
          * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -1013,9 +1010,8 @@ public Builder addAllText(java.lang.Iterable values) {
          * 
          * The textual values of this custom attribute. For example, `["yellow",
          * "green"]` when the key is "color".
    -     * At most 400 values are allowed. Empty values are not allowed. Each value
    -     * must be a UTF-8 encoded string with a length limit of 256 characters.
    -     * Otherwise, an INVALID_ARGUMENT error is returned.
    +     * Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
          * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
          * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
          * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -1037,9 +1033,8 @@ public Builder clearText() {
          * 
          * The textual values of this custom attribute. For example, `["yellow",
          * "green"]` when the key is "color".
    -     * At most 400 values are allowed. Empty values are not allowed. Each value
    -     * must be a UTF-8 encoded string with a length limit of 256 characters.
    -     * Otherwise, an INVALID_ARGUMENT error is returned.
    +     * Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
          * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
          * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
          * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -1075,8 +1070,6 @@ private void ensureNumbersIsMutable() {
          * 
          * The numerical values of this custom attribute. For example, `[2.3, 15.4]`
          * when the key is "lengths_cm".
    -     * At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
    -     * returned.
          * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
          * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
          * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -1097,8 +1090,6 @@ public java.util.List getNumbersList() {
          * 
          * The numerical values of this custom attribute. For example, `[2.3, 15.4]`
          * when the key is "lengths_cm".
    -     * At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
    -     * returned.
          * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
          * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
          * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -1117,8 +1108,6 @@ public int getNumbersCount() {
          * 
          * The numerical values of this custom attribute. For example, `[2.3, 15.4]`
          * when the key is "lengths_cm".
    -     * At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
    -     * returned.
          * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
          * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
          * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -1138,8 +1127,6 @@ public double getNumbers(int index) {
          * 
          * The numerical values of this custom attribute. For example, `[2.3, 15.4]`
          * when the key is "lengths_cm".
    -     * At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
    -     * returned.
          * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
          * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
          * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -1163,8 +1150,6 @@ public Builder setNumbers(int index, double value) {
          * 
          * The numerical values of this custom attribute. For example, `[2.3, 15.4]`
          * when the key is "lengths_cm".
    -     * At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
    -     * returned.
          * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
          * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
          * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -1187,8 +1172,6 @@ public Builder addNumbers(double value) {
          * 
          * The numerical values of this custom attribute. For example, `[2.3, 15.4]`
          * when the key is "lengths_cm".
    -     * At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
    -     * returned.
          * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
          * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
          * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -1211,8 +1194,6 @@ public Builder addAllNumbers(java.lang.Iterable valu
          * 
          * The numerical values of this custom attribute. For example, `[2.3, 15.4]`
          * when the key is "lengths_cm".
    -     * At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
    -     * returned.
          * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
          * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
          * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -1234,7 +1215,11 @@ public Builder clearNumbers() {
          *
          *
          * 
    -     * If true, custom attribute values are searchable by text queries in
    +     * This field will only be used when
    +     * [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
          * [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
    @@ -1253,7 +1238,11 @@ public boolean hasSearchable() {
          *
          *
          * 
    -     * If true, custom attribute values are searchable by text queries in
    +     * This field will only be used when
    +     * [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
          * [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
    @@ -1272,7 +1261,11 @@ public boolean getSearchable() {
          *
          *
          * 
    -     * If true, custom attribute values are searchable by text queries in
    +     * This field will only be used when
    +     * [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
          * [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
    @@ -1294,7 +1287,11 @@ public Builder setSearchable(boolean value) {
          *
          *
          * 
    -     * If true, custom attribute values are searchable by text queries in
    +     * This field will only be used when
    +     * [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
          * [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
    @@ -1317,8 +1314,11 @@ public Builder clearSearchable() {
          *
          *
          * 
    -     * If true, custom attribute values are indexed, so that it can be filtered,
    -     * faceted or boosted in
    +     * This field will only be used when
    +     * [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
          * [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],
    @@ -1340,8 +1340,11 @@ public boolean hasIndexable() {
          *
          *
          * 
    -     * If true, custom attribute values are indexed, so that it can be filtered,
    -     * faceted or boosted in
    +     * This field will only be used when
    +     * [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
          * [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],
    @@ -1363,8 +1366,11 @@ public boolean getIndexable() {
          *
          *
          * 
    -     * If true, custom attribute values are indexed, so that it can be filtered,
    -     * faceted or boosted in
    +     * This field will only be used when
    +     * [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
          * [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],
    @@ -1389,8 +1395,11 @@ public Builder setIndexable(boolean value) {
          *
          *
          * 
    -     * If true, custom attribute values are indexed, so that it can be filtered,
    -     * faceted or boosted in
    +     * This field will only be used when
    +     * [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
          * [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],
    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 9715650d..d59184df 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
    @@ -29,9 +29,8 @@ public interface CustomAttributeOrBuilder
        * 
        * The textual values of this custom attribute. For example, `["yellow",
        * "green"]` when the key is "color".
    -   * At most 400 values are allowed. Empty values are not allowed. Each value
    -   * must be a UTF-8 encoded string with a length limit of 256 characters.
    -   * Otherwise, an INVALID_ARGUMENT error is returned.
    +   * Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +   * returned.
        * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
        * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
        * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -48,9 +47,8 @@ public interface CustomAttributeOrBuilder
        * 
        * The textual values of this custom attribute. For example, `["yellow",
        * "green"]` when the key is "color".
    -   * At most 400 values are allowed. Empty values are not allowed. Each value
    -   * must be a UTF-8 encoded string with a length limit of 256 characters.
    -   * Otherwise, an INVALID_ARGUMENT error is returned.
    +   * Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +   * returned.
        * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
        * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
        * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -67,9 +65,8 @@ public interface CustomAttributeOrBuilder
        * 
        * The textual values of this custom attribute. For example, `["yellow",
        * "green"]` when the key is "color".
    -   * At most 400 values are allowed. Empty values are not allowed. Each value
    -   * must be a UTF-8 encoded string with a length limit of 256 characters.
    -   * Otherwise, an INVALID_ARGUMENT error is returned.
    +   * Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +   * returned.
        * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
        * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
        * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -87,9 +84,8 @@ public interface CustomAttributeOrBuilder
        * 
        * The textual values of this custom attribute. For example, `["yellow",
        * "green"]` when the key is "color".
    -   * At most 400 values are allowed. Empty values are not allowed. Each value
    -   * must be a UTF-8 encoded string with a length limit of 256 characters.
    -   * Otherwise, an INVALID_ARGUMENT error is returned.
    +   * Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +   * returned.
        * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
        * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
        * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -108,8 +104,6 @@ public interface CustomAttributeOrBuilder
        * 
        * The numerical values of this custom attribute. For example, `[2.3, 15.4]`
        * when the key is "lengths_cm".
    -   * At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
    -   * returned.
        * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
        * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
        * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -126,8 +120,6 @@ public interface CustomAttributeOrBuilder
        * 
        * The numerical values of this custom attribute. For example, `[2.3, 15.4]`
        * when the key is "lengths_cm".
    -   * At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
    -   * returned.
        * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
        * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
        * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -144,8 +136,6 @@ public interface CustomAttributeOrBuilder
        * 
        * The numerical values of this custom attribute. For example, `[2.3, 15.4]`
        * when the key is "lengths_cm".
    -   * At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
    -   * returned.
        * Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
        * [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
        * Otherwise, an INVALID_ARGUMENT error is returned.
    @@ -162,7 +152,11 @@ public interface CustomAttributeOrBuilder
        *
        *
        * 
    -   * If true, custom attribute values are searchable by text queries in
    +   * This field will only be used when
    +   * [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
        * [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
    @@ -178,7 +172,11 @@ public interface CustomAttributeOrBuilder
        *
        *
        * 
    -   * If true, custom attribute values are searchable by text queries in
    +   * This field will only be used when
    +   * [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
        * [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
    @@ -195,8 +193,11 @@ public interface CustomAttributeOrBuilder
        *
        *
        * 
    -   * If true, custom attribute values are indexed, so that it can be filtered,
    -   * faceted or boosted in
    +   * This field will only be used when
    +   * [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
        * [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],
    @@ -215,8 +216,11 @@ public interface CustomAttributeOrBuilder
        *
        *
        * 
    -   * If true, custom attribute values are indexed, so that it can be filtered,
    -   * faceted or boosted in
    +   * This field will only be used when
    +   * [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
        * [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],
    diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/GcsSource.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/GcsSource.java
    index 41291a6c..2b142c09 100644
    --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/GcsSource.java
    +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/GcsSource.java
    @@ -234,6 +234,10 @@ public com.google.protobuf.ByteString getInputUrisBytes(int index) {
        * [UserEvent][google.cloud.retail.v2.UserEvent] per line.
        * * `user_event_ga360`: Using
        *   https://support.google.com/analytics/answer/3437719.
    +   * Supported values for control imports:
    +   * * 'control' (default): One JSON [Control][] per line.
    +   * Supported values for catalog attribute imports:
    +   * * 'catalog_attribute' (default): One CSV [CatalogAttribute][] per line.
        * 
    * * string data_schema = 2; @@ -268,6 +272,10 @@ public java.lang.String getDataSchema() { * [UserEvent][google.cloud.retail.v2.UserEvent] per line. * * `user_event_ga360`: Using * https://support.google.com/analytics/answer/3437719. + * Supported values for control imports: + * * 'control' (default): One JSON [Control][] per line. + * Supported values for catalog attribute imports: + * * 'catalog_attribute' (default): One CSV [CatalogAttribute][] per line. *
    * * string data_schema = 2; @@ -885,6 +893,10 @@ public Builder addInputUrisBytes(com.google.protobuf.ByteString value) { * [UserEvent][google.cloud.retail.v2.UserEvent] per line. * * `user_event_ga360`: Using * https://support.google.com/analytics/answer/3437719. + * Supported values for control imports: + * * 'control' (default): One JSON [Control][] per line. + * Supported values for catalog attribute imports: + * * 'catalog_attribute' (default): One CSV [CatalogAttribute][] per line. *
    * * string data_schema = 2; @@ -918,6 +930,10 @@ public java.lang.String getDataSchema() { * [UserEvent][google.cloud.retail.v2.UserEvent] per line. * * `user_event_ga360`: Using * https://support.google.com/analytics/answer/3437719. + * Supported values for control imports: + * * 'control' (default): One JSON [Control][] per line. + * Supported values for catalog attribute imports: + * * 'catalog_attribute' (default): One CSV [CatalogAttribute][] per line. *
    * * string data_schema = 2; @@ -951,6 +967,10 @@ public com.google.protobuf.ByteString getDataSchemaBytes() { * [UserEvent][google.cloud.retail.v2.UserEvent] per line. * * `user_event_ga360`: Using * https://support.google.com/analytics/answer/3437719. + * Supported values for control imports: + * * 'control' (default): One JSON [Control][] per line. + * Supported values for catalog attribute imports: + * * 'catalog_attribute' (default): One CSV [CatalogAttribute][] per line. *
    * * string data_schema = 2; @@ -983,6 +1003,10 @@ public Builder setDataSchema(java.lang.String value) { * [UserEvent][google.cloud.retail.v2.UserEvent] per line. * * `user_event_ga360`: Using * https://support.google.com/analytics/answer/3437719. + * Supported values for control imports: + * * 'control' (default): One JSON [Control][] per line. + * Supported values for catalog attribute imports: + * * 'catalog_attribute' (default): One CSV [CatalogAttribute][] per line. *
    * * string data_schema = 2; @@ -1011,6 +1035,10 @@ public Builder clearDataSchema() { * [UserEvent][google.cloud.retail.v2.UserEvent] per line. * * `user_event_ga360`: Using * https://support.google.com/analytics/answer/3437719. + * Supported values for control imports: + * * 'control' (default): One JSON [Control][] per line. + * Supported values for catalog attribute imports: + * * 'catalog_attribute' (default): One CSV [CatalogAttribute][] per line. *
    * * string data_schema = 2; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/GcsSourceOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/GcsSourceOrBuilder.java index 59ee49eb..c1dba85a 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/GcsSourceOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/GcsSourceOrBuilder.java @@ -118,6 +118,10 @@ public interface GcsSourceOrBuilder * [UserEvent][google.cloud.retail.v2.UserEvent] per line. * * `user_event_ga360`: Using * https://support.google.com/analytics/answer/3437719. + * Supported values for control imports: + * * 'control' (default): One JSON [Control][] per line. + * Supported values for catalog attribute imports: + * * 'catalog_attribute' (default): One CSV [CatalogAttribute][] per line. *
    * * string data_schema = 2; @@ -141,6 +145,10 @@ public interface GcsSourceOrBuilder * [UserEvent][google.cloud.retail.v2.UserEvent] per line. * * `user_event_ga360`: Using * https://support.google.com/analytics/answer/3437719. + * Supported values for control imports: + * * 'control' (default): One JSON [Control][] per line. + * Supported values for catalog attribute imports: + * * 'catalog_attribute' (default): One CSV [CatalogAttribute][] per line. *
    * * string data_schema = 2; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/Image.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/Image.java index 11bec8a7..79057cc3 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/Image.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/Image.java @@ -22,7 +22,10 @@ * * *
    - * [Product][google.cloud.retail.v2.Product] thumbnail/detail image.
    + * [Product][google.cloud.retail.v2.Product] image. Recommendations AI and
    + * Retail Search do not use product images to improve prediction and search
    + * results. However, product images can be returned in results, and are shown in
    + * prediction or search previews in the console.
      * 
    * * Protobuf type {@code google.cloud.retail.v2.Image} @@ -398,7 +401,10 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build * * *
    -   * [Product][google.cloud.retail.v2.Product] thumbnail/detail image.
    +   * [Product][google.cloud.retail.v2.Product] image. Recommendations AI and
    +   * Retail Search do not use product images to improve prediction and search
    +   * results. However, product images can be returned in results, and are shown in
    +   * prediction or search previews in the console.
        * 
    * * Protobuf type {@code google.cloud.retail.v2.Image} diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportConfigProto.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportConfigProto.java index 60ff3df1..5a580762 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportConfigProto.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportConfigProto.java @@ -119,69 +119,69 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "ProductB\003\340A\002\"T\n\025UserEventInlineSource\022;\n" + "\013user_events\030\001 \003(\0132!.google.cloud.retail" + ".v2.UserEventB\003\340A\002\"9\n\022ImportErrorsConfig" - + "\022\024\n\ngcs_prefix\030\001 \001(\tH\000B\r\n\013destination\"\364\003" + + "\022\024\n\ngcs_prefix\030\001 \001(\tH\000B\r\n\013destination\"\370\003" + "\n\025ImportProductsRequest\0224\n\006parent\030\001 \001(\tB" - + "$\340A\002\372A\036\n\034retail.googleapis.com/Branch\022\022\n" - + "\nrequest_id\030\006 \001(\t\022E\n\014input_config\030\002 \001(\0132" - + "*.google.cloud.retail.v2.ProductInputCon" - + "figB\003\340A\002\022A\n\rerrors_config\030\003 \001(\0132*.google" - + ".cloud.retail.v2.ImportErrorsConfig\022/\n\013u" - + "pdate_mask\030\004 \001(\0132\032.google.protobuf.Field" - + "Mask\022]\n\023reconciliation_mode\030\005 \001(\0162@.goog" - + "le.cloud.retail.v2.ImportProductsRequest" - + ".ReconciliationMode\022!\n\031notification_pubs" - + "ub_topic\030\007 \001(\t\"T\n\022ReconciliationMode\022#\n\037" - + "RECONCILIATION_MODE_UNSPECIFIED\020\000\022\017\n\013INC" - + "REMENTAL\020\001\022\010\n\004FULL\020\002\"\334\001\n\027ImportUserEvent" - + "sRequest\0225\n\006parent\030\001 \001(\tB%\340A\002\372A\037\n\035retail" - + ".googleapis.com/Catalog\022G\n\014input_config\030" - + "\002 \001(\0132,.google.cloud.retail.v2.UserEvent" - + "InputConfigB\003\340A\002\022A\n\rerrors_config\030\003 \001(\0132" - + "*.google.cloud.retail.v2.ImportErrorsCon" - + "fig\"\305\001\n\033ImportCompletionDataRequest\0225\n\006p" - + "arent\030\001 \001(\tB%\340A\002\372A\037\n\035retail.googleapis.c" - + "om/Catalog\022L\n\014input_config\030\002 \001(\01321.googl" - + "e.cloud.retail.v2.CompletionDataInputCon" - + "figB\003\340A\002\022!\n\031notification_pubsub_topic\030\003 " - + "\001(\t\"\351\001\n\022ProductInputConfig\022L\n\025product_in" - + "line_source\030\001 \001(\0132+.google.cloud.retail." - + "v2.ProductInlineSourceH\000\0227\n\ngcs_source\030\002" - + " \001(\0132!.google.cloud.retail.v2.GcsSourceH" - + "\000\022B\n\020big_query_source\030\003 \001(\0132&.google.clo" - + "ud.retail.v2.BigQuerySourceH\000B\010\n\006source\"" - + "\377\001\n\024UserEventInputConfig\022V\n\030user_event_i" - + "nline_source\030\001 \001(\0132-.google.cloud.retail" - + ".v2.UserEventInlineSourceB\003\340A\002H\000\022<\n\ngcs_" - + "source\030\002 \001(\0132!.google.cloud.retail.v2.Gc" - + "sSourceB\003\340A\002H\000\022G\n\020big_query_source\030\003 \001(\013" - + "2&.google.cloud.retail.v2.BigQuerySource" - + "B\003\340A\002H\000B\010\n\006source\"n\n\031CompletionDataInput" - + "Config\022G\n\020big_query_source\030\001 \001(\0132&.googl" - + "e.cloud.retail.v2.BigQuerySourceB\003\340A\002H\000B" - + "\010\n\006source\"\327\001\n\016ImportMetadata\022/\n\013create_t" - + "ime\030\001 \001(\0132\032.google.protobuf.Timestamp\022/\n" - + "\013update_time\030\002 \001(\0132\032.google.protobuf.Tim" - + "estamp\022\025\n\rsuccess_count\030\003 \001(\003\022\025\n\rfailure" - + "_count\030\004 \001(\003\022\022\n\nrequest_id\030\005 \001(\t\022!\n\031noti" - + "fication_pubsub_topic\030\006 \001(\t\"\206\001\n\026ImportPr" - + "oductsResponse\022)\n\rerror_samples\030\001 \003(\0132\022." - + "google.rpc.Status\022A\n\rerrors_config\030\002 \001(\013" - + "2*.google.cloud.retail.v2.ImportErrorsCo" - + "nfig\"\320\001\n\030ImportUserEventsResponse\022)\n\rerr" - + "or_samples\030\001 \003(\0132\022.google.rpc.Status\022A\n\r" - + "errors_config\030\002 \001(\0132*.google.cloud.retai" - + "l.v2.ImportErrorsConfig\022F\n\016import_summar" - + "y\030\003 \001(\0132..google.cloud.retail.v2.UserEve" - + "ntImportSummary\"T\n\026UserEventImportSummar" - + "y\022\033\n\023joined_events_count\030\001 \001(\003\022\035\n\025unjoin" - + "ed_events_count\030\002 \001(\003\"I\n\034ImportCompletio" - + "nDataResponse\022)\n\rerror_samples\030\001 \003(\0132\022.g" - + "oogle.rpc.StatusB\306\001\n\032com.google.cloud.re" - + "tail.v2B\021ImportConfigProtoP\001Z - * Google Cloud Storage path for import errors. This must be an empty, - * existing Cloud Storage bucket. Import errors will be written to a file in - * this bucket, one per line, as a JSON-encoded + * Google Cloud Storage prefix for import errors. This must be an empty, + * existing Cloud Storage directory. Import errors will be written to + * sharded files in this directory, one per line, as a JSON-encoded * `google.rpc.Status` message. *
    * @@ -175,9 +175,9 @@ public boolean hasGcsPrefix() { * * *
    -   * Google Cloud Storage path for import errors. This must be an empty,
    -   * existing Cloud Storage bucket. Import errors will be written to a file in
    -   * this bucket, one per line, as a JSON-encoded
    +   * Google Cloud Storage prefix for import errors. This must be an empty,
    +   * existing Cloud Storage directory. Import errors will be written to
    +   * sharded files in this directory, one per line, as a JSON-encoded
        * `google.rpc.Status` message.
        * 
    * @@ -205,9 +205,9 @@ public java.lang.String getGcsPrefix() { * * *
    -   * Google Cloud Storage path for import errors. This must be an empty,
    -   * existing Cloud Storage bucket. Import errors will be written to a file in
    -   * this bucket, one per line, as a JSON-encoded
    +   * Google Cloud Storage prefix for import errors. This must be an empty,
    +   * existing Cloud Storage directory. Import errors will be written to
    +   * sharded files in this directory, one per line, as a JSON-encoded
        * `google.rpc.Status` message.
        * 
    * @@ -591,9 +591,9 @@ public Builder clearDestination() { * * *
    -     * Google Cloud Storage path for import errors. This must be an empty,
    -     * existing Cloud Storage bucket. Import errors will be written to a file in
    -     * this bucket, one per line, as a JSON-encoded
    +     * Google Cloud Storage prefix for import errors. This must be an empty,
    +     * existing Cloud Storage directory. Import errors will be written to
    +     * sharded files in this directory, one per line, as a JSON-encoded
          * `google.rpc.Status` message.
          * 
    * @@ -609,9 +609,9 @@ public boolean hasGcsPrefix() { * * *
    -     * Google Cloud Storage path for import errors. This must be an empty,
    -     * existing Cloud Storage bucket. Import errors will be written to a file in
    -     * this bucket, one per line, as a JSON-encoded
    +     * Google Cloud Storage prefix for import errors. This must be an empty,
    +     * existing Cloud Storage directory. Import errors will be written to
    +     * sharded files in this directory, one per line, as a JSON-encoded
          * `google.rpc.Status` message.
          * 
    * @@ -640,9 +640,9 @@ public java.lang.String getGcsPrefix() { * * *
    -     * Google Cloud Storage path for import errors. This must be an empty,
    -     * existing Cloud Storage bucket. Import errors will be written to a file in
    -     * this bucket, one per line, as a JSON-encoded
    +     * Google Cloud Storage prefix for import errors. This must be an empty,
    +     * existing Cloud Storage directory. Import errors will be written to
    +     * sharded files in this directory, one per line, as a JSON-encoded
          * `google.rpc.Status` message.
          * 
    * @@ -671,9 +671,9 @@ public com.google.protobuf.ByteString getGcsPrefixBytes() { * * *
    -     * Google Cloud Storage path for import errors. This must be an empty,
    -     * existing Cloud Storage bucket. Import errors will be written to a file in
    -     * this bucket, one per line, as a JSON-encoded
    +     * Google Cloud Storage prefix for import errors. This must be an empty,
    +     * existing Cloud Storage directory. Import errors will be written to
    +     * sharded files in this directory, one per line, as a JSON-encoded
          * `google.rpc.Status` message.
          * 
    * @@ -695,9 +695,9 @@ public Builder setGcsPrefix(java.lang.String value) { * * *
    -     * Google Cloud Storage path for import errors. This must be an empty,
    -     * existing Cloud Storage bucket. Import errors will be written to a file in
    -     * this bucket, one per line, as a JSON-encoded
    +     * Google Cloud Storage prefix for import errors. This must be an empty,
    +     * existing Cloud Storage directory. Import errors will be written to
    +     * sharded files in this directory, one per line, as a JSON-encoded
          * `google.rpc.Status` message.
          * 
    * @@ -717,9 +717,9 @@ public Builder clearGcsPrefix() { * * *
    -     * Google Cloud Storage path for import errors. This must be an empty,
    -     * existing Cloud Storage bucket. Import errors will be written to a file in
    -     * this bucket, one per line, as a JSON-encoded
    +     * Google Cloud Storage prefix for import errors. This must be an empty,
    +     * existing Cloud Storage directory. Import errors will be written to
    +     * sharded files in this directory, one per line, as a JSON-encoded
          * `google.rpc.Status` message.
          * 
    * diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportErrorsConfigOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportErrorsConfigOrBuilder.java index 783c05e6..8f9d21dc 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportErrorsConfigOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ImportErrorsConfigOrBuilder.java @@ -27,9 +27,9 @@ public interface ImportErrorsConfigOrBuilder * * *
    -   * Google Cloud Storage path for import errors. This must be an empty,
    -   * existing Cloud Storage bucket. Import errors will be written to a file in
    -   * this bucket, one per line, as a JSON-encoded
    +   * Google Cloud Storage prefix for import errors. This must be an empty,
    +   * existing Cloud Storage directory. Import errors will be written to
    +   * sharded files in this directory, one per line, as a JSON-encoded
        * `google.rpc.Status` message.
        * 
    * @@ -42,9 +42,9 @@ public interface ImportErrorsConfigOrBuilder * * *
    -   * Google Cloud Storage path for import errors. This must be an empty,
    -   * existing Cloud Storage bucket. Import errors will be written to a file in
    -   * this bucket, one per line, as a JSON-encoded
    +   * Google Cloud Storage prefix for import errors. This must be an empty,
    +   * existing Cloud Storage directory. Import errors will be written to
    +   * sharded files in this directory, one per line, as a JSON-encoded
        * `google.rpc.Status` message.
        * 
    * @@ -57,9 +57,9 @@ public interface ImportErrorsConfigOrBuilder * * *
    -   * Google Cloud Storage path for import errors. This must be an empty,
    -   * existing Cloud Storage bucket. Import errors will be written to a file in
    -   * this bucket, one per line, as a JSON-encoded
    +   * Google Cloud Storage prefix for import errors. This must be an empty,
    +   * existing Cloud Storage directory. Import errors will be written to
    +   * sharded files in this directory, one per line, as a JSON-encoded
        * `google.rpc.Status` message.
        * 
    * 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 c088add9..5649ff73 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 @@ -297,15 +297,15 @@ public long getFailureCount() { * * *
    -   * Id of the request / operation. This is parroting back the requestId
    -   * that was passed in the request.
    +   * Deprecated. This field is never set.
        * 
    * - * string request_id = 5; + * string request_id = 5 [deprecated = true]; * * @return The requestId. */ @java.lang.Override + @java.lang.Deprecated public java.lang.String getRequestId() { java.lang.Object ref = requestId_; if (ref instanceof java.lang.String) { @@ -321,15 +321,15 @@ public java.lang.String getRequestId() { * * *
    -   * Id of the request / operation. This is parroting back the requestId
    -   * that was passed in the request.
    +   * Deprecated. This field is never set.
        * 
    * - * string request_id = 5; + * string request_id = 5 [deprecated = true]; * * @return The bytes for requestId. */ @java.lang.Override + @java.lang.Deprecated public com.google.protobuf.ByteString getRequestIdBytes() { java.lang.Object ref = requestId_; if (ref instanceof java.lang.String) { @@ -1302,14 +1302,14 @@ public Builder clearFailureCount() { * * *
    -     * Id of the request / operation. This is parroting back the requestId
    -     * that was passed in the request.
    +     * Deprecated. This field is never set.
          * 
    * - * string request_id = 5; + * string request_id = 5 [deprecated = true]; * * @return The requestId. */ + @java.lang.Deprecated public java.lang.String getRequestId() { java.lang.Object ref = requestId_; if (!(ref instanceof java.lang.String)) { @@ -1325,14 +1325,14 @@ public java.lang.String getRequestId() { * * *
    -     * Id of the request / operation. This is parroting back the requestId
    -     * that was passed in the request.
    +     * Deprecated. This field is never set.
          * 
    * - * string request_id = 5; + * string request_id = 5 [deprecated = true]; * * @return The bytes for requestId. */ + @java.lang.Deprecated public com.google.protobuf.ByteString getRequestIdBytes() { java.lang.Object ref = requestId_; if (ref instanceof String) { @@ -1348,15 +1348,15 @@ public com.google.protobuf.ByteString getRequestIdBytes() { * * *
    -     * Id of the request / operation. This is parroting back the requestId
    -     * that was passed in the request.
    +     * Deprecated. This field is never set.
          * 
    * - * string request_id = 5; + * string request_id = 5 [deprecated = true]; * * @param value The requestId to set. * @return This builder for chaining. */ + @java.lang.Deprecated public Builder setRequestId(java.lang.String value) { if (value == null) { throw new NullPointerException(); @@ -1370,14 +1370,14 @@ public Builder setRequestId(java.lang.String value) { * * *
    -     * Id of the request / operation. This is parroting back the requestId
    -     * that was passed in the request.
    +     * Deprecated. This field is never set.
          * 
    * - * string request_id = 5; + * string request_id = 5 [deprecated = true]; * * @return This builder for chaining. */ + @java.lang.Deprecated public Builder clearRequestId() { requestId_ = getDefaultInstance().getRequestId(); @@ -1388,15 +1388,15 @@ public Builder clearRequestId() { * * *
    -     * Id of the request / operation. This is parroting back the requestId
    -     * that was passed in the request.
    +     * Deprecated. This field is never set.
          * 
    * - * string request_id = 5; + * string request_id = 5 [deprecated = true]; * * @param value The bytes for requestId to set. * @return This builder for chaining. */ + @java.lang.Deprecated public Builder setRequestIdBytes(com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); 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 3c919719..a4707adb 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 @@ -126,27 +126,27 @@ public interface ImportMetadataOrBuilder * * *
    -   * Id of the request / operation. This is parroting back the requestId
    -   * that was passed in the request.
    +   * Deprecated. This field is never set.
        * 
    * - * string request_id = 5; + * string request_id = 5 [deprecated = true]; * * @return The requestId. */ + @java.lang.Deprecated java.lang.String getRequestId(); /** * * *
    -   * Id of the request / operation. This is parroting back the requestId
    -   * that was passed in the request.
    +   * Deprecated. This field is never set.
        * 
    * - * string request_id = 5; + * string request_id = 5 [deprecated = true]; * * @return The bytes for requestId. */ + @java.lang.Deprecated com.google.protobuf.ByteString getRequestIdBytes(); /** 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 349cbf57..234f51d0 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 @@ -219,14 +219,13 @@ public enum ReconciliationMode implements com.google.protobuf.ProtocolMessageEnu *
          * Calculates diff and replaces the entire product dataset. Existing
          * products may be deleted if they are not present in the source location.
    -     * Can only be while using
    -     * [BigQuerySource][google.cloud.retail.v2.BigQuerySource].
    +     * Can only be set while using
    +     * [BigQuerySource][google.cloud.retail.v2.BigQuerySource]. And the BigQuery
    +     * dataset must be created in the data location "us (multiple regions in
    +     * United States)", otherwise a PERMISSION_DENIED error is thrown.
          * Add the IAM permission "BigQuery Data Viewer" for
          * cloud-retail-customer-data-access@system.gserviceaccount.com before
          * using this feature otherwise an error is thrown.
    -     * This feature is only available for users who have Retail Search enabled.
    -     * Please submit a form [here](https://cloud.google.com/contact) to contact
    -     * cloud sales if you are interested in using Retail Search.
          * 
    * * FULL = 2; @@ -261,14 +260,13 @@ public enum ReconciliationMode implements com.google.protobuf.ProtocolMessageEnu *
          * Calculates diff and replaces the entire product dataset. Existing
          * products may be deleted if they are not present in the source location.
    -     * Can only be while using
    -     * [BigQuerySource][google.cloud.retail.v2.BigQuerySource].
    +     * Can only be set while using
    +     * [BigQuerySource][google.cloud.retail.v2.BigQuerySource]. And the BigQuery
    +     * dataset must be created in the data location "us (multiple regions in
    +     * United States)", otherwise a PERMISSION_DENIED error is thrown.
          * Add the IAM permission "BigQuery Data Viewer" for
          * cloud-retail-customer-data-access@system.gserviceaccount.com before
          * using this feature otherwise an error is thrown.
    -     * This feature is only available for users who have Retail Search enabled.
    -     * Please submit a form [here](https://cloud.google.com/contact) to contact
    -     * cloud sales if you are interested in using Retail Search.
          * 
    * * FULL = 2; @@ -426,21 +424,15 @@ public com.google.protobuf.ByteString getParentBytes() { * * *
    -   * Unique identifier provided by client, within the ancestor
    -   * dataset scope. Ensures idempotency and used for request deduplication.
    -   * Server-generated if unspecified. Up to 128 characters long and must match
    -   * the pattern: `[a-zA-Z0-9_]+`. This is returned as [Operation.name][] in
    -   * [ImportMetadata][google.cloud.retail.v2.ImportMetadata].
    -   * Only supported when
    -   * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
    -   * is set to `FULL`.
    +   * Deprecated. This field has no effect.
        * 
    * - * string request_id = 6; + * string request_id = 6 [deprecated = true]; * * @return The requestId. */ @java.lang.Override + @java.lang.Deprecated public java.lang.String getRequestId() { java.lang.Object ref = requestId_; if (ref instanceof java.lang.String) { @@ -456,21 +448,15 @@ public java.lang.String getRequestId() { * * *
    -   * Unique identifier provided by client, within the ancestor
    -   * dataset scope. Ensures idempotency and used for request deduplication.
    -   * Server-generated if unspecified. Up to 128 characters long and must match
    -   * the pattern: `[a-zA-Z0-9_]+`. This is returned as [Operation.name][] in
    -   * [ImportMetadata][google.cloud.retail.v2.ImportMetadata].
    -   * Only supported when
    -   * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
    -   * is set to `FULL`.
    +   * Deprecated. This field has no effect.
        * 
    * - * string request_id = 6; + * string request_id = 6 [deprecated = true]; * * @return The bytes for requestId. */ @java.lang.Override + @java.lang.Deprecated public com.google.protobuf.ByteString getRequestIdBytes() { java.lang.Object ref = requestId_; if (ref instanceof java.lang.String) { @@ -1333,20 +1319,14 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) { * * *
    -     * Unique identifier provided by client, within the ancestor
    -     * dataset scope. Ensures idempotency and used for request deduplication.
    -     * Server-generated if unspecified. Up to 128 characters long and must match
    -     * the pattern: `[a-zA-Z0-9_]+`. This is returned as [Operation.name][] in
    -     * [ImportMetadata][google.cloud.retail.v2.ImportMetadata].
    -     * Only supported when
    -     * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
    -     * is set to `FULL`.
    +     * Deprecated. This field has no effect.
          * 
    * - * string request_id = 6; + * string request_id = 6 [deprecated = true]; * * @return The requestId. */ + @java.lang.Deprecated public java.lang.String getRequestId() { java.lang.Object ref = requestId_; if (!(ref instanceof java.lang.String)) { @@ -1362,20 +1342,14 @@ public java.lang.String getRequestId() { * * *
    -     * Unique identifier provided by client, within the ancestor
    -     * dataset scope. Ensures idempotency and used for request deduplication.
    -     * Server-generated if unspecified. Up to 128 characters long and must match
    -     * the pattern: `[a-zA-Z0-9_]+`. This is returned as [Operation.name][] in
    -     * [ImportMetadata][google.cloud.retail.v2.ImportMetadata].
    -     * Only supported when
    -     * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
    -     * is set to `FULL`.
    +     * Deprecated. This field has no effect.
          * 
    * - * string request_id = 6; + * string request_id = 6 [deprecated = true]; * * @return The bytes for requestId. */ + @java.lang.Deprecated public com.google.protobuf.ByteString getRequestIdBytes() { java.lang.Object ref = requestId_; if (ref instanceof String) { @@ -1391,21 +1365,15 @@ public com.google.protobuf.ByteString getRequestIdBytes() { * * *
    -     * Unique identifier provided by client, within the ancestor
    -     * dataset scope. Ensures idempotency and used for request deduplication.
    -     * Server-generated if unspecified. Up to 128 characters long and must match
    -     * the pattern: `[a-zA-Z0-9_]+`. This is returned as [Operation.name][] in
    -     * [ImportMetadata][google.cloud.retail.v2.ImportMetadata].
    -     * Only supported when
    -     * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
    -     * is set to `FULL`.
    +     * Deprecated. This field has no effect.
          * 
    * - * string request_id = 6; + * string request_id = 6 [deprecated = true]; * * @param value The requestId to set. * @return This builder for chaining. */ + @java.lang.Deprecated public Builder setRequestId(java.lang.String value) { if (value == null) { throw new NullPointerException(); @@ -1419,20 +1387,14 @@ public Builder setRequestId(java.lang.String value) { * * *
    -     * Unique identifier provided by client, within the ancestor
    -     * dataset scope. Ensures idempotency and used for request deduplication.
    -     * Server-generated if unspecified. Up to 128 characters long and must match
    -     * the pattern: `[a-zA-Z0-9_]+`. This is returned as [Operation.name][] in
    -     * [ImportMetadata][google.cloud.retail.v2.ImportMetadata].
    -     * Only supported when
    -     * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
    -     * is set to `FULL`.
    +     * Deprecated. This field has no effect.
          * 
    * - * string request_id = 6; + * string request_id = 6 [deprecated = true]; * * @return This builder for chaining. */ + @java.lang.Deprecated public Builder clearRequestId() { requestId_ = getDefaultInstance().getRequestId(); @@ -1443,21 +1405,15 @@ public Builder clearRequestId() { * * *
    -     * Unique identifier provided by client, within the ancestor
    -     * dataset scope. Ensures idempotency and used for request deduplication.
    -     * Server-generated if unspecified. Up to 128 characters long and must match
    -     * the pattern: `[a-zA-Z0-9_]+`. This is returned as [Operation.name][] in
    -     * [ImportMetadata][google.cloud.retail.v2.ImportMetadata].
    -     * Only supported when
    -     * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
    -     * is set to `FULL`.
    +     * Deprecated. This field has no effect.
          * 
    * - * string request_id = 6; + * string request_id = 6 [deprecated = true]; * * @param value The bytes for requestId to set. * @return This builder for chaining. */ + @java.lang.Deprecated public Builder setRequestIdBytes(com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); 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 b4b6a13c..f2583ce0 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 @@ -62,39 +62,27 @@ public interface ImportProductsRequestOrBuilder * * *
    -   * Unique identifier provided by client, within the ancestor
    -   * dataset scope. Ensures idempotency and used for request deduplication.
    -   * Server-generated if unspecified. Up to 128 characters long and must match
    -   * the pattern: `[a-zA-Z0-9_]+`. This is returned as [Operation.name][] in
    -   * [ImportMetadata][google.cloud.retail.v2.ImportMetadata].
    -   * Only supported when
    -   * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
    -   * is set to `FULL`.
    +   * Deprecated. This field has no effect.
        * 
    * - * string request_id = 6; + * string request_id = 6 [deprecated = true]; * * @return The requestId. */ + @java.lang.Deprecated java.lang.String getRequestId(); /** * * *
    -   * Unique identifier provided by client, within the ancestor
    -   * dataset scope. Ensures idempotency and used for request deduplication.
    -   * Server-generated if unspecified. Up to 128 characters long and must match
    -   * the pattern: `[a-zA-Z0-9_]+`. This is returned as [Operation.name][] in
    -   * [ImportMetadata][google.cloud.retail.v2.ImportMetadata].
    -   * Only supported when
    -   * [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
    -   * is set to `FULL`.
    +   * Deprecated. This field has no effect.
        * 
    * - * string request_id = 6; + * string request_id = 6 [deprecated = true]; * * @return The bytes for requestId. */ + @java.lang.Deprecated com.google.protobuf.ByteString getRequestIdBytes(); /** diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/LocalInventory.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/LocalInventory.java new file mode 100644 index 00000000..f0e71cde --- /dev/null +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/LocalInventory.java @@ -0,0 +1,1961 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/retail/v2/common.proto + +package com.google.cloud.retail.v2; + +/** + * + * + *
    + * The inventory information at a place (e.g. a store) identified
    + * by a place ID.
    + * 
    + * + * Protobuf type {@code google.cloud.retail.v2.LocalInventory} + */ +public final class LocalInventory extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.retail.v2.LocalInventory) + LocalInventoryOrBuilder { + private static final long serialVersionUID = 0L; + // Use LocalInventory.newBuilder() to construct. + private LocalInventory(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private LocalInventory() { + placeId_ = ""; + fulfillmentTypes_ = com.google.protobuf.LazyStringArrayList.EMPTY; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new LocalInventory(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private LocalInventory( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + 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 10: + { + java.lang.String s = input.readStringRequireUtf8(); + + placeId_ = s; + break; + } + case 18: + { + com.google.cloud.retail.v2.PriceInfo.Builder subBuilder = null; + if (priceInfo_ != null) { + subBuilder = priceInfo_.toBuilder(); + } + priceInfo_ = + input.readMessage( + com.google.cloud.retail.v2.PriceInfo.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(priceInfo_); + priceInfo_ = subBuilder.buildPartial(); + } + + break; + } + case 26: + { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + attributes_ = + com.google.protobuf.MapField.newMapField( + AttributesDefaultEntryHolder.defaultEntry); + mutable_bitField0_ |= 0x00000001; + } + com.google.protobuf.MapEntry< + java.lang.String, com.google.cloud.retail.v2.CustomAttribute> + attributes__ = + input.readMessage( + AttributesDefaultEntryHolder.defaultEntry.getParserForType(), + extensionRegistry); + attributes_.getMutableMap().put(attributes__.getKey(), attributes__.getValue()); + break; + } + case 34: + { + java.lang.String s = input.readStringRequireUtf8(); + if (!((mutable_bitField0_ & 0x00000002) != 0)) { + fulfillmentTypes_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000002; + } + fulfillmentTypes_.add(s); + break; + } + default: + { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000002) != 0)) { + fulfillmentTypes_ = fulfillmentTypes_.getUnmodifiableView(); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.retail.v2.CommonProto + .internal_static_google_cloud_retail_v2_LocalInventory_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapField internalGetMapField(int number) { + switch (number) { + case 3: + return internalGetAttributes(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.retail.v2.CommonProto + .internal_static_google_cloud_retail_v2_LocalInventory_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.LocalInventory.class, + com.google.cloud.retail.v2.LocalInventory.Builder.class); + } + + public static final int PLACE_ID_FIELD_NUMBER = 1; + private volatile java.lang.Object placeId_; + /** + * + * + *
    +   * The place ID for the current set of inventory information.
    +   * 
    + * + * string place_id = 1; + * + * @return The placeId. + */ + @java.lang.Override + public java.lang.String getPlaceId() { + java.lang.Object ref = placeId_; + 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(); + placeId_ = s; + return s; + } + } + /** + * + * + *
    +   * The place ID for the current set of inventory information.
    +   * 
    + * + * string place_id = 1; + * + * @return The bytes for placeId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPlaceIdBytes() { + java.lang.Object ref = placeId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + placeId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRICE_INFO_FIELD_NUMBER = 2; + private com.google.cloud.retail.v2.PriceInfo priceInfo_; + /** + * + * + *
    +   * Product price and cost information.
    +   * Google Merchant Center property
    +   * [price](https://support.google.com/merchants/answer/6324371).
    +   * 
    + * + * .google.cloud.retail.v2.PriceInfo price_info = 2; + * + * @return Whether the priceInfo field is set. + */ + @java.lang.Override + public boolean hasPriceInfo() { + return priceInfo_ != null; + } + /** + * + * + *
    +   * Product price and cost information.
    +   * Google Merchant Center property
    +   * [price](https://support.google.com/merchants/answer/6324371).
    +   * 
    + * + * .google.cloud.retail.v2.PriceInfo price_info = 2; + * + * @return The priceInfo. + */ + @java.lang.Override + public com.google.cloud.retail.v2.PriceInfo getPriceInfo() { + return priceInfo_ == null + ? com.google.cloud.retail.v2.PriceInfo.getDefaultInstance() + : priceInfo_; + } + /** + * + * + *
    +   * Product price and cost information.
    +   * Google Merchant Center property
    +   * [price](https://support.google.com/merchants/answer/6324371).
    +   * 
    + * + * .google.cloud.retail.v2.PriceInfo price_info = 2; + */ + @java.lang.Override + public com.google.cloud.retail.v2.PriceInfoOrBuilder getPriceInfoOrBuilder() { + return getPriceInfo(); + } + + public static final int ATTRIBUTES_FIELD_NUMBER = 3; + + private static final class AttributesDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, com.google.cloud.retail.v2.CustomAttribute> + defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + com.google.cloud.retail.v2.CommonProto + .internal_static_google_cloud_retail_v2_LocalInventory_AttributesEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.MESSAGE, + com.google.cloud.retail.v2.CustomAttribute.getDefaultInstance()); + } + + private com.google.protobuf.MapField + attributes_; + + private com.google.protobuf.MapField + internalGetAttributes() { + if (attributes_ == null) { + return com.google.protobuf.MapField.emptyMapField(AttributesDefaultEntryHolder.defaultEntry); + } + return attributes_; + } + + public int getAttributesCount() { + return internalGetAttributes().getMap().size(); + } + /** + * + * + *
    +   * Additional local inventory attributes, for example, store name, promotion
    +   * tags, etc.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * At most 30 attributes are allowed.
    +   * * The key must be a UTF-8 encoded string with a length limit of 32
    +   *   characters.
    +   * * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example,
    +   *   key0LikeThis or KEY_1_LIKE_THIS.
    +   * * The attribute values must be of the same type (text or number).
    +   * * Only 1 value is allowed for each attribute.
    +   * * For text values, the length limit is 256 UTF-8 characters.
    +   * * The attribute does not support search. The `searchable` field should be
    +   *   unset or set to false.
    +   * * The max summed total bytes of custom attribute keys and values per
    +   *   product is 5MiB.
    +   * 
    + * + * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 3; + */ + @java.lang.Override + public boolean containsAttributes(java.lang.String key) { + if (key == null) { + throw new java.lang.NullPointerException(); + } + return internalGetAttributes().getMap().containsKey(key); + } + /** Use {@link #getAttributesMap()} instead. */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map + getAttributes() { + return getAttributesMap(); + } + /** + * + * + *
    +   * Additional local inventory attributes, for example, store name, promotion
    +   * tags, etc.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * At most 30 attributes are allowed.
    +   * * The key must be a UTF-8 encoded string with a length limit of 32
    +   *   characters.
    +   * * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example,
    +   *   key0LikeThis or KEY_1_LIKE_THIS.
    +   * * The attribute values must be of the same type (text or number).
    +   * * Only 1 value is allowed for each attribute.
    +   * * For text values, the length limit is 256 UTF-8 characters.
    +   * * The attribute does not support search. The `searchable` field should be
    +   *   unset or set to false.
    +   * * The max summed total bytes of custom attribute keys and values per
    +   *   product is 5MiB.
    +   * 
    + * + * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 3; + */ + @java.lang.Override + public java.util.Map + getAttributesMap() { + return internalGetAttributes().getMap(); + } + /** + * + * + *
    +   * Additional local inventory attributes, for example, store name, promotion
    +   * tags, etc.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * At most 30 attributes are allowed.
    +   * * The key must be a UTF-8 encoded string with a length limit of 32
    +   *   characters.
    +   * * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example,
    +   *   key0LikeThis or KEY_1_LIKE_THIS.
    +   * * The attribute values must be of the same type (text or number).
    +   * * Only 1 value is allowed for each attribute.
    +   * * For text values, the length limit is 256 UTF-8 characters.
    +   * * The attribute does not support search. The `searchable` field should be
    +   *   unset or set to false.
    +   * * The max summed total bytes of custom attribute keys and values per
    +   *   product is 5MiB.
    +   * 
    + * + * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 3; + */ + @java.lang.Override + public com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( + java.lang.String key, com.google.cloud.retail.v2.CustomAttribute defaultValue) { + if (key == null) { + throw new java.lang.NullPointerException(); + } + java.util.Map map = + internalGetAttributes().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * + * + *
    +   * Additional local inventory attributes, for example, store name, promotion
    +   * tags, etc.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * At most 30 attributes are allowed.
    +   * * The key must be a UTF-8 encoded string with a length limit of 32
    +   *   characters.
    +   * * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example,
    +   *   key0LikeThis or KEY_1_LIKE_THIS.
    +   * * The attribute values must be of the same type (text or number).
    +   * * Only 1 value is allowed for each attribute.
    +   * * For text values, the length limit is 256 UTF-8 characters.
    +   * * The attribute does not support search. The `searchable` field should be
    +   *   unset or set to false.
    +   * * The max summed total bytes of custom attribute keys and values per
    +   *   product is 5MiB.
    +   * 
    + * + * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 3; + */ + @java.lang.Override + public com.google.cloud.retail.v2.CustomAttribute getAttributesOrThrow(java.lang.String key) { + if (key == null) { + throw new java.lang.NullPointerException(); + } + java.util.Map map = + internalGetAttributes().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public static final int FULFILLMENT_TYPES_FIELD_NUMBER = 4; + private com.google.protobuf.LazyStringList fulfillmentTypes_; + /** + * + * + *
    +   * Input only. Supported fulfillment types. Valid fulfillment type values
    +   * include commonly used types (such as pickup in store and same day
    +   * delivery), and custom types. Customers have to map custom types to their
    +   * display names before rendering UI.
    +   * Supported values:
    +   * * "pickup-in-store"
    +   * * "ship-to-store"
    +   * * "same-day-delivery"
    +   * * "next-day-delivery"
    +   * * "custom-type-1"
    +   * * "custom-type-2"
    +   * * "custom-type-3"
    +   * * "custom-type-4"
    +   * * "custom-type-5"
    +   * If this field is set to an invalid value other than these, an
    +   * INVALID_ARGUMENT error is returned.
    +   * All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +   * returned.
    +   * 
    + * + * repeated string fulfillment_types = 4 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * @return A list containing the fulfillmentTypes. + */ + public com.google.protobuf.ProtocolStringList getFulfillmentTypesList() { + return fulfillmentTypes_; + } + /** + * + * + *
    +   * Input only. Supported fulfillment types. Valid fulfillment type values
    +   * include commonly used types (such as pickup in store and same day
    +   * delivery), and custom types. Customers have to map custom types to their
    +   * display names before rendering UI.
    +   * Supported values:
    +   * * "pickup-in-store"
    +   * * "ship-to-store"
    +   * * "same-day-delivery"
    +   * * "next-day-delivery"
    +   * * "custom-type-1"
    +   * * "custom-type-2"
    +   * * "custom-type-3"
    +   * * "custom-type-4"
    +   * * "custom-type-5"
    +   * If this field is set to an invalid value other than these, an
    +   * INVALID_ARGUMENT error is returned.
    +   * All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +   * returned.
    +   * 
    + * + * repeated string fulfillment_types = 4 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * @return The count of fulfillmentTypes. + */ + public int getFulfillmentTypesCount() { + return fulfillmentTypes_.size(); + } + /** + * + * + *
    +   * Input only. Supported fulfillment types. Valid fulfillment type values
    +   * include commonly used types (such as pickup in store and same day
    +   * delivery), and custom types. Customers have to map custom types to their
    +   * display names before rendering UI.
    +   * Supported values:
    +   * * "pickup-in-store"
    +   * * "ship-to-store"
    +   * * "same-day-delivery"
    +   * * "next-day-delivery"
    +   * * "custom-type-1"
    +   * * "custom-type-2"
    +   * * "custom-type-3"
    +   * * "custom-type-4"
    +   * * "custom-type-5"
    +   * If this field is set to an invalid value other than these, an
    +   * INVALID_ARGUMENT error is returned.
    +   * All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +   * returned.
    +   * 
    + * + * repeated string fulfillment_types = 4 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * @param index The index of the element to return. + * @return The fulfillmentTypes at the given index. + */ + public java.lang.String getFulfillmentTypes(int index) { + return fulfillmentTypes_.get(index); + } + /** + * + * + *
    +   * Input only. Supported fulfillment types. Valid fulfillment type values
    +   * include commonly used types (such as pickup in store and same day
    +   * delivery), and custom types. Customers have to map custom types to their
    +   * display names before rendering UI.
    +   * Supported values:
    +   * * "pickup-in-store"
    +   * * "ship-to-store"
    +   * * "same-day-delivery"
    +   * * "next-day-delivery"
    +   * * "custom-type-1"
    +   * * "custom-type-2"
    +   * * "custom-type-3"
    +   * * "custom-type-4"
    +   * * "custom-type-5"
    +   * If this field is set to an invalid value other than these, an
    +   * INVALID_ARGUMENT error is returned.
    +   * All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +   * returned.
    +   * 
    + * + * repeated string fulfillment_types = 4 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * @param index The index of the value to return. + * @return The bytes of the fulfillmentTypes at the given index. + */ + public com.google.protobuf.ByteString getFulfillmentTypesBytes(int index) { + return fulfillmentTypes_.getByteString(index); + } + + 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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(placeId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, placeId_); + } + if (priceInfo_ != null) { + output.writeMessage(2, getPriceInfo()); + } + com.google.protobuf.GeneratedMessageV3.serializeStringMapTo( + output, internalGetAttributes(), AttributesDefaultEntryHolder.defaultEntry, 3); + for (int i = 0; i < fulfillmentTypes_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, fulfillmentTypes_.getRaw(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(placeId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, placeId_); + } + if (priceInfo_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getPriceInfo()); + } + for (java.util.Map.Entry entry : + internalGetAttributes().getMap().entrySet()) { + com.google.protobuf.MapEntry + attributes__ = + AttributesDefaultEntryHolder.defaultEntry + .newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, attributes__); + } + { + int dataSize = 0; + for (int i = 0; i < fulfillmentTypes_.size(); i++) { + dataSize += computeStringSizeNoTag(fulfillmentTypes_.getRaw(i)); + } + size += dataSize; + size += 1 * getFulfillmentTypesList().size(); + } + 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.LocalInventory)) { + return super.equals(obj); + } + com.google.cloud.retail.v2.LocalInventory other = + (com.google.cloud.retail.v2.LocalInventory) obj; + + if (!getPlaceId().equals(other.getPlaceId())) return false; + if (hasPriceInfo() != other.hasPriceInfo()) return false; + if (hasPriceInfo()) { + if (!getPriceInfo().equals(other.getPriceInfo())) return false; + } + if (!internalGetAttributes().equals(other.internalGetAttributes())) return false; + if (!getFulfillmentTypesList().equals(other.getFulfillmentTypesList())) 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) + PLACE_ID_FIELD_NUMBER; + hash = (53 * hash) + getPlaceId().hashCode(); + if (hasPriceInfo()) { + hash = (37 * hash) + PRICE_INFO_FIELD_NUMBER; + hash = (53 * hash) + getPriceInfo().hashCode(); + } + if (!internalGetAttributes().getMap().isEmpty()) { + hash = (37 * hash) + ATTRIBUTES_FIELD_NUMBER; + hash = (53 * hash) + internalGetAttributes().hashCode(); + } + if (getFulfillmentTypesCount() > 0) { + hash = (37 * hash) + FULFILLMENT_TYPES_FIELD_NUMBER; + hash = (53 * hash) + getFulfillmentTypesList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.retail.v2.LocalInventory parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.LocalInventory 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.LocalInventory parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.LocalInventory 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.LocalInventory parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.LocalInventory 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.LocalInventory parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.retail.v2.LocalInventory 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.LocalInventory parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.retail.v2.LocalInventory 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.LocalInventory 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.LocalInventory 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.LocalInventory 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 inventory information at a place (e.g. a store) identified
    +   * by a place ID.
    +   * 
    + * + * Protobuf type {@code google.cloud.retail.v2.LocalInventory} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.retail.v2.LocalInventory) + com.google.cloud.retail.v2.LocalInventoryOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.retail.v2.CommonProto + .internal_static_google_cloud_retail_v2_LocalInventory_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMapField(int number) { + switch (number) { + case 3: + return internalGetAttributes(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMutableMapField(int number) { + switch (number) { + case 3: + return internalGetMutableAttributes(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.retail.v2.CommonProto + .internal_static_google_cloud_retail_v2_LocalInventory_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.LocalInventory.class, + com.google.cloud.retail.v2.LocalInventory.Builder.class); + } + + // Construct using com.google.cloud.retail.v2.LocalInventory.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(); + placeId_ = ""; + + if (priceInfoBuilder_ == null) { + priceInfo_ = null; + } else { + priceInfo_ = null; + priceInfoBuilder_ = null; + } + internalGetMutableAttributes().clear(); + fulfillmentTypes_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.retail.v2.CommonProto + .internal_static_google_cloud_retail_v2_LocalInventory_descriptor; + } + + @java.lang.Override + public com.google.cloud.retail.v2.LocalInventory getDefaultInstanceForType() { + return com.google.cloud.retail.v2.LocalInventory.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.retail.v2.LocalInventory build() { + com.google.cloud.retail.v2.LocalInventory result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.retail.v2.LocalInventory buildPartial() { + com.google.cloud.retail.v2.LocalInventory result = + new com.google.cloud.retail.v2.LocalInventory(this); + int from_bitField0_ = bitField0_; + result.placeId_ = placeId_; + if (priceInfoBuilder_ == null) { + result.priceInfo_ = priceInfo_; + } else { + result.priceInfo_ = priceInfoBuilder_.build(); + } + result.attributes_ = internalGetAttributes(); + result.attributes_.makeImmutable(); + if (((bitField0_ & 0x00000002) != 0)) { + fulfillmentTypes_ = fulfillmentTypes_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.fulfillmentTypes_ = fulfillmentTypes_; + 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.LocalInventory) { + return mergeFrom((com.google.cloud.retail.v2.LocalInventory) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.retail.v2.LocalInventory other) { + if (other == com.google.cloud.retail.v2.LocalInventory.getDefaultInstance()) return this; + if (!other.getPlaceId().isEmpty()) { + placeId_ = other.placeId_; + onChanged(); + } + if (other.hasPriceInfo()) { + mergePriceInfo(other.getPriceInfo()); + } + internalGetMutableAttributes().mergeFrom(other.internalGetAttributes()); + if (!other.fulfillmentTypes_.isEmpty()) { + if (fulfillmentTypes_.isEmpty()) { + fulfillmentTypes_ = other.fulfillmentTypes_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureFulfillmentTypesIsMutable(); + fulfillmentTypes_.addAll(other.fulfillmentTypes_); + } + onChanged(); + } + 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.LocalInventory parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.google.cloud.retail.v2.LocalInventory) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private java.lang.Object placeId_ = ""; + /** + * + * + *
    +     * The place ID for the current set of inventory information.
    +     * 
    + * + * string place_id = 1; + * + * @return The placeId. + */ + public java.lang.String getPlaceId() { + java.lang.Object ref = placeId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + placeId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * + * + *
    +     * The place ID for the current set of inventory information.
    +     * 
    + * + * string place_id = 1; + * + * @return The bytes for placeId. + */ + public com.google.protobuf.ByteString getPlaceIdBytes() { + java.lang.Object ref = placeId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + placeId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * + * + *
    +     * The place ID for the current set of inventory information.
    +     * 
    + * + * string place_id = 1; + * + * @param value The placeId to set. + * @return This builder for chaining. + */ + public Builder setPlaceId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + placeId_ = value; + onChanged(); + return this; + } + /** + * + * + *
    +     * The place ID for the current set of inventory information.
    +     * 
    + * + * string place_id = 1; + * + * @return This builder for chaining. + */ + public Builder clearPlaceId() { + + placeId_ = getDefaultInstance().getPlaceId(); + onChanged(); + return this; + } + /** + * + * + *
    +     * The place ID for the current set of inventory information.
    +     * 
    + * + * string place_id = 1; + * + * @param value The bytes for placeId to set. + * @return This builder for chaining. + */ + public Builder setPlaceIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + placeId_ = value; + onChanged(); + return this; + } + + private com.google.cloud.retail.v2.PriceInfo priceInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.retail.v2.PriceInfo, + com.google.cloud.retail.v2.PriceInfo.Builder, + com.google.cloud.retail.v2.PriceInfoOrBuilder> + priceInfoBuilder_; + /** + * + * + *
    +     * Product price and cost information.
    +     * Google Merchant Center property
    +     * [price](https://support.google.com/merchants/answer/6324371).
    +     * 
    + * + * .google.cloud.retail.v2.PriceInfo price_info = 2; + * + * @return Whether the priceInfo field is set. + */ + public boolean hasPriceInfo() { + return priceInfoBuilder_ != null || priceInfo_ != null; + } + /** + * + * + *
    +     * Product price and cost information.
    +     * Google Merchant Center property
    +     * [price](https://support.google.com/merchants/answer/6324371).
    +     * 
    + * + * .google.cloud.retail.v2.PriceInfo price_info = 2; + * + * @return The priceInfo. + */ + public com.google.cloud.retail.v2.PriceInfo getPriceInfo() { + if (priceInfoBuilder_ == null) { + return priceInfo_ == null + ? com.google.cloud.retail.v2.PriceInfo.getDefaultInstance() + : priceInfo_; + } else { + return priceInfoBuilder_.getMessage(); + } + } + /** + * + * + *
    +     * Product price and cost information.
    +     * Google Merchant Center property
    +     * [price](https://support.google.com/merchants/answer/6324371).
    +     * 
    + * + * .google.cloud.retail.v2.PriceInfo price_info = 2; + */ + public Builder setPriceInfo(com.google.cloud.retail.v2.PriceInfo value) { + if (priceInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + priceInfo_ = value; + onChanged(); + } else { + priceInfoBuilder_.setMessage(value); + } + + return this; + } + /** + * + * + *
    +     * Product price and cost information.
    +     * Google Merchant Center property
    +     * [price](https://support.google.com/merchants/answer/6324371).
    +     * 
    + * + * .google.cloud.retail.v2.PriceInfo price_info = 2; + */ + public Builder setPriceInfo(com.google.cloud.retail.v2.PriceInfo.Builder builderForValue) { + if (priceInfoBuilder_ == null) { + priceInfo_ = builderForValue.build(); + onChanged(); + } else { + priceInfoBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * + * + *
    +     * Product price and cost information.
    +     * Google Merchant Center property
    +     * [price](https://support.google.com/merchants/answer/6324371).
    +     * 
    + * + * .google.cloud.retail.v2.PriceInfo price_info = 2; + */ + public Builder mergePriceInfo(com.google.cloud.retail.v2.PriceInfo value) { + if (priceInfoBuilder_ == null) { + if (priceInfo_ != null) { + priceInfo_ = + com.google.cloud.retail.v2.PriceInfo.newBuilder(priceInfo_) + .mergeFrom(value) + .buildPartial(); + } else { + priceInfo_ = value; + } + onChanged(); + } else { + priceInfoBuilder_.mergeFrom(value); + } + + return this; + } + /** + * + * + *
    +     * Product price and cost information.
    +     * Google Merchant Center property
    +     * [price](https://support.google.com/merchants/answer/6324371).
    +     * 
    + * + * .google.cloud.retail.v2.PriceInfo price_info = 2; + */ + public Builder clearPriceInfo() { + if (priceInfoBuilder_ == null) { + priceInfo_ = null; + onChanged(); + } else { + priceInfo_ = null; + priceInfoBuilder_ = null; + } + + return this; + } + /** + * + * + *
    +     * Product price and cost information.
    +     * Google Merchant Center property
    +     * [price](https://support.google.com/merchants/answer/6324371).
    +     * 
    + * + * .google.cloud.retail.v2.PriceInfo price_info = 2; + */ + public com.google.cloud.retail.v2.PriceInfo.Builder getPriceInfoBuilder() { + + onChanged(); + return getPriceInfoFieldBuilder().getBuilder(); + } + /** + * + * + *
    +     * Product price and cost information.
    +     * Google Merchant Center property
    +     * [price](https://support.google.com/merchants/answer/6324371).
    +     * 
    + * + * .google.cloud.retail.v2.PriceInfo price_info = 2; + */ + public com.google.cloud.retail.v2.PriceInfoOrBuilder getPriceInfoOrBuilder() { + if (priceInfoBuilder_ != null) { + return priceInfoBuilder_.getMessageOrBuilder(); + } else { + return priceInfo_ == null + ? com.google.cloud.retail.v2.PriceInfo.getDefaultInstance() + : priceInfo_; + } + } + /** + * + * + *
    +     * Product price and cost information.
    +     * Google Merchant Center property
    +     * [price](https://support.google.com/merchants/answer/6324371).
    +     * 
    + * + * .google.cloud.retail.v2.PriceInfo price_info = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.retail.v2.PriceInfo, + com.google.cloud.retail.v2.PriceInfo.Builder, + com.google.cloud.retail.v2.PriceInfoOrBuilder> + getPriceInfoFieldBuilder() { + if (priceInfoBuilder_ == null) { + priceInfoBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.retail.v2.PriceInfo, + com.google.cloud.retail.v2.PriceInfo.Builder, + com.google.cloud.retail.v2.PriceInfoOrBuilder>( + getPriceInfo(), getParentForChildren(), isClean()); + priceInfo_ = null; + } + return priceInfoBuilder_; + } + + private com.google.protobuf.MapField< + java.lang.String, com.google.cloud.retail.v2.CustomAttribute> + attributes_; + + private com.google.protobuf.MapField< + java.lang.String, com.google.cloud.retail.v2.CustomAttribute> + internalGetAttributes() { + if (attributes_ == null) { + return com.google.protobuf.MapField.emptyMapField( + AttributesDefaultEntryHolder.defaultEntry); + } + return attributes_; + } + + private com.google.protobuf.MapField< + java.lang.String, com.google.cloud.retail.v2.CustomAttribute> + internalGetMutableAttributes() { + onChanged(); + ; + if (attributes_ == null) { + attributes_ = + com.google.protobuf.MapField.newMapField(AttributesDefaultEntryHolder.defaultEntry); + } + if (!attributes_.isMutable()) { + attributes_ = attributes_.copy(); + } + return attributes_; + } + + public int getAttributesCount() { + return internalGetAttributes().getMap().size(); + } + /** + * + * + *
    +     * Additional local inventory attributes, for example, store name, promotion
    +     * tags, etc.
    +     * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +     * error is returned:
    +     * * At most 30 attributes are allowed.
    +     * * The key must be a UTF-8 encoded string with a length limit of 32
    +     *   characters.
    +     * * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example,
    +     *   key0LikeThis or KEY_1_LIKE_THIS.
    +     * * The attribute values must be of the same type (text or number).
    +     * * Only 1 value is allowed for each attribute.
    +     * * For text values, the length limit is 256 UTF-8 characters.
    +     * * The attribute does not support search. The `searchable` field should be
    +     *   unset or set to false.
    +     * * The max summed total bytes of custom attribute keys and values per
    +     *   product is 5MiB.
    +     * 
    + * + * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 3; + */ + @java.lang.Override + public boolean containsAttributes(java.lang.String key) { + if (key == null) { + throw new java.lang.NullPointerException(); + } + return internalGetAttributes().getMap().containsKey(key); + } + /** Use {@link #getAttributesMap()} instead. */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map + getAttributes() { + return getAttributesMap(); + } + /** + * + * + *
    +     * Additional local inventory attributes, for example, store name, promotion
    +     * tags, etc.
    +     * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +     * error is returned:
    +     * * At most 30 attributes are allowed.
    +     * * The key must be a UTF-8 encoded string with a length limit of 32
    +     *   characters.
    +     * * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example,
    +     *   key0LikeThis or KEY_1_LIKE_THIS.
    +     * * The attribute values must be of the same type (text or number).
    +     * * Only 1 value is allowed for each attribute.
    +     * * For text values, the length limit is 256 UTF-8 characters.
    +     * * The attribute does not support search. The `searchable` field should be
    +     *   unset or set to false.
    +     * * The max summed total bytes of custom attribute keys and values per
    +     *   product is 5MiB.
    +     * 
    + * + * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 3; + */ + @java.lang.Override + public java.util.Map + getAttributesMap() { + return internalGetAttributes().getMap(); + } + /** + * + * + *
    +     * Additional local inventory attributes, for example, store name, promotion
    +     * tags, etc.
    +     * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +     * error is returned:
    +     * * At most 30 attributes are allowed.
    +     * * The key must be a UTF-8 encoded string with a length limit of 32
    +     *   characters.
    +     * * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example,
    +     *   key0LikeThis or KEY_1_LIKE_THIS.
    +     * * The attribute values must be of the same type (text or number).
    +     * * Only 1 value is allowed for each attribute.
    +     * * For text values, the length limit is 256 UTF-8 characters.
    +     * * The attribute does not support search. The `searchable` field should be
    +     *   unset or set to false.
    +     * * The max summed total bytes of custom attribute keys and values per
    +     *   product is 5MiB.
    +     * 
    + * + * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 3; + */ + @java.lang.Override + public com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( + java.lang.String key, com.google.cloud.retail.v2.CustomAttribute defaultValue) { + if (key == null) { + throw new java.lang.NullPointerException(); + } + java.util.Map map = + internalGetAttributes().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * + * + *
    +     * Additional local inventory attributes, for example, store name, promotion
    +     * tags, etc.
    +     * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +     * error is returned:
    +     * * At most 30 attributes are allowed.
    +     * * The key must be a UTF-8 encoded string with a length limit of 32
    +     *   characters.
    +     * * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example,
    +     *   key0LikeThis or KEY_1_LIKE_THIS.
    +     * * The attribute values must be of the same type (text or number).
    +     * * Only 1 value is allowed for each attribute.
    +     * * For text values, the length limit is 256 UTF-8 characters.
    +     * * The attribute does not support search. The `searchable` field should be
    +     *   unset or set to false.
    +     * * The max summed total bytes of custom attribute keys and values per
    +     *   product is 5MiB.
    +     * 
    + * + * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 3; + */ + @java.lang.Override + public com.google.cloud.retail.v2.CustomAttribute getAttributesOrThrow(java.lang.String key) { + if (key == null) { + throw new java.lang.NullPointerException(); + } + java.util.Map map = + internalGetAttributes().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearAttributes() { + internalGetMutableAttributes().getMutableMap().clear(); + return this; + } + /** + * + * + *
    +     * Additional local inventory attributes, for example, store name, promotion
    +     * tags, etc.
    +     * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +     * error is returned:
    +     * * At most 30 attributes are allowed.
    +     * * The key must be a UTF-8 encoded string with a length limit of 32
    +     *   characters.
    +     * * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example,
    +     *   key0LikeThis or KEY_1_LIKE_THIS.
    +     * * The attribute values must be of the same type (text or number).
    +     * * Only 1 value is allowed for each attribute.
    +     * * For text values, the length limit is 256 UTF-8 characters.
    +     * * The attribute does not support search. The `searchable` field should be
    +     *   unset or set to false.
    +     * * The max summed total bytes of custom attribute keys and values per
    +     *   product is 5MiB.
    +     * 
    + * + * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 3; + */ + public Builder removeAttributes(java.lang.String key) { + if (key == null) { + throw new java.lang.NullPointerException(); + } + internalGetMutableAttributes().getMutableMap().remove(key); + return this; + } + /** Use alternate mutation accessors instead. */ + @java.lang.Deprecated + public java.util.Map + getMutableAttributes() { + return internalGetMutableAttributes().getMutableMap(); + } + /** + * + * + *
    +     * Additional local inventory attributes, for example, store name, promotion
    +     * tags, etc.
    +     * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +     * error is returned:
    +     * * At most 30 attributes are allowed.
    +     * * The key must be a UTF-8 encoded string with a length limit of 32
    +     *   characters.
    +     * * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example,
    +     *   key0LikeThis or KEY_1_LIKE_THIS.
    +     * * The attribute values must be of the same type (text or number).
    +     * * Only 1 value is allowed for each attribute.
    +     * * For text values, the length limit is 256 UTF-8 characters.
    +     * * The attribute does not support search. The `searchable` field should be
    +     *   unset or set to false.
    +     * * The max summed total bytes of custom attribute keys and values per
    +     *   product is 5MiB.
    +     * 
    + * + * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 3; + */ + public Builder putAttributes( + java.lang.String key, com.google.cloud.retail.v2.CustomAttribute value) { + if (key == null) { + throw new java.lang.NullPointerException(); + } + if (value == null) { + throw new java.lang.NullPointerException(); + } + internalGetMutableAttributes().getMutableMap().put(key, value); + return this; + } + /** + * + * + *
    +     * Additional local inventory attributes, for example, store name, promotion
    +     * tags, etc.
    +     * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +     * error is returned:
    +     * * At most 30 attributes are allowed.
    +     * * The key must be a UTF-8 encoded string with a length limit of 32
    +     *   characters.
    +     * * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example,
    +     *   key0LikeThis or KEY_1_LIKE_THIS.
    +     * * The attribute values must be of the same type (text or number).
    +     * * Only 1 value is allowed for each attribute.
    +     * * For text values, the length limit is 256 UTF-8 characters.
    +     * * The attribute does not support search. The `searchable` field should be
    +     *   unset or set to false.
    +     * * The max summed total bytes of custom attribute keys and values per
    +     *   product is 5MiB.
    +     * 
    + * + * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 3; + */ + public Builder putAllAttributes( + java.util.Map values) { + internalGetMutableAttributes().getMutableMap().putAll(values); + return this; + } + + private com.google.protobuf.LazyStringList fulfillmentTypes_ = + com.google.protobuf.LazyStringArrayList.EMPTY; + + private void ensureFulfillmentTypesIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + fulfillmentTypes_ = new com.google.protobuf.LazyStringArrayList(fulfillmentTypes_); + bitField0_ |= 0x00000002; + } + } + /** + * + * + *
    +     * Input only. Supported fulfillment types. Valid fulfillment type values
    +     * include commonly used types (such as pickup in store and same day
    +     * delivery), and custom types. Customers have to map custom types to their
    +     * display names before rendering UI.
    +     * Supported values:
    +     * * "pickup-in-store"
    +     * * "ship-to-store"
    +     * * "same-day-delivery"
    +     * * "next-day-delivery"
    +     * * "custom-type-1"
    +     * * "custom-type-2"
    +     * * "custom-type-3"
    +     * * "custom-type-4"
    +     * * "custom-type-5"
    +     * If this field is set to an invalid value other than these, an
    +     * INVALID_ARGUMENT error is returned.
    +     * All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
    +     * 
    + * + * repeated string fulfillment_types = 4 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * + * @return A list containing the fulfillmentTypes. + */ + public com.google.protobuf.ProtocolStringList getFulfillmentTypesList() { + return fulfillmentTypes_.getUnmodifiableView(); + } + /** + * + * + *
    +     * Input only. Supported fulfillment types. Valid fulfillment type values
    +     * include commonly used types (such as pickup in store and same day
    +     * delivery), and custom types. Customers have to map custom types to their
    +     * display names before rendering UI.
    +     * Supported values:
    +     * * "pickup-in-store"
    +     * * "ship-to-store"
    +     * * "same-day-delivery"
    +     * * "next-day-delivery"
    +     * * "custom-type-1"
    +     * * "custom-type-2"
    +     * * "custom-type-3"
    +     * * "custom-type-4"
    +     * * "custom-type-5"
    +     * If this field is set to an invalid value other than these, an
    +     * INVALID_ARGUMENT error is returned.
    +     * All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
    +     * 
    + * + * repeated string fulfillment_types = 4 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * + * @return The count of fulfillmentTypes. + */ + public int getFulfillmentTypesCount() { + return fulfillmentTypes_.size(); + } + /** + * + * + *
    +     * Input only. Supported fulfillment types. Valid fulfillment type values
    +     * include commonly used types (such as pickup in store and same day
    +     * delivery), and custom types. Customers have to map custom types to their
    +     * display names before rendering UI.
    +     * Supported values:
    +     * * "pickup-in-store"
    +     * * "ship-to-store"
    +     * * "same-day-delivery"
    +     * * "next-day-delivery"
    +     * * "custom-type-1"
    +     * * "custom-type-2"
    +     * * "custom-type-3"
    +     * * "custom-type-4"
    +     * * "custom-type-5"
    +     * If this field is set to an invalid value other than these, an
    +     * INVALID_ARGUMENT error is returned.
    +     * All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
    +     * 
    + * + * repeated string fulfillment_types = 4 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * + * @param index The index of the element to return. + * @return The fulfillmentTypes at the given index. + */ + public java.lang.String getFulfillmentTypes(int index) { + return fulfillmentTypes_.get(index); + } + /** + * + * + *
    +     * Input only. Supported fulfillment types. Valid fulfillment type values
    +     * include commonly used types (such as pickup in store and same day
    +     * delivery), and custom types. Customers have to map custom types to their
    +     * display names before rendering UI.
    +     * Supported values:
    +     * * "pickup-in-store"
    +     * * "ship-to-store"
    +     * * "same-day-delivery"
    +     * * "next-day-delivery"
    +     * * "custom-type-1"
    +     * * "custom-type-2"
    +     * * "custom-type-3"
    +     * * "custom-type-4"
    +     * * "custom-type-5"
    +     * If this field is set to an invalid value other than these, an
    +     * INVALID_ARGUMENT error is returned.
    +     * All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
    +     * 
    + * + * repeated string fulfillment_types = 4 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * + * @param index The index of the value to return. + * @return The bytes of the fulfillmentTypes at the given index. + */ + public com.google.protobuf.ByteString getFulfillmentTypesBytes(int index) { + return fulfillmentTypes_.getByteString(index); + } + /** + * + * + *
    +     * Input only. Supported fulfillment types. Valid fulfillment type values
    +     * include commonly used types (such as pickup in store and same day
    +     * delivery), and custom types. Customers have to map custom types to their
    +     * display names before rendering UI.
    +     * Supported values:
    +     * * "pickup-in-store"
    +     * * "ship-to-store"
    +     * * "same-day-delivery"
    +     * * "next-day-delivery"
    +     * * "custom-type-1"
    +     * * "custom-type-2"
    +     * * "custom-type-3"
    +     * * "custom-type-4"
    +     * * "custom-type-5"
    +     * If this field is set to an invalid value other than these, an
    +     * INVALID_ARGUMENT error is returned.
    +     * All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
    +     * 
    + * + * repeated string fulfillment_types = 4 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * + * @param index The index to set the value at. + * @param value The fulfillmentTypes to set. + * @return This builder for chaining. + */ + public Builder setFulfillmentTypes(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureFulfillmentTypesIsMutable(); + fulfillmentTypes_.set(index, value); + onChanged(); + return this; + } + /** + * + * + *
    +     * Input only. Supported fulfillment types. Valid fulfillment type values
    +     * include commonly used types (such as pickup in store and same day
    +     * delivery), and custom types. Customers have to map custom types to their
    +     * display names before rendering UI.
    +     * Supported values:
    +     * * "pickup-in-store"
    +     * * "ship-to-store"
    +     * * "same-day-delivery"
    +     * * "next-day-delivery"
    +     * * "custom-type-1"
    +     * * "custom-type-2"
    +     * * "custom-type-3"
    +     * * "custom-type-4"
    +     * * "custom-type-5"
    +     * If this field is set to an invalid value other than these, an
    +     * INVALID_ARGUMENT error is returned.
    +     * All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
    +     * 
    + * + * repeated string fulfillment_types = 4 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * + * @param value The fulfillmentTypes to add. + * @return This builder for chaining. + */ + public Builder addFulfillmentTypes(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureFulfillmentTypesIsMutable(); + fulfillmentTypes_.add(value); + onChanged(); + return this; + } + /** + * + * + *
    +     * Input only. Supported fulfillment types. Valid fulfillment type values
    +     * include commonly used types (such as pickup in store and same day
    +     * delivery), and custom types. Customers have to map custom types to their
    +     * display names before rendering UI.
    +     * Supported values:
    +     * * "pickup-in-store"
    +     * * "ship-to-store"
    +     * * "same-day-delivery"
    +     * * "next-day-delivery"
    +     * * "custom-type-1"
    +     * * "custom-type-2"
    +     * * "custom-type-3"
    +     * * "custom-type-4"
    +     * * "custom-type-5"
    +     * If this field is set to an invalid value other than these, an
    +     * INVALID_ARGUMENT error is returned.
    +     * All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
    +     * 
    + * + * repeated string fulfillment_types = 4 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * + * @param values The fulfillmentTypes to add. + * @return This builder for chaining. + */ + public Builder addAllFulfillmentTypes(java.lang.Iterable values) { + ensureFulfillmentTypesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, fulfillmentTypes_); + onChanged(); + return this; + } + /** + * + * + *
    +     * Input only. Supported fulfillment types. Valid fulfillment type values
    +     * include commonly used types (such as pickup in store and same day
    +     * delivery), and custom types. Customers have to map custom types to their
    +     * display names before rendering UI.
    +     * Supported values:
    +     * * "pickup-in-store"
    +     * * "ship-to-store"
    +     * * "same-day-delivery"
    +     * * "next-day-delivery"
    +     * * "custom-type-1"
    +     * * "custom-type-2"
    +     * * "custom-type-3"
    +     * * "custom-type-4"
    +     * * "custom-type-5"
    +     * If this field is set to an invalid value other than these, an
    +     * INVALID_ARGUMENT error is returned.
    +     * All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
    +     * 
    + * + * repeated string fulfillment_types = 4 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * + * @return This builder for chaining. + */ + public Builder clearFulfillmentTypes() { + fulfillmentTypes_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * + * + *
    +     * Input only. Supported fulfillment types. Valid fulfillment type values
    +     * include commonly used types (such as pickup in store and same day
    +     * delivery), and custom types. Customers have to map custom types to their
    +     * display names before rendering UI.
    +     * Supported values:
    +     * * "pickup-in-store"
    +     * * "ship-to-store"
    +     * * "same-day-delivery"
    +     * * "next-day-delivery"
    +     * * "custom-type-1"
    +     * * "custom-type-2"
    +     * * "custom-type-3"
    +     * * "custom-type-4"
    +     * * "custom-type-5"
    +     * If this field is set to an invalid value other than these, an
    +     * INVALID_ARGUMENT error is returned.
    +     * All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +     * returned.
    +     * 
    + * + * repeated string fulfillment_types = 4 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * + * @param value The bytes of the fulfillmentTypes to add. + * @return This builder for chaining. + */ + public Builder addFulfillmentTypesBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureFulfillmentTypesIsMutable(); + fulfillmentTypes_.add(value); + 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.LocalInventory) + } + + // @@protoc_insertion_point(class_scope:google.cloud.retail.v2.LocalInventory) + private static final com.google.cloud.retail.v2.LocalInventory DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.retail.v2.LocalInventory(); + } + + public static com.google.cloud.retail.v2.LocalInventory getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public LocalInventory parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new LocalInventory(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.LocalInventory getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/LocalInventoryOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/LocalInventoryOrBuilder.java new file mode 100644 index 00000000..b66cd2fd --- /dev/null +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/LocalInventoryOrBuilder.java @@ -0,0 +1,340 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/retail/v2/common.proto + +package com.google.cloud.retail.v2; + +public interface LocalInventoryOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.retail.v2.LocalInventory) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
    +   * The place ID for the current set of inventory information.
    +   * 
    + * + * string place_id = 1; + * + * @return The placeId. + */ + java.lang.String getPlaceId(); + /** + * + * + *
    +   * The place ID for the current set of inventory information.
    +   * 
    + * + * string place_id = 1; + * + * @return The bytes for placeId. + */ + com.google.protobuf.ByteString getPlaceIdBytes(); + + /** + * + * + *
    +   * Product price and cost information.
    +   * Google Merchant Center property
    +   * [price](https://support.google.com/merchants/answer/6324371).
    +   * 
    + * + * .google.cloud.retail.v2.PriceInfo price_info = 2; + * + * @return Whether the priceInfo field is set. + */ + boolean hasPriceInfo(); + /** + * + * + *
    +   * Product price and cost information.
    +   * Google Merchant Center property
    +   * [price](https://support.google.com/merchants/answer/6324371).
    +   * 
    + * + * .google.cloud.retail.v2.PriceInfo price_info = 2; + * + * @return The priceInfo. + */ + com.google.cloud.retail.v2.PriceInfo getPriceInfo(); + /** + * + * + *
    +   * Product price and cost information.
    +   * Google Merchant Center property
    +   * [price](https://support.google.com/merchants/answer/6324371).
    +   * 
    + * + * .google.cloud.retail.v2.PriceInfo price_info = 2; + */ + com.google.cloud.retail.v2.PriceInfoOrBuilder getPriceInfoOrBuilder(); + + /** + * + * + *
    +   * Additional local inventory attributes, for example, store name, promotion
    +   * tags, etc.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * At most 30 attributes are allowed.
    +   * * The key must be a UTF-8 encoded string with a length limit of 32
    +   *   characters.
    +   * * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example,
    +   *   key0LikeThis or KEY_1_LIKE_THIS.
    +   * * The attribute values must be of the same type (text or number).
    +   * * Only 1 value is allowed for each attribute.
    +   * * For text values, the length limit is 256 UTF-8 characters.
    +   * * The attribute does not support search. The `searchable` field should be
    +   *   unset or set to false.
    +   * * The max summed total bytes of custom attribute keys and values per
    +   *   product is 5MiB.
    +   * 
    + * + * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 3; + */ + int getAttributesCount(); + /** + * + * + *
    +   * Additional local inventory attributes, for example, store name, promotion
    +   * tags, etc.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * At most 30 attributes are allowed.
    +   * * The key must be a UTF-8 encoded string with a length limit of 32
    +   *   characters.
    +   * * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example,
    +   *   key0LikeThis or KEY_1_LIKE_THIS.
    +   * * The attribute values must be of the same type (text or number).
    +   * * Only 1 value is allowed for each attribute.
    +   * * For text values, the length limit is 256 UTF-8 characters.
    +   * * The attribute does not support search. The `searchable` field should be
    +   *   unset or set to false.
    +   * * The max summed total bytes of custom attribute keys and values per
    +   *   product is 5MiB.
    +   * 
    + * + * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 3; + */ + boolean containsAttributes(java.lang.String key); + /** Use {@link #getAttributesMap()} instead. */ + @java.lang.Deprecated + java.util.Map getAttributes(); + /** + * + * + *
    +   * Additional local inventory attributes, for example, store name, promotion
    +   * tags, etc.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * At most 30 attributes are allowed.
    +   * * The key must be a UTF-8 encoded string with a length limit of 32
    +   *   characters.
    +   * * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example,
    +   *   key0LikeThis or KEY_1_LIKE_THIS.
    +   * * The attribute values must be of the same type (text or number).
    +   * * Only 1 value is allowed for each attribute.
    +   * * For text values, the length limit is 256 UTF-8 characters.
    +   * * The attribute does not support search. The `searchable` field should be
    +   *   unset or set to false.
    +   * * The max summed total bytes of custom attribute keys and values per
    +   *   product is 5MiB.
    +   * 
    + * + * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 3; + */ + java.util.Map getAttributesMap(); + /** + * + * + *
    +   * Additional local inventory attributes, for example, store name, promotion
    +   * tags, etc.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * At most 30 attributes are allowed.
    +   * * The key must be a UTF-8 encoded string with a length limit of 32
    +   *   characters.
    +   * * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example,
    +   *   key0LikeThis or KEY_1_LIKE_THIS.
    +   * * The attribute values must be of the same type (text or number).
    +   * * Only 1 value is allowed for each attribute.
    +   * * For text values, the length limit is 256 UTF-8 characters.
    +   * * The attribute does not support search. The `searchable` field should be
    +   *   unset or set to false.
    +   * * The max summed total bytes of custom attribute keys and values per
    +   *   product is 5MiB.
    +   * 
    + * + * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 3; + */ + com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( + java.lang.String key, com.google.cloud.retail.v2.CustomAttribute defaultValue); + /** + * + * + *
    +   * Additional local inventory attributes, for example, store name, promotion
    +   * tags, etc.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * At most 30 attributes are allowed.
    +   * * The key must be a UTF-8 encoded string with a length limit of 32
    +   *   characters.
    +   * * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example,
    +   *   key0LikeThis or KEY_1_LIKE_THIS.
    +   * * The attribute values must be of the same type (text or number).
    +   * * Only 1 value is allowed for each attribute.
    +   * * For text values, the length limit is 256 UTF-8 characters.
    +   * * The attribute does not support search. The `searchable` field should be
    +   *   unset or set to false.
    +   * * The max summed total bytes of custom attribute keys and values per
    +   *   product is 5MiB.
    +   * 
    + * + * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 3; + */ + com.google.cloud.retail.v2.CustomAttribute getAttributesOrThrow(java.lang.String key); + + /** + * + * + *
    +   * Input only. Supported fulfillment types. Valid fulfillment type values
    +   * include commonly used types (such as pickup in store and same day
    +   * delivery), and custom types. Customers have to map custom types to their
    +   * display names before rendering UI.
    +   * Supported values:
    +   * * "pickup-in-store"
    +   * * "ship-to-store"
    +   * * "same-day-delivery"
    +   * * "next-day-delivery"
    +   * * "custom-type-1"
    +   * * "custom-type-2"
    +   * * "custom-type-3"
    +   * * "custom-type-4"
    +   * * "custom-type-5"
    +   * If this field is set to an invalid value other than these, an
    +   * INVALID_ARGUMENT error is returned.
    +   * All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +   * returned.
    +   * 
    + * + * repeated string fulfillment_types = 4 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * @return A list containing the fulfillmentTypes. + */ + java.util.List getFulfillmentTypesList(); + /** + * + * + *
    +   * Input only. Supported fulfillment types. Valid fulfillment type values
    +   * include commonly used types (such as pickup in store and same day
    +   * delivery), and custom types. Customers have to map custom types to their
    +   * display names before rendering UI.
    +   * Supported values:
    +   * * "pickup-in-store"
    +   * * "ship-to-store"
    +   * * "same-day-delivery"
    +   * * "next-day-delivery"
    +   * * "custom-type-1"
    +   * * "custom-type-2"
    +   * * "custom-type-3"
    +   * * "custom-type-4"
    +   * * "custom-type-5"
    +   * If this field is set to an invalid value other than these, an
    +   * INVALID_ARGUMENT error is returned.
    +   * All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +   * returned.
    +   * 
    + * + * repeated string fulfillment_types = 4 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * @return The count of fulfillmentTypes. + */ + int getFulfillmentTypesCount(); + /** + * + * + *
    +   * Input only. Supported fulfillment types. Valid fulfillment type values
    +   * include commonly used types (such as pickup in store and same day
    +   * delivery), and custom types. Customers have to map custom types to their
    +   * display names before rendering UI.
    +   * Supported values:
    +   * * "pickup-in-store"
    +   * * "ship-to-store"
    +   * * "same-day-delivery"
    +   * * "next-day-delivery"
    +   * * "custom-type-1"
    +   * * "custom-type-2"
    +   * * "custom-type-3"
    +   * * "custom-type-4"
    +   * * "custom-type-5"
    +   * If this field is set to an invalid value other than these, an
    +   * INVALID_ARGUMENT error is returned.
    +   * All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +   * returned.
    +   * 
    + * + * repeated string fulfillment_types = 4 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * @param index The index of the element to return. + * @return The fulfillmentTypes at the given index. + */ + java.lang.String getFulfillmentTypes(int index); + /** + * + * + *
    +   * Input only. Supported fulfillment types. Valid fulfillment type values
    +   * include commonly used types (such as pickup in store and same day
    +   * delivery), and custom types. Customers have to map custom types to their
    +   * display names before rendering UI.
    +   * Supported values:
    +   * * "pickup-in-store"
    +   * * "ship-to-store"
    +   * * "same-day-delivery"
    +   * * "next-day-delivery"
    +   * * "custom-type-1"
    +   * * "custom-type-2"
    +   * * "custom-type-3"
    +   * * "custom-type-4"
    +   * * "custom-type-5"
    +   * If this field is set to an invalid value other than these, an
    +   * INVALID_ARGUMENT error is returned.
    +   * All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +   * returned.
    +   * 
    + * + * repeated string fulfillment_types = 4 [(.google.api.field_behavior) = INPUT_ONLY]; + * + * @param index The index of the value to return. + * @return The bytes of the fulfillmentTypes at the given index. + */ + com.google.protobuf.ByteString getFulfillmentTypesBytes(int index); +} 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 e7b0fe67..81803359 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 @@ -412,9 +412,12 @@ public com.google.protobuf.ByteString getPageTokenBytes() { * * tag=("Red" OR "Blue") tag="New-Arrival" tag=(NOT "promotional") * * filterOutOfStockItems tag=(-"promotional") * * filterOutOfStockItems - * If your filter blocks all prediction results, nothing will be returned. If - * you want generic (unfiltered) popular products to be returned instead, set - * `strictFiltering` to false in `PredictRequest.params`. + * If your filter blocks all prediction results, the API will return generic + * (unfiltered) popular products. If you only want results strictly matching + * the filters, set `strictFiltering` to True in `PredictRequest.params` to + * receive empty results instead. + * Note that the API will never return items with storageStatus of "EXPIRED" + * or "DELETED" regardless of filter choices. *
    * * string filter = 5; @@ -454,9 +457,12 @@ public java.lang.String getFilter() { * * tag=("Red" OR "Blue") tag="New-Arrival" tag=(NOT "promotional") * * filterOutOfStockItems tag=(-"promotional") * * filterOutOfStockItems - * If your filter blocks all prediction results, nothing will be returned. If - * you want generic (unfiltered) popular products to be returned instead, set - * `strictFiltering` to false in `PredictRequest.params`. + * If your filter blocks all prediction results, the API will return generic + * (unfiltered) popular products. If you only want results strictly matching + * the filters, set `strictFiltering` to True in `PredictRequest.params` to + * receive empty results instead. + * Note that the API will never return items with storageStatus of "EXPIRED" + * or "DELETED" regardless of filter choices. *
    * * string filter = 5; @@ -1876,9 +1882,12 @@ public Builder setPageTokenBytes(com.google.protobuf.ByteString value) { * * tag=("Red" OR "Blue") tag="New-Arrival" tag=(NOT "promotional") * * filterOutOfStockItems tag=(-"promotional") * * filterOutOfStockItems - * If your filter blocks all prediction results, nothing will be returned. If - * you want generic (unfiltered) popular products to be returned instead, set - * `strictFiltering` to false in `PredictRequest.params`. + * If your filter blocks all prediction results, the API will return generic + * (unfiltered) popular products. If you only want results strictly matching + * the filters, set `strictFiltering` to True in `PredictRequest.params` to + * receive empty results instead. + * Note that the API will never return items with storageStatus of "EXPIRED" + * or "DELETED" regardless of filter choices. *
    * * string filter = 5; @@ -1917,9 +1926,12 @@ public java.lang.String getFilter() { * * tag=("Red" OR "Blue") tag="New-Arrival" tag=(NOT "promotional") * * filterOutOfStockItems tag=(-"promotional") * * filterOutOfStockItems - * If your filter blocks all prediction results, nothing will be returned. If - * you want generic (unfiltered) popular products to be returned instead, set - * `strictFiltering` to false in `PredictRequest.params`. + * If your filter blocks all prediction results, the API will return generic + * (unfiltered) popular products. If you only want results strictly matching + * the filters, set `strictFiltering` to True in `PredictRequest.params` to + * receive empty results instead. + * Note that the API will never return items with storageStatus of "EXPIRED" + * or "DELETED" regardless of filter choices. *
    * * string filter = 5; @@ -1958,9 +1970,12 @@ public com.google.protobuf.ByteString getFilterBytes() { * * tag=("Red" OR "Blue") tag="New-Arrival" tag=(NOT "promotional") * * filterOutOfStockItems tag=(-"promotional") * * filterOutOfStockItems - * If your filter blocks all prediction results, nothing will be returned. If - * you want generic (unfiltered) popular products to be returned instead, set - * `strictFiltering` to false in `PredictRequest.params`. + * If your filter blocks all prediction results, the API will return generic + * (unfiltered) popular products. If you only want results strictly matching + * the filters, set `strictFiltering` to True in `PredictRequest.params` to + * receive empty results instead. + * Note that the API will never return items with storageStatus of "EXPIRED" + * or "DELETED" regardless of filter choices. *
    * * string filter = 5; @@ -1998,9 +2013,12 @@ public Builder setFilter(java.lang.String value) { * * tag=("Red" OR "Blue") tag="New-Arrival" tag=(NOT "promotional") * * filterOutOfStockItems tag=(-"promotional") * * filterOutOfStockItems - * If your filter blocks all prediction results, nothing will be returned. If - * you want generic (unfiltered) popular products to be returned instead, set - * `strictFiltering` to false in `PredictRequest.params`. + * If your filter blocks all prediction results, the API will return generic + * (unfiltered) popular products. If you only want results strictly matching + * the filters, set `strictFiltering` to True in `PredictRequest.params` to + * receive empty results instead. + * Note that the API will never return items with storageStatus of "EXPIRED" + * or "DELETED" regardless of filter choices. *
    * * string filter = 5; @@ -2034,9 +2052,12 @@ public Builder clearFilter() { * * tag=("Red" OR "Blue") tag="New-Arrival" tag=(NOT "promotional") * * filterOutOfStockItems tag=(-"promotional") * * filterOutOfStockItems - * If your filter blocks all prediction results, nothing will be returned. If - * you want generic (unfiltered) popular products to be returned instead, set - * `strictFiltering` to false in `PredictRequest.params`. + * If your filter blocks all prediction results, the API will return generic + * (unfiltered) popular products. If you only want results strictly matching + * the filters, set `strictFiltering` to True in `PredictRequest.params` to + * receive empty results instead. + * Note that the API will never return items with storageStatus of "EXPIRED" + * or "DELETED" regardless of filter choices. *
    * * string filter = 5; 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 24fd483e..1ad99fd8 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 @@ -174,9 +174,12 @@ public interface PredictRequestOrBuilder * * tag=("Red" OR "Blue") tag="New-Arrival" tag=(NOT "promotional") * * filterOutOfStockItems tag=(-"promotional") * * filterOutOfStockItems - * If your filter blocks all prediction results, nothing will be returned. If - * you want generic (unfiltered) popular products to be returned instead, set - * `strictFiltering` to false in `PredictRequest.params`. + * If your filter blocks all prediction results, the API will return generic + * (unfiltered) popular products. If you only want results strictly matching + * the filters, set `strictFiltering` to True in `PredictRequest.params` to + * receive empty results instead. + * Note that the API will never return items with storageStatus of "EXPIRED" + * or "DELETED" regardless of filter choices. *
    * * string filter = 5; @@ -205,9 +208,12 @@ public interface PredictRequestOrBuilder * * tag=("Red" OR "Blue") tag="New-Arrival" tag=(NOT "promotional") * * filterOutOfStockItems tag=(-"promotional") * * filterOutOfStockItems - * If your filter blocks all prediction results, nothing will be returned. If - * you want generic (unfiltered) popular products to be returned instead, set - * `strictFiltering` to false in `PredictRequest.params`. + * If your filter blocks all prediction results, the API will return generic + * (unfiltered) popular products. If you only want results strictly matching + * the filters, set `strictFiltering` to True in `PredictRequest.params` to + * receive empty results instead. + * Note that the API will never return items with storageStatus of "EXPIRED" + * or "DELETED" regardless of filter choices. *
    * * string filter = 5; 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 71da381f..578ee8f7 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 @@ -1439,7 +1439,7 @@ public com.google.protobuf.ByteString getCurrencyCodeBytes() { * Price of the product. * Google Merchant Center property * [price](https://support.google.com/merchants/answer/6324371). Schema.org - * property [Offer.priceSpecification](https://schema.org/priceSpecification). + * property [Offer.price](https://schema.org/price). *
    * * float price = 2; @@ -2337,7 +2337,7 @@ public Builder setCurrencyCodeBytes(com.google.protobuf.ByteString value) { * Price of the product. * Google Merchant Center property * [price](https://support.google.com/merchants/answer/6324371). Schema.org - * property [Offer.priceSpecification](https://schema.org/priceSpecification). + * property [Offer.price](https://schema.org/price). *
    * * float price = 2; @@ -2355,7 +2355,7 @@ public float getPrice() { * Price of the product. * Google Merchant Center property * [price](https://support.google.com/merchants/answer/6324371). Schema.org - * property [Offer.priceSpecification](https://schema.org/priceSpecification). + * property [Offer.price](https://schema.org/price). *
    * * float price = 2; @@ -2376,7 +2376,7 @@ public Builder setPrice(float value) { * Price of the product. * Google Merchant Center property * [price](https://support.google.com/merchants/answer/6324371). Schema.org - * property [Offer.priceSpecification](https://schema.org/priceSpecification). + * property [Offer.price](https://schema.org/price). *
    * * float price = 2; 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 07e79113..bf6756ab 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 @@ -73,7 +73,7 @@ public interface PriceInfoOrBuilder * Price of the product. * Google Merchant Center property * [price](https://support.google.com/merchants/answer/6324371). Schema.org - * property [Offer.priceSpecification](https://schema.org/priceSpecification). + * property [Offer.price](https://schema.org/price). *
    * * float price = 2; 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 9b92e0e7..f0a62ab2 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 @@ -1025,7 +1025,7 @@ public ExpirationCase getExpirationCase() { * than [available_time][google.cloud.retail.v2.Product.available_time] and * [publish_time][google.cloud.retail.v2.Product.publish_time], otherwise an * INVALID_ARGUMENT error is thrown. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [expiration_date](https://support.google.com/merchants/answer/6324499). *
    * @@ -1055,7 +1055,7 @@ public boolean hasExpireTime() { * than [available_time][google.cloud.retail.v2.Product.available_time] and * [publish_time][google.cloud.retail.v2.Product.publish_time], otherwise an * INVALID_ARGUMENT error is thrown. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [expiration_date](https://support.google.com/merchants/answer/6324499). *
    * @@ -1088,7 +1088,7 @@ public com.google.protobuf.Timestamp getExpireTime() { * than [available_time][google.cloud.retail.v2.Product.available_time] and * [publish_time][google.cloud.retail.v2.Product.publish_time], otherwise an * INVALID_ARGUMENT error is thrown. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [expiration_date](https://support.google.com/merchants/answer/6324499). *
    * @@ -1256,9 +1256,9 @@ public com.google.protobuf.ByteString getNameBytes() { * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. * This field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [id](https://support.google.com/merchants/answer/6324405). Schema.org - * Property [Product.sku](https://schema.org/sku). + * property [Product.sku](https://schema.org/sku). *
    * * string id = 2 [(.google.api.field_behavior) = IMMUTABLE]; @@ -1288,9 +1288,9 @@ public java.lang.String getId() { * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. * This field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [id](https://support.google.com/merchants/answer/6324405). Schema.org - * Property [Product.sku](https://schema.org/sku). + * property [Product.sku](https://schema.org/sku). *
    * * string id = 2 [(.google.api.field_behavior) = IMMUTABLE]; @@ -1369,12 +1369,10 @@ public com.google.cloud.retail.v2.Product.Type getType() { * [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] * [Product][google.cloud.retail.v2.Product]. Otherwise, an INVALID_ARGUMENT * error is returned. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [item_group_id](https://support.google.com/merchants/answer/6324507). - * Schema.org Property + * Schema.org property * [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). - * This field must be enabled before it can be used. [Learn - * more](/recommendations-ai/docs/catalog#item-group-id). *
    * * string primary_product_id = 4; @@ -1408,12 +1406,10 @@ public java.lang.String getPrimaryProductId() { * [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] * [Product][google.cloud.retail.v2.Product]. Otherwise, an INVALID_ARGUMENT * error is returned. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [item_group_id](https://support.google.com/merchants/answer/6324507). - * Schema.org Property + * Schema.org property * [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). - * This field must be enabled before it can be used. [Learn - * more](/recommendations-ai/docs/catalog#item-group-id). *
    * * string primary_product_id = 4; @@ -1442,8 +1438,13 @@ public com.google.protobuf.ByteString getPrimaryProductIdBytes() { * The [id][google.cloud.retail.v2.Product.id] of the collection members when * [type][google.cloud.retail.v2.Product.type] is * [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. - * Should not set it for other types. A maximum of 1000 values are allowed. - * Otherwise, an INVALID_ARGUMENT error is return. + * Non-existent product ids are allowed. + * The [type][google.cloud.retail.v2.Product.type] of the members must be + * either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + * [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and + * INVALID_ARGUMENT error is thrown. Should not set it for other types. A + * maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + * return. *
    * * repeated string collection_member_ids = 5; @@ -1460,8 +1461,13 @@ public com.google.protobuf.ProtocolStringList getCollectionMemberIdsList() { * The [id][google.cloud.retail.v2.Product.id] of the collection members when * [type][google.cloud.retail.v2.Product.type] is * [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. - * Should not set it for other types. A maximum of 1000 values are allowed. - * Otherwise, an INVALID_ARGUMENT error is return. + * Non-existent product ids are allowed. + * The [type][google.cloud.retail.v2.Product.type] of the members must be + * either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + * [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and + * INVALID_ARGUMENT error is thrown. Should not set it for other types. A + * maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + * return. *
    * * repeated string collection_member_ids = 5; @@ -1478,8 +1484,13 @@ public int getCollectionMemberIdsCount() { * The [id][google.cloud.retail.v2.Product.id] of the collection members when * [type][google.cloud.retail.v2.Product.type] is * [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. - * Should not set it for other types. A maximum of 1000 values are allowed. - * Otherwise, an INVALID_ARGUMENT error is return. + * Non-existent product ids are allowed. + * The [type][google.cloud.retail.v2.Product.type] of the members must be + * either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + * [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and + * INVALID_ARGUMENT error is thrown. Should not set it for other types. A + * maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + * return. *
    * * repeated string collection_member_ids = 5; @@ -1497,8 +1508,13 @@ public java.lang.String getCollectionMemberIds(int index) { * The [id][google.cloud.retail.v2.Product.id] of the collection members when * [type][google.cloud.retail.v2.Product.type] is * [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. - * Should not set it for other types. A maximum of 1000 values are allowed. - * Otherwise, an INVALID_ARGUMENT error is return. + * Non-existent product ids are allowed. + * The [type][google.cloud.retail.v2.Product.type] of the members must be + * either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + * [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and + * INVALID_ARGUMENT error is thrown. Should not set it for other types. A + * maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + * return. *
    * * repeated string collection_member_ids = 5; @@ -1521,13 +1537,13 @@ public com.google.protobuf.ByteString getCollectionMemberIdsBytes(int index) { * characters. Otherwise, an INVALID_ARGUMENT error is returned. * This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is * returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [gtin](https://support.google.com/merchants/answer/6324461). * Schema.org property - * [Product.isbn](https://schema.org/isbn) or - * [Product.gtin8](https://schema.org/gtin8) or - * [Product.gtin12](https://schema.org/gtin12) or - * [Product.gtin13](https://schema.org/gtin13) or + * [Product.isbn](https://schema.org/isbn), + * [Product.gtin8](https://schema.org/gtin8), + * [Product.gtin12](https://schema.org/gtin12), + * [Product.gtin13](https://schema.org/gtin13), or * [Product.gtin14](https://schema.org/gtin14). * If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. *
    @@ -1557,13 +1573,13 @@ public java.lang.String getGtin() { * characters. Otherwise, an INVALID_ARGUMENT error is returned. * This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is * returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [gtin](https://support.google.com/merchants/answer/6324461). * Schema.org property - * [Product.isbn](https://schema.org/isbn) or - * [Product.gtin8](https://schema.org/gtin8) or - * [Product.gtin12](https://schema.org/gtin12) or - * [Product.gtin13](https://schema.org/gtin13) or + * [Product.isbn](https://schema.org/isbn), + * [Product.gtin8](https://schema.org/gtin8), + * [Product.gtin12](https://schema.org/gtin12), + * [Product.gtin13](https://schema.org/gtin13), or * [Product.gtin14](https://schema.org/gtin14). * If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. *
    @@ -1612,7 +1628,7 @@ public com.google.protobuf.ByteString getGtinBytes() { * [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. * Each value must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [google_product_category][mc_google_product_category]. Schema.org property * [Product.category] (https://schema.org/category). * [mc_google_product_category]: @@ -1651,7 +1667,7 @@ public com.google.protobuf.ProtocolStringList getCategoriesList() { * [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. * Each value must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [google_product_category][mc_google_product_category]. Schema.org property * [Product.category] (https://schema.org/category). * [mc_google_product_category]: @@ -1690,7 +1706,7 @@ public int getCategoriesCount() { * [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. * Each value must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [google_product_category][mc_google_product_category]. Schema.org property * [Product.category] (https://schema.org/category). * [mc_google_product_category]: @@ -1730,7 +1746,7 @@ public java.lang.String getCategories(int index) { * [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. * Each value must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [google_product_category][mc_google_product_category]. Schema.org property * [Product.category] (https://schema.org/category). * [mc_google_product_category]: @@ -1755,7 +1771,7 @@ public com.google.protobuf.ByteString getCategoriesBytes(int index) { * Required. Product title. * This field must be a UTF-8 encoded string with a length limit of 1,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [title](https://support.google.com/merchants/answer/6324415). Schema.org * property [Product.name](https://schema.org/name). *
    @@ -1783,7 +1799,7 @@ public java.lang.String getTitle() { * Required. Product title. * This field must be a UTF-8 encoded string with a length limit of 1,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [title](https://support.google.com/merchants/answer/6324415). Schema.org * property [Product.name](https://schema.org/name). *
    @@ -1815,7 +1831,7 @@ public com.google.protobuf.ByteString getTitleBytes() { * A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded * string with a length limit of 1,000 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [brand](https://support.google.com/merchants/answer/6324351). Schema.org * property [Product.brand](https://schema.org/brand). *
    @@ -1835,7 +1851,7 @@ public com.google.protobuf.ProtocolStringList getBrandsList() { * A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded * string with a length limit of 1,000 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [brand](https://support.google.com/merchants/answer/6324351). Schema.org * property [Product.brand](https://schema.org/brand). *
    @@ -1855,7 +1871,7 @@ public int getBrandsCount() { * A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded * string with a length limit of 1,000 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [brand](https://support.google.com/merchants/answer/6324351). Schema.org * property [Product.brand](https://schema.org/brand). *
    @@ -1876,7 +1892,7 @@ public java.lang.String getBrands(int index) { * A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded * string with a length limit of 1,000 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [brand](https://support.google.com/merchants/answer/6324351). Schema.org * property [Product.brand](https://schema.org/brand). *
    @@ -1899,9 +1915,9 @@ public com.google.protobuf.ByteString getBrandsBytes(int index) { * Product description. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [description](https://support.google.com/merchants/answer/6324468). - * schema.org property [Product.description](https://schema.org/description). + * Schema.org property [Product.description](https://schema.org/description). *
    * * string description = 10; @@ -1927,9 +1943,9 @@ public java.lang.String getDescription() { * Product description. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [description](https://support.google.com/merchants/answer/6324468). - * schema.org property [Product.description](https://schema.org/description). + * Schema.org property [Product.description](https://schema.org/description). *
    * * string description = 10; @@ -1956,7 +1972,7 @@ public com.google.protobuf.ByteString getDescriptionBytes() { * *
        * Language of the title/description and other string attributes. Use language
    -   * tags defined by [BCP 47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt].
    +   * tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
        * For product prediction, this field is ignored and the model automatically
        * detects the text language. The [Product][google.cloud.retail.v2.Product]
        * can include text in different languages, but duplicating
    @@ -1986,7 +2002,7 @@ public java.lang.String getLanguageCode() {
        *
        * 
        * Language of the title/description and other string attributes. Use language
    -   * tags defined by [BCP 47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt].
    +   * tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
        * For product prediction, this field is ignored and the model automatically
        * detects the text language. The [Product][google.cloud.retail.v2.Product]
        * can include text in different languages, but duplicating
    @@ -2064,7 +2080,12 @@ public int getAttributesCount() {
        * * The key must be a UTF-8 encoded string with a length limit of 128
        *   characters.
        * * For indexable attribute, the key must match the pattern:
    -   *   `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS.
    +   *   `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or
    +   *   `KEY_1_LIKE_THIS`.
    +   * * For text attributes, at most 400 values are allowed. Empty values are not
    +   *   allowed. Each value must be a non-empty UTF-8 encoded string with a
    +   *   length limit of 256 characters.
    +   * * For number attributes, at most 400 values are allowed.
        * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 12; @@ -2105,7 +2126,12 @@ public boolean containsAttributes(java.lang.String key) { * * The key must be a UTF-8 encoded string with a length limit of 128 * characters. * * For indexable attribute, the key must match the pattern: - * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS. + * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or + * `KEY_1_LIKE_THIS`. + * * For text attributes, at most 400 values are allowed. Empty values are not + * allowed. Each value must be a non-empty UTF-8 encoded string with a + * length limit of 256 characters. + * * For number attributes, at most 400 values are allowed. *
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 12; @@ -2137,7 +2163,12 @@ public boolean containsAttributes(java.lang.String key) { * * The key must be a UTF-8 encoded string with a length limit of 128 * characters. * * For indexable attribute, the key must match the pattern: - * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS. + * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or + * `KEY_1_LIKE_THIS`. + * * For text attributes, at most 400 values are allowed. Empty values are not + * allowed. Each value must be a non-empty UTF-8 encoded string with a + * length limit of 256 characters. + * * For number attributes, at most 400 values are allowed. *
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 12; @@ -2174,7 +2205,12 @@ public com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * * The key must be a UTF-8 encoded string with a length limit of 128 * characters. * * For indexable attribute, the key must match the pattern: - * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS. + * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or + * `KEY_1_LIKE_THIS`. + * * For text attributes, at most 400 values are allowed. Empty values are not + * allowed. Each value must be a non-empty UTF-8 encoded string with a + * length limit of 256 characters. + * * For number attributes, at most 400 values are allowed. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 12; @@ -2206,7 +2242,7 @@ public com.google.cloud.retail.v2.CustomAttribute getAttributesOrThrow(java.lang * This tag can be used for filtering recommendation results by passing the * tag as part of the * [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [custom_label_0–4](https://support.google.com/merchants/answer/6324473). * * @@ -2229,7 +2265,7 @@ public com.google.protobuf.ProtocolStringList getTagsList() { * This tag can be used for filtering recommendation results by passing the * tag as part of the * [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [custom_label_0–4](https://support.google.com/merchants/answer/6324473). * * @@ -2252,7 +2288,7 @@ public int getTagsCount() { * This tag can be used for filtering recommendation results by passing the * tag as part of the * [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [custom_label_0–4](https://support.google.com/merchants/answer/6324473). * * @@ -2276,7 +2312,7 @@ public java.lang.String getTags(int index) { * This tag can be used for filtering recommendation results by passing the * tag as part of the * [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [custom_label_0–4](https://support.google.com/merchants/answer/6324473). * * @@ -2296,7 +2332,7 @@ public com.google.protobuf.ByteString getTagsBytes(int index) { * *
        * Product price and cost information.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [price](https://support.google.com/merchants/answer/6324371).
        * 
    * @@ -2313,7 +2349,7 @@ public boolean hasPriceInfo() { * *
        * Product price and cost information.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [price](https://support.google.com/merchants/answer/6324371).
        * 
    * @@ -2332,7 +2368,7 @@ public com.google.cloud.retail.v2.PriceInfo getPriceInfo() { * *
        * Product price and cost information.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [price](https://support.google.com/merchants/answer/6324371).
        * 
    * @@ -2452,9 +2488,9 @@ public com.google.protobuf.TimestampOrBuilder getAvailableTimeOrBuilder() { * The online availability of the [Product][google.cloud.retail.v2.Product]. * Default to * [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK]. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [availability](https://support.google.com/merchants/answer/6324448). - * Schema.org Property [Offer.availability](https://schema.org/availability). + * Schema.org property [Offer.availability](https://schema.org/availability). * * * .google.cloud.retail.v2.Product.Availability availability = 19; @@ -2472,9 +2508,9 @@ public int getAvailabilityValue() { * The online availability of the [Product][google.cloud.retail.v2.Product]. * Default to * [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK]. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [availability](https://support.google.com/merchants/answer/6324448). - * Schema.org Property [Offer.availability](https://schema.org/availability). + * Schema.org property [Offer.availability](https://schema.org/availability). * * * .google.cloud.retail.v2.Product.Availability availability = 19; @@ -2638,7 +2674,7 @@ public com.google.cloud.retail.v2.FulfillmentInfoOrBuilder getFulfillmentInfoOrB * otherwise the service performance could be significantly degraded. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [link](https://support.google.com/merchants/answer/6324416). Schema.org * property [Offer.url](https://schema.org/url). * @@ -2668,7 +2704,7 @@ public java.lang.String getUri() { * otherwise the service performance could be significantly degraded. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [link](https://support.google.com/merchants/answer/6324416). Schema.org * property [Offer.url](https://schema.org/url). * @@ -2696,10 +2732,10 @@ public com.google.protobuf.ByteString getUriBytes() { * * *
    -   * Product images for the product.Highly recommended to put the main image
    -   * to the first.
    +   * Product images for the product. We highly recommend putting the main
    +   * image first.
        * A maximum of 300 images are allowed.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [image_link](https://support.google.com/merchants/answer/6324350).
        * Schema.org property [Product.image](https://schema.org/image).
        * 
    @@ -2714,10 +2750,10 @@ public java.util.List getImagesList() { * * *
    -   * Product images for the product.Highly recommended to put the main image
    -   * to the first.
    +   * Product images for the product. We highly recommend putting the main
    +   * image first.
        * A maximum of 300 images are allowed.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [image_link](https://support.google.com/merchants/answer/6324350).
        * Schema.org property [Product.image](https://schema.org/image).
        * 
    @@ -2733,10 +2769,10 @@ public java.util.List getImagesList() { * * *
    -   * Product images for the product.Highly recommended to put the main image
    -   * to the first.
    +   * Product images for the product. We highly recommend putting the main
    +   * image first.
        * A maximum of 300 images are allowed.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [image_link](https://support.google.com/merchants/answer/6324350).
        * Schema.org property [Product.image](https://schema.org/image).
        * 
    @@ -2751,10 +2787,10 @@ public int getImagesCount() { * * *
    -   * Product images for the product.Highly recommended to put the main image
    -   * to the first.
    +   * Product images for the product. We highly recommend putting the main
    +   * image first.
        * A maximum of 300 images are allowed.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [image_link](https://support.google.com/merchants/answer/6324350).
        * Schema.org property [Product.image](https://schema.org/image).
        * 
    @@ -2769,10 +2805,10 @@ public com.google.cloud.retail.v2.Image getImages(int index) { * * *
    -   * Product images for the product.Highly recommended to put the main image
    -   * to the first.
    +   * Product images for the product. We highly recommend putting the main
    +   * image first.
        * A maximum of 300 images are allowed.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [image_link](https://support.google.com/merchants/answer/6324350).
        * Schema.org property [Product.image](https://schema.org/image).
        * 
    @@ -2840,7 +2876,7 @@ public com.google.cloud.retail.v2.AudienceOrBuilder getAudienceOrBuilder() { * *
        * The color of the product.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [color](https://support.google.com/merchants/answer/6324487). Schema.org
        * property [Product.color](https://schema.org/color).
        * 
    @@ -2858,7 +2894,7 @@ public boolean hasColorInfo() { * *
        * The color of the product.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [color](https://support.google.com/merchants/answer/6324487). Schema.org
        * property [Product.color](https://schema.org/color).
        * 
    @@ -2878,7 +2914,7 @@ public com.google.cloud.retail.v2.ColorInfo getColorInfo() { * *
        * The color of the product.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [color](https://support.google.com/merchants/answer/6324487). Schema.org
        * property [Product.color](https://schema.org/color).
        * 
    @@ -2906,9 +2942,9 @@ public com.google.cloud.retail.v2.ColorInfoOrBuilder getColorInfoOrBuilder() { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [size](https://support.google.com/merchants/answer/6324492), - * [size_type](https://support.google.com/merchants/answer/6324497) and + * [size_type](https://support.google.com/merchants/answer/6324497), and * [size_system](https://support.google.com/merchants/answer/6324502). * Schema.org property [Product.size](https://schema.org/size). * @@ -2934,9 +2970,9 @@ public com.google.protobuf.ProtocolStringList getSizesList() { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [size](https://support.google.com/merchants/answer/6324492), - * [size_type](https://support.google.com/merchants/answer/6324497) and + * [size_type](https://support.google.com/merchants/answer/6324497), and * [size_system](https://support.google.com/merchants/answer/6324502). * Schema.org property [Product.size](https://schema.org/size). * @@ -2962,9 +2998,9 @@ public int getSizesCount() { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [size](https://support.google.com/merchants/answer/6324492), - * [size_type](https://support.google.com/merchants/answer/6324497) and + * [size_type](https://support.google.com/merchants/answer/6324497), and * [size_system](https://support.google.com/merchants/answer/6324502). * Schema.org property [Product.size](https://schema.org/size). * @@ -2991,9 +3027,9 @@ public java.lang.String getSizes(int index) { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [size](https://support.google.com/merchants/answer/6324492), - * [size_type](https://support.google.com/merchants/answer/6324497) and + * [size_type](https://support.google.com/merchants/answer/6324497), and * [size_system](https://support.google.com/merchants/answer/6324502). * Schema.org property [Product.size](https://schema.org/size). * @@ -3015,9 +3051,9 @@ public com.google.protobuf.ByteString getSizesBytes(int index) { *
        * The material of the product. For example, "leather", "wooden".
        * A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -   * string with a length limit of 128 characters. Otherwise, an
    +   * string with a length limit of 200 characters. Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [material](https://support.google.com/merchants/answer/6324410). Schema.org
        * property [Product.material](https://schema.org/material).
        * 
    @@ -3035,9 +3071,9 @@ public com.google.protobuf.ProtocolStringList getMaterialsList() { *
        * The material of the product. For example, "leather", "wooden".
        * A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -   * string with a length limit of 128 characters. Otherwise, an
    +   * string with a length limit of 200 characters. Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [material](https://support.google.com/merchants/answer/6324410). Schema.org
        * property [Product.material](https://schema.org/material).
        * 
    @@ -3055,9 +3091,9 @@ public int getMaterialsCount() { *
        * The material of the product. For example, "leather", "wooden".
        * A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -   * string with a length limit of 128 characters. Otherwise, an
    +   * string with a length limit of 200 characters. Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [material](https://support.google.com/merchants/answer/6324410). Schema.org
        * property [Product.material](https://schema.org/material).
        * 
    @@ -3076,9 +3112,9 @@ public java.lang.String getMaterials(int index) { *
        * The material of the product. For example, "leather", "wooden".
        * A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -   * string with a length limit of 128 characters. Otherwise, an
    +   * string with a length limit of 200 characters. Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [material](https://support.google.com/merchants/answer/6324410). Schema.org
        * property [Product.material](https://schema.org/material).
        * 
    @@ -3104,7 +3140,7 @@ public com.google.protobuf.ByteString getMaterialsBytes(int index) { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [pattern](https://support.google.com/merchants/answer/6324483). Schema.org * property [Product.pattern](https://schema.org/pattern). * @@ -3126,7 +3162,7 @@ public com.google.protobuf.ProtocolStringList getPatternsList() { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [pattern](https://support.google.com/merchants/answer/6324483). Schema.org * property [Product.pattern](https://schema.org/pattern). * @@ -3148,7 +3184,7 @@ public int getPatternsCount() { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [pattern](https://support.google.com/merchants/answer/6324483). Schema.org * property [Product.pattern](https://schema.org/pattern). * @@ -3171,7 +3207,7 @@ public java.lang.String getPatterns(int index) { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [pattern](https://support.google.com/merchants/answer/6324483). Schema.org * property [Product.pattern](https://schema.org/pattern). * @@ -3193,11 +3229,11 @@ public com.google.protobuf.ByteString getPatternsBytes(int index) { *
        * The condition of the product. Strongly encouraged to use the standard
        * values: "new", "refurbished", "used".
    -   * A maximum of 5 values are allowed per
    +   * A maximum of 1 value is allowed per
        * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
        * encoded string with a length limit of 128 characters. Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [condition](https://support.google.com/merchants/answer/6324469).
        * Schema.org property
        * [Offer.itemCondition](https://schema.org/itemCondition).
    @@ -3216,11 +3252,11 @@ public com.google.protobuf.ProtocolStringList getConditionsList() {
        * 
        * The condition of the product. Strongly encouraged to use the standard
        * values: "new", "refurbished", "used".
    -   * A maximum of 5 values are allowed per
    +   * A maximum of 1 value is allowed per
        * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
        * encoded string with a length limit of 128 characters. Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [condition](https://support.google.com/merchants/answer/6324469).
        * Schema.org property
        * [Offer.itemCondition](https://schema.org/itemCondition).
    @@ -3239,11 +3275,11 @@ public int getConditionsCount() {
        * 
        * The condition of the product. Strongly encouraged to use the standard
        * values: "new", "refurbished", "used".
    -   * A maximum of 5 values are allowed per
    +   * A maximum of 1 value is allowed per
        * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
        * encoded string with a length limit of 128 characters. Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [condition](https://support.google.com/merchants/answer/6324469).
        * Schema.org property
        * [Offer.itemCondition](https://schema.org/itemCondition).
    @@ -3263,11 +3299,11 @@ public java.lang.String getConditions(int index) {
        * 
        * The condition of the product. Strongly encouraged to use the standard
        * values: "new", "refurbished", "used".
    -   * A maximum of 5 values are allowed per
    +   * A maximum of 1 value is allowed per
        * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
        * encoded string with a length limit of 128 characters. Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [condition](https://support.google.com/merchants/answer/6324469).
        * Schema.org property
        * [Offer.itemCondition](https://schema.org/itemCondition).
    @@ -3289,7 +3325,9 @@ public com.google.protobuf.ByteString getConditionsBytes(int index) {
        *
        * 
        * The promotions applied to the product. A maximum of 10 values are allowed
    -   * per [Product][google.cloud.retail.v2.Product].
    +   * per [Product][google.cloud.retail.v2.Product]. Only
    +   * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +   * will be used, other fields will be ignored if set.
        * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -3303,7 +3341,9 @@ public java.util.List getPromotionsList() * *
        * The promotions applied to the product. A maximum of 10 values are allowed
    -   * per [Product][google.cloud.retail.v2.Product].
    +   * per [Product][google.cloud.retail.v2.Product]. Only
    +   * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +   * will be used, other fields will be ignored if set.
        * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -3318,7 +3358,9 @@ public java.util.List getPromotionsList() * *
        * The promotions applied to the product. A maximum of 10 values are allowed
    -   * per [Product][google.cloud.retail.v2.Product].
    +   * per [Product][google.cloud.retail.v2.Product]. Only
    +   * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +   * will be used, other fields will be ignored if set.
        * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -3332,7 +3374,9 @@ public int getPromotionsCount() { * *
        * The promotions applied to the product. A maximum of 10 values are allowed
    -   * per [Product][google.cloud.retail.v2.Product].
    +   * per [Product][google.cloud.retail.v2.Product]. Only
    +   * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +   * will be used, other fields will be ignored if set.
        * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -3346,7 +3390,9 @@ public com.google.cloud.retail.v2.Promotion getPromotions(int index) { * *
        * The promotions applied to the product. A maximum of 10 values are allowed
    -   * per [Product][google.cloud.retail.v2.Product].
    +   * per [Product][google.cloud.retail.v2.Product]. Only
    +   * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +   * will be used, other fields will be ignored if set.
        * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -5030,7 +5076,7 @@ public Builder clearExpiration() { * than [available_time][google.cloud.retail.v2.Product.available_time] and * [publish_time][google.cloud.retail.v2.Product.publish_time], otherwise an * INVALID_ARGUMENT error is thrown. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [expiration_date](https://support.google.com/merchants/answer/6324499). *
    * @@ -5060,7 +5106,7 @@ public boolean hasExpireTime() { * than [available_time][google.cloud.retail.v2.Product.available_time] and * [publish_time][google.cloud.retail.v2.Product.publish_time], otherwise an * INVALID_ARGUMENT error is thrown. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [expiration_date](https://support.google.com/merchants/answer/6324499). *
    * @@ -5100,7 +5146,7 @@ public com.google.protobuf.Timestamp getExpireTime() { * than [available_time][google.cloud.retail.v2.Product.available_time] and * [publish_time][google.cloud.retail.v2.Product.publish_time], otherwise an * INVALID_ARGUMENT error is thrown. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [expiration_date](https://support.google.com/merchants/answer/6324499). *
    * @@ -5137,7 +5183,7 @@ public Builder setExpireTime(com.google.protobuf.Timestamp value) { * than [available_time][google.cloud.retail.v2.Product.available_time] and * [publish_time][google.cloud.retail.v2.Product.publish_time], otherwise an * INVALID_ARGUMENT error is thrown. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [expiration_date](https://support.google.com/merchants/answer/6324499). *
    * @@ -5171,7 +5217,7 @@ public Builder setExpireTime(com.google.protobuf.Timestamp.Builder builderForVal * than [available_time][google.cloud.retail.v2.Product.available_time] and * [publish_time][google.cloud.retail.v2.Product.publish_time], otherwise an * INVALID_ARGUMENT error is thrown. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [expiration_date](https://support.google.com/merchants/answer/6324499). * * @@ -5216,7 +5262,7 @@ public Builder mergeExpireTime(com.google.protobuf.Timestamp value) { * than [available_time][google.cloud.retail.v2.Product.available_time] and * [publish_time][google.cloud.retail.v2.Product.publish_time], otherwise an * INVALID_ARGUMENT error is thrown. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [expiration_date](https://support.google.com/merchants/answer/6324499). * * @@ -5256,7 +5302,7 @@ public Builder clearExpireTime() { * than [available_time][google.cloud.retail.v2.Product.available_time] and * [publish_time][google.cloud.retail.v2.Product.publish_time], otherwise an * INVALID_ARGUMENT error is thrown. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [expiration_date](https://support.google.com/merchants/answer/6324499). * * @@ -5283,7 +5329,7 @@ public com.google.protobuf.Timestamp.Builder getExpireTimeBuilder() { * than [available_time][google.cloud.retail.v2.Product.available_time] and * [publish_time][google.cloud.retail.v2.Product.publish_time], otherwise an * INVALID_ARGUMENT error is thrown. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [expiration_date](https://support.google.com/merchants/answer/6324499). * * @@ -5318,7 +5364,7 @@ public com.google.protobuf.TimestampOrBuilder getExpireTimeOrBuilder() { * than [available_time][google.cloud.retail.v2.Product.available_time] and * [publish_time][google.cloud.retail.v2.Product.publish_time], otherwise an * INVALID_ARGUMENT error is thrown. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [expiration_date](https://support.google.com/merchants/answer/6324499). * * @@ -5792,9 +5838,9 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) { * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. * This field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [id](https://support.google.com/merchants/answer/6324405). Schema.org - * Property [Product.sku](https://schema.org/sku). + * property [Product.sku](https://schema.org/sku). * * * string id = 2 [(.google.api.field_behavior) = IMMUTABLE]; @@ -5823,9 +5869,9 @@ public java.lang.String getId() { * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. * This field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [id](https://support.google.com/merchants/answer/6324405). Schema.org - * Property [Product.sku](https://schema.org/sku). + * property [Product.sku](https://schema.org/sku). * * * string id = 2 [(.google.api.field_behavior) = IMMUTABLE]; @@ -5854,9 +5900,9 @@ public com.google.protobuf.ByteString getIdBytes() { * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. * This field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [id](https://support.google.com/merchants/answer/6324405). Schema.org - * Property [Product.sku](https://schema.org/sku). + * property [Product.sku](https://schema.org/sku). * * * string id = 2 [(.google.api.field_behavior) = IMMUTABLE]; @@ -5884,9 +5930,9 @@ public Builder setId(java.lang.String value) { * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. * This field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [id](https://support.google.com/merchants/answer/6324405). Schema.org - * Property [Product.sku](https://schema.org/sku). + * property [Product.sku](https://schema.org/sku). * * * string id = 2 [(.google.api.field_behavior) = IMMUTABLE]; @@ -5910,9 +5956,9 @@ public Builder clearId() { * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. * This field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [id](https://support.google.com/merchants/answer/6324405). Schema.org - * Property [Product.sku](https://schema.org/sku). + * property [Product.sku](https://schema.org/sku). * * * string id = 2 [(.google.api.field_behavior) = IMMUTABLE]; @@ -6058,12 +6104,10 @@ public Builder clearType() { * [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] * [Product][google.cloud.retail.v2.Product]. Otherwise, an INVALID_ARGUMENT * error is returned. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [item_group_id](https://support.google.com/merchants/answer/6324507). - * Schema.org Property + * Schema.org property * [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). - * This field must be enabled before it can be used. [Learn - * more](/recommendations-ai/docs/catalog#item-group-id). * * * string primary_product_id = 4; @@ -6096,12 +6140,10 @@ public java.lang.String getPrimaryProductId() { * [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] * [Product][google.cloud.retail.v2.Product]. Otherwise, an INVALID_ARGUMENT * error is returned. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [item_group_id](https://support.google.com/merchants/answer/6324507). - * Schema.org Property + * Schema.org property * [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). - * This field must be enabled before it can be used. [Learn - * more](/recommendations-ai/docs/catalog#item-group-id). * * * string primary_product_id = 4; @@ -6134,12 +6176,10 @@ public com.google.protobuf.ByteString getPrimaryProductIdBytes() { * [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] * [Product][google.cloud.retail.v2.Product]. Otherwise, an INVALID_ARGUMENT * error is returned. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [item_group_id](https://support.google.com/merchants/answer/6324507). - * Schema.org Property + * Schema.org property * [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). - * This field must be enabled before it can be used. [Learn - * more](/recommendations-ai/docs/catalog#item-group-id). * * * string primary_product_id = 4; @@ -6171,12 +6211,10 @@ public Builder setPrimaryProductId(java.lang.String value) { * [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] * [Product][google.cloud.retail.v2.Product]. Otherwise, an INVALID_ARGUMENT * error is returned. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [item_group_id](https://support.google.com/merchants/answer/6324507). - * Schema.org Property + * Schema.org property * [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). - * This field must be enabled before it can be used. [Learn - * more](/recommendations-ai/docs/catalog#item-group-id). * * * string primary_product_id = 4; @@ -6204,12 +6242,10 @@ public Builder clearPrimaryProductId() { * [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] * [Product][google.cloud.retail.v2.Product]. Otherwise, an INVALID_ARGUMENT * error is returned. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [item_group_id](https://support.google.com/merchants/answer/6324507). - * Schema.org Property + * Schema.org property * [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). - * This field must be enabled before it can be used. [Learn - * more](/recommendations-ai/docs/catalog#item-group-id). * * * string primary_product_id = 4; @@ -6244,8 +6280,13 @@ private void ensureCollectionMemberIdsIsMutable() { * The [id][google.cloud.retail.v2.Product.id] of the collection members when * [type][google.cloud.retail.v2.Product.type] is * [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. - * Should not set it for other types. A maximum of 1000 values are allowed. - * Otherwise, an INVALID_ARGUMENT error is return. + * Non-existent product ids are allowed. + * The [type][google.cloud.retail.v2.Product.type] of the members must be + * either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + * [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and + * INVALID_ARGUMENT error is thrown. Should not set it for other types. A + * maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + * return. * * * repeated string collection_member_ids = 5; @@ -6262,8 +6303,13 @@ public com.google.protobuf.ProtocolStringList getCollectionMemberIdsList() { * The [id][google.cloud.retail.v2.Product.id] of the collection members when * [type][google.cloud.retail.v2.Product.type] is * [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. - * Should not set it for other types. A maximum of 1000 values are allowed. - * Otherwise, an INVALID_ARGUMENT error is return. + * Non-existent product ids are allowed. + * The [type][google.cloud.retail.v2.Product.type] of the members must be + * either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + * [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and + * INVALID_ARGUMENT error is thrown. Should not set it for other types. A + * maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + * return. * * * repeated string collection_member_ids = 5; @@ -6280,8 +6326,13 @@ public int getCollectionMemberIdsCount() { * The [id][google.cloud.retail.v2.Product.id] of the collection members when * [type][google.cloud.retail.v2.Product.type] is * [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. - * Should not set it for other types. A maximum of 1000 values are allowed. - * Otherwise, an INVALID_ARGUMENT error is return. + * Non-existent product ids are allowed. + * The [type][google.cloud.retail.v2.Product.type] of the members must be + * either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + * [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and + * INVALID_ARGUMENT error is thrown. Should not set it for other types. A + * maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + * return. * * * repeated string collection_member_ids = 5; @@ -6299,8 +6350,13 @@ public java.lang.String getCollectionMemberIds(int index) { * The [id][google.cloud.retail.v2.Product.id] of the collection members when * [type][google.cloud.retail.v2.Product.type] is * [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. - * Should not set it for other types. A maximum of 1000 values are allowed. - * Otherwise, an INVALID_ARGUMENT error is return. + * Non-existent product ids are allowed. + * The [type][google.cloud.retail.v2.Product.type] of the members must be + * either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + * [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and + * INVALID_ARGUMENT error is thrown. Should not set it for other types. A + * maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + * return. * * * repeated string collection_member_ids = 5; @@ -6318,8 +6374,13 @@ public com.google.protobuf.ByteString getCollectionMemberIdsBytes(int index) { * The [id][google.cloud.retail.v2.Product.id] of the collection members when * [type][google.cloud.retail.v2.Product.type] is * [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. - * Should not set it for other types. A maximum of 1000 values are allowed. - * Otherwise, an INVALID_ARGUMENT error is return. + * Non-existent product ids are allowed. + * The [type][google.cloud.retail.v2.Product.type] of the members must be + * either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + * [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and + * INVALID_ARGUMENT error is thrown. Should not set it for other types. A + * maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + * return. * * * repeated string collection_member_ids = 5; @@ -6344,8 +6405,13 @@ public Builder setCollectionMemberIds(int index, java.lang.String value) { * The [id][google.cloud.retail.v2.Product.id] of the collection members when * [type][google.cloud.retail.v2.Product.type] is * [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. - * Should not set it for other types. A maximum of 1000 values are allowed. - * Otherwise, an INVALID_ARGUMENT error is return. + * Non-existent product ids are allowed. + * The [type][google.cloud.retail.v2.Product.type] of the members must be + * either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + * [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and + * INVALID_ARGUMENT error is thrown. Should not set it for other types. A + * maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + * return. * * * repeated string collection_member_ids = 5; @@ -6369,8 +6435,13 @@ public Builder addCollectionMemberIds(java.lang.String value) { * The [id][google.cloud.retail.v2.Product.id] of the collection members when * [type][google.cloud.retail.v2.Product.type] is * [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. - * Should not set it for other types. A maximum of 1000 values are allowed. - * Otherwise, an INVALID_ARGUMENT error is return. + * Non-existent product ids are allowed. + * The [type][google.cloud.retail.v2.Product.type] of the members must be + * either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + * [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and + * INVALID_ARGUMENT error is thrown. Should not set it for other types. A + * maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + * return. * * * repeated string collection_member_ids = 5; @@ -6391,8 +6462,13 @@ public Builder addAllCollectionMemberIds(java.lang.Iterable va * The [id][google.cloud.retail.v2.Product.id] of the collection members when * [type][google.cloud.retail.v2.Product.type] is * [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. - * Should not set it for other types. A maximum of 1000 values are allowed. - * Otherwise, an INVALID_ARGUMENT error is return. + * Non-existent product ids are allowed. + * The [type][google.cloud.retail.v2.Product.type] of the members must be + * either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + * [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and + * INVALID_ARGUMENT error is thrown. Should not set it for other types. A + * maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + * return. * * * repeated string collection_member_ids = 5; @@ -6412,8 +6488,13 @@ public Builder clearCollectionMemberIds() { * The [id][google.cloud.retail.v2.Product.id] of the collection members when * [type][google.cloud.retail.v2.Product.type] is * [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. - * Should not set it for other types. A maximum of 1000 values are allowed. - * Otherwise, an INVALID_ARGUMENT error is return. + * Non-existent product ids are allowed. + * The [type][google.cloud.retail.v2.Product.type] of the members must be + * either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + * [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and + * INVALID_ARGUMENT error is thrown. Should not set it for other types. A + * maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + * return. * * * repeated string collection_member_ids = 5; @@ -6442,13 +6523,13 @@ public Builder addCollectionMemberIdsBytes(com.google.protobuf.ByteString value) * characters. Otherwise, an INVALID_ARGUMENT error is returned. * This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is * returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [gtin](https://support.google.com/merchants/answer/6324461). * Schema.org property - * [Product.isbn](https://schema.org/isbn) or - * [Product.gtin8](https://schema.org/gtin8) or - * [Product.gtin12](https://schema.org/gtin12) or - * [Product.gtin13](https://schema.org/gtin13) or + * [Product.isbn](https://schema.org/isbn), + * [Product.gtin8](https://schema.org/gtin8), + * [Product.gtin12](https://schema.org/gtin12), + * [Product.gtin13](https://schema.org/gtin13), or * [Product.gtin14](https://schema.org/gtin14). * If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. * @@ -6477,13 +6558,13 @@ public java.lang.String getGtin() { * characters. Otherwise, an INVALID_ARGUMENT error is returned. * This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is * returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [gtin](https://support.google.com/merchants/answer/6324461). * Schema.org property - * [Product.isbn](https://schema.org/isbn) or - * [Product.gtin8](https://schema.org/gtin8) or - * [Product.gtin12](https://schema.org/gtin12) or - * [Product.gtin13](https://schema.org/gtin13) or + * [Product.isbn](https://schema.org/isbn), + * [Product.gtin8](https://schema.org/gtin8), + * [Product.gtin12](https://schema.org/gtin12), + * [Product.gtin13](https://schema.org/gtin13), or * [Product.gtin14](https://schema.org/gtin14). * If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. * @@ -6512,13 +6593,13 @@ public com.google.protobuf.ByteString getGtinBytes() { * characters. Otherwise, an INVALID_ARGUMENT error is returned. * This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is * returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [gtin](https://support.google.com/merchants/answer/6324461). * Schema.org property - * [Product.isbn](https://schema.org/isbn) or - * [Product.gtin8](https://schema.org/gtin8) or - * [Product.gtin12](https://schema.org/gtin12) or - * [Product.gtin13](https://schema.org/gtin13) or + * [Product.isbn](https://schema.org/isbn), + * [Product.gtin8](https://schema.org/gtin8), + * [Product.gtin12](https://schema.org/gtin12), + * [Product.gtin13](https://schema.org/gtin13), or * [Product.gtin14](https://schema.org/gtin14). * If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. * @@ -6546,13 +6627,13 @@ public Builder setGtin(java.lang.String value) { * characters. Otherwise, an INVALID_ARGUMENT error is returned. * This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is * returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [gtin](https://support.google.com/merchants/answer/6324461). * Schema.org property - * [Product.isbn](https://schema.org/isbn) or - * [Product.gtin8](https://schema.org/gtin8) or - * [Product.gtin12](https://schema.org/gtin12) or - * [Product.gtin13](https://schema.org/gtin13) or + * [Product.isbn](https://schema.org/isbn), + * [Product.gtin8](https://schema.org/gtin8), + * [Product.gtin12](https://schema.org/gtin12), + * [Product.gtin13](https://schema.org/gtin13), or * [Product.gtin14](https://schema.org/gtin14). * If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. * @@ -6576,13 +6657,13 @@ public Builder clearGtin() { * characters. Otherwise, an INVALID_ARGUMENT error is returned. * This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is * returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [gtin](https://support.google.com/merchants/answer/6324461). * Schema.org property - * [Product.isbn](https://schema.org/isbn) or - * [Product.gtin8](https://schema.org/gtin8) or - * [Product.gtin12](https://schema.org/gtin12) or - * [Product.gtin13](https://schema.org/gtin13) or + * [Product.isbn](https://schema.org/isbn), + * [Product.gtin8](https://schema.org/gtin8), + * [Product.gtin12](https://schema.org/gtin12), + * [Product.gtin13](https://schema.org/gtin13), or * [Product.gtin14](https://schema.org/gtin14). * If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. * @@ -6637,7 +6718,7 @@ private void ensureCategoriesIsMutable() { * [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. * Each value must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [google_product_category][mc_google_product_category]. Schema.org property * [Product.category] (https://schema.org/category). * [mc_google_product_category]: @@ -6676,7 +6757,7 @@ public com.google.protobuf.ProtocolStringList getCategoriesList() { * [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. * Each value must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [google_product_category][mc_google_product_category]. Schema.org property * [Product.category] (https://schema.org/category). * [mc_google_product_category]: @@ -6715,7 +6796,7 @@ public int getCategoriesCount() { * [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. * Each value must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [google_product_category][mc_google_product_category]. Schema.org property * [Product.category] (https://schema.org/category). * [mc_google_product_category]: @@ -6755,7 +6836,7 @@ public java.lang.String getCategories(int index) { * [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. * Each value must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [google_product_category][mc_google_product_category]. Schema.org property * [Product.category] (https://schema.org/category). * [mc_google_product_category]: @@ -6795,7 +6876,7 @@ public com.google.protobuf.ByteString getCategoriesBytes(int index) { * [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. * Each value must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [google_product_category][mc_google_product_category]. Schema.org property * [Product.category] (https://schema.org/category). * [mc_google_product_category]: @@ -6842,7 +6923,7 @@ public Builder setCategories(int index, java.lang.String value) { * [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. * Each value must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [google_product_category][mc_google_product_category]. Schema.org property * [Product.category] (https://schema.org/category). * [mc_google_product_category]: @@ -6888,7 +6969,7 @@ public Builder addCategories(java.lang.String value) { * [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. * Each value must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [google_product_category][mc_google_product_category]. Schema.org property * [Product.category] (https://schema.org/category). * [mc_google_product_category]: @@ -6931,7 +7012,7 @@ public Builder addAllCategories(java.lang.Iterable values) { * [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. * Each value must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [google_product_category][mc_google_product_category]. Schema.org property * [Product.category] (https://schema.org/category). * [mc_google_product_category]: @@ -6973,7 +7054,7 @@ public Builder clearCategories() { * [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. * Each value must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [google_product_category][mc_google_product_category]. Schema.org property * [Product.category] (https://schema.org/category). * [mc_google_product_category]: @@ -7004,7 +7085,7 @@ public Builder addCategoriesBytes(com.google.protobuf.ByteString value) { * Required. Product title. * This field must be a UTF-8 encoded string with a length limit of 1,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [title](https://support.google.com/merchants/answer/6324415). Schema.org * property [Product.name](https://schema.org/name). * @@ -7031,7 +7112,7 @@ public java.lang.String getTitle() { * Required. Product title. * This field must be a UTF-8 encoded string with a length limit of 1,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [title](https://support.google.com/merchants/answer/6324415). Schema.org * property [Product.name](https://schema.org/name). * @@ -7058,7 +7139,7 @@ public com.google.protobuf.ByteString getTitleBytes() { * Required. Product title. * This field must be a UTF-8 encoded string with a length limit of 1,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [title](https://support.google.com/merchants/answer/6324415). Schema.org * property [Product.name](https://schema.org/name). * @@ -7084,7 +7165,7 @@ public Builder setTitle(java.lang.String value) { * Required. Product title. * This field must be a UTF-8 encoded string with a length limit of 1,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [title](https://support.google.com/merchants/answer/6324415). Schema.org * property [Product.name](https://schema.org/name). * @@ -7106,7 +7187,7 @@ public Builder clearTitle() { * Required. Product title. * This field must be a UTF-8 encoded string with a length limit of 1,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [title](https://support.google.com/merchants/answer/6324415). Schema.org * property [Product.name](https://schema.org/name). * @@ -7144,7 +7225,7 @@ private void ensureBrandsIsMutable() { * A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded * string with a length limit of 1,000 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [brand](https://support.google.com/merchants/answer/6324351). Schema.org * property [Product.brand](https://schema.org/brand). * @@ -7164,7 +7245,7 @@ public com.google.protobuf.ProtocolStringList getBrandsList() { * A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded * string with a length limit of 1,000 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [brand](https://support.google.com/merchants/answer/6324351). Schema.org * property [Product.brand](https://schema.org/brand). * @@ -7184,7 +7265,7 @@ public int getBrandsCount() { * A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded * string with a length limit of 1,000 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [brand](https://support.google.com/merchants/answer/6324351). Schema.org * property [Product.brand](https://schema.org/brand). * @@ -7205,7 +7286,7 @@ public java.lang.String getBrands(int index) { * A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded * string with a length limit of 1,000 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [brand](https://support.google.com/merchants/answer/6324351). Schema.org * property [Product.brand](https://schema.org/brand). * @@ -7226,7 +7307,7 @@ public com.google.protobuf.ByteString getBrandsBytes(int index) { * A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded * string with a length limit of 1,000 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [brand](https://support.google.com/merchants/answer/6324351). Schema.org * property [Product.brand](https://schema.org/brand). * @@ -7254,7 +7335,7 @@ public Builder setBrands(int index, java.lang.String value) { * A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded * string with a length limit of 1,000 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [brand](https://support.google.com/merchants/answer/6324351). Schema.org * property [Product.brand](https://schema.org/brand). * @@ -7281,7 +7362,7 @@ public Builder addBrands(java.lang.String value) { * A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded * string with a length limit of 1,000 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [brand](https://support.google.com/merchants/answer/6324351). Schema.org * property [Product.brand](https://schema.org/brand). * @@ -7305,7 +7386,7 @@ public Builder addAllBrands(java.lang.Iterable values) { * A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded * string with a length limit of 1,000 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [brand](https://support.google.com/merchants/answer/6324351). Schema.org * property [Product.brand](https://schema.org/brand). * @@ -7328,7 +7409,7 @@ public Builder clearBrands() { * A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded * string with a length limit of 1,000 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [brand](https://support.google.com/merchants/answer/6324351). Schema.org * property [Product.brand](https://schema.org/brand). * @@ -7357,9 +7438,9 @@ public Builder addBrandsBytes(com.google.protobuf.ByteString value) { * Product description. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [description](https://support.google.com/merchants/answer/6324468). - * schema.org property [Product.description](https://schema.org/description). + * Schema.org property [Product.description](https://schema.org/description). * * * string description = 10; @@ -7384,9 +7465,9 @@ public java.lang.String getDescription() { * Product description. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [description](https://support.google.com/merchants/answer/6324468). - * schema.org property [Product.description](https://schema.org/description). + * Schema.org property [Product.description](https://schema.org/description). * * * string description = 10; @@ -7411,9 +7492,9 @@ public com.google.protobuf.ByteString getDescriptionBytes() { * Product description. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [description](https://support.google.com/merchants/answer/6324468). - * schema.org property [Product.description](https://schema.org/description). + * Schema.org property [Product.description](https://schema.org/description). * * * string description = 10; @@ -7437,9 +7518,9 @@ public Builder setDescription(java.lang.String value) { * Product description. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [description](https://support.google.com/merchants/answer/6324468). - * schema.org property [Product.description](https://schema.org/description). + * Schema.org property [Product.description](https://schema.org/description). * * * string description = 10; @@ -7459,9 +7540,9 @@ public Builder clearDescription() { * Product description. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [description](https://support.google.com/merchants/answer/6324468). - * schema.org property [Product.description](https://schema.org/description). + * Schema.org property [Product.description](https://schema.org/description). * * * string description = 10; @@ -7486,7 +7567,7 @@ public Builder setDescriptionBytes(com.google.protobuf.ByteString value) { * *
          * Language of the title/description and other string attributes. Use language
    -     * tags defined by [BCP 47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt].
    +     * tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
          * For product prediction, this field is ignored and the model automatically
          * detects the text language. The [Product][google.cloud.retail.v2.Product]
          * can include text in different languages, but duplicating
    @@ -7515,7 +7596,7 @@ public java.lang.String getLanguageCode() {
          *
          * 
          * Language of the title/description and other string attributes. Use language
    -     * tags defined by [BCP 47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt].
    +     * tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
          * For product prediction, this field is ignored and the model automatically
          * detects the text language. The [Product][google.cloud.retail.v2.Product]
          * can include text in different languages, but duplicating
    @@ -7544,7 +7625,7 @@ public com.google.protobuf.ByteString getLanguageCodeBytes() {
          *
          * 
          * Language of the title/description and other string attributes. Use language
    -     * tags defined by [BCP 47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt].
    +     * tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
          * For product prediction, this field is ignored and the model automatically
          * detects the text language. The [Product][google.cloud.retail.v2.Product]
          * can include text in different languages, but duplicating
    @@ -7572,7 +7653,7 @@ public Builder setLanguageCode(java.lang.String value) {
          *
          * 
          * Language of the title/description and other string attributes. Use language
    -     * tags defined by [BCP 47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt].
    +     * tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
          * For product prediction, this field is ignored and the model automatically
          * detects the text language. The [Product][google.cloud.retail.v2.Product]
          * can include text in different languages, but duplicating
    @@ -7596,7 +7677,7 @@ public Builder clearLanguageCode() {
          *
          * 
          * Language of the title/description and other string attributes. Use language
    -     * tags defined by [BCP 47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt].
    +     * tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
          * For product prediction, this field is ignored and the model automatically
          * detects the text language. The [Product][google.cloud.retail.v2.Product]
          * can include text in different languages, but duplicating
    @@ -7675,7 +7756,12 @@ public int getAttributesCount() {
          * * The key must be a UTF-8 encoded string with a length limit of 128
          *   characters.
          * * For indexable attribute, the key must match the pattern:
    -     *   `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS.
    +     *   `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or
    +     *   `KEY_1_LIKE_THIS`.
    +     * * For text attributes, at most 400 values are allowed. Empty values are not
    +     *   allowed. Each value must be a non-empty UTF-8 encoded string with a
    +     *   length limit of 256 characters.
    +     * * For number attributes, at most 400 values are allowed.
          * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 12; @@ -7716,7 +7802,12 @@ public boolean containsAttributes(java.lang.String key) { * * The key must be a UTF-8 encoded string with a length limit of 128 * characters. * * For indexable attribute, the key must match the pattern: - * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS. + * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or + * `KEY_1_LIKE_THIS`. + * * For text attributes, at most 400 values are allowed. Empty values are not + * allowed. Each value must be a non-empty UTF-8 encoded string with a + * length limit of 256 characters. + * * For number attributes, at most 400 values are allowed. *
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 12; @@ -7748,7 +7839,12 @@ public boolean containsAttributes(java.lang.String key) { * * The key must be a UTF-8 encoded string with a length limit of 128 * characters. * * For indexable attribute, the key must match the pattern: - * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS. + * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or + * `KEY_1_LIKE_THIS`. + * * For text attributes, at most 400 values are allowed. Empty values are not + * allowed. Each value must be a non-empty UTF-8 encoded string with a + * length limit of 256 characters. + * * For number attributes, at most 400 values are allowed. *
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 12; @@ -7785,7 +7881,12 @@ public com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * * The key must be a UTF-8 encoded string with a length limit of 128 * characters. * * For indexable attribute, the key must match the pattern: - * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS. + * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or + * `KEY_1_LIKE_THIS`. + * * For text attributes, at most 400 values are allowed. Empty values are not + * allowed. Each value must be a non-empty UTF-8 encoded string with a + * length limit of 256 characters. + * * For number attributes, at most 400 values are allowed. *
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 12; @@ -7829,7 +7930,12 @@ public Builder clearAttributes() { * * The key must be a UTF-8 encoded string with a length limit of 128 * characters. * * For indexable attribute, the key must match the pattern: - * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS. + * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or + * `KEY_1_LIKE_THIS`. + * * For text attributes, at most 400 values are allowed. Empty values are not + * allowed. Each value must be a non-empty UTF-8 encoded string with a + * length limit of 256 characters. + * * For number attributes, at most 400 values are allowed. *
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 12; @@ -7869,7 +7975,12 @@ public Builder removeAttributes(java.lang.String key) { * * The key must be a UTF-8 encoded string with a length limit of 128 * characters. * * For indexable attribute, the key must match the pattern: - * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS. + * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or + * `KEY_1_LIKE_THIS`. + * * For text attributes, at most 400 values are allowed. Empty values are not + * allowed. Each value must be a non-empty UTF-8 encoded string with a + * length limit of 256 characters. + * * For number attributes, at most 400 values are allowed. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 12; @@ -7907,7 +8018,12 @@ public Builder putAttributes( * * The key must be a UTF-8 encoded string with a length limit of 128 * characters. * * For indexable attribute, the key must match the pattern: - * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS. + * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or + * `KEY_1_LIKE_THIS`. + * * For text attributes, at most 400 values are allowed. Empty values are not + * allowed. Each value must be a non-empty UTF-8 encoded string with a + * length limit of 256 characters. + * * For number attributes, at most 400 values are allowed. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 12; @@ -7939,7 +8055,7 @@ private void ensureTagsIsMutable() { * This tag can be used for filtering recommendation results by passing the * tag as part of the * [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [custom_label_0–4](https://support.google.com/merchants/answer/6324473). * * @@ -7962,7 +8078,7 @@ public com.google.protobuf.ProtocolStringList getTagsList() { * This tag can be used for filtering recommendation results by passing the * tag as part of the * [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [custom_label_0–4](https://support.google.com/merchants/answer/6324473). * * @@ -7985,7 +8101,7 @@ public int getTagsCount() { * This tag can be used for filtering recommendation results by passing the * tag as part of the * [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [custom_label_0–4](https://support.google.com/merchants/answer/6324473). * * @@ -8009,7 +8125,7 @@ public java.lang.String getTags(int index) { * This tag can be used for filtering recommendation results by passing the * tag as part of the * [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [custom_label_0–4](https://support.google.com/merchants/answer/6324473). * * @@ -8033,7 +8149,7 @@ public com.google.protobuf.ByteString getTagsBytes(int index) { * This tag can be used for filtering recommendation results by passing the * tag as part of the * [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [custom_label_0–4](https://support.google.com/merchants/answer/6324473). * * @@ -8064,7 +8180,7 @@ public Builder setTags(int index, java.lang.String value) { * This tag can be used for filtering recommendation results by passing the * tag as part of the * [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [custom_label_0–4](https://support.google.com/merchants/answer/6324473). * * @@ -8094,7 +8210,7 @@ public Builder addTags(java.lang.String value) { * This tag can be used for filtering recommendation results by passing the * tag as part of the * [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [custom_label_0–4](https://support.google.com/merchants/answer/6324473). * * @@ -8121,7 +8237,7 @@ public Builder addAllTags(java.lang.Iterable values) { * This tag can be used for filtering recommendation results by passing the * tag as part of the * [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [custom_label_0–4](https://support.google.com/merchants/answer/6324473). * * @@ -8147,7 +8263,7 @@ public Builder clearTags() { * This tag can be used for filtering recommendation results by passing the * tag as part of the * [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [custom_label_0–4](https://support.google.com/merchants/answer/6324473). * * @@ -8178,7 +8294,7 @@ public Builder addTagsBytes(com.google.protobuf.ByteString value) { * *
          * Product price and cost information.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [price](https://support.google.com/merchants/answer/6324371).
          * 
    * @@ -8194,7 +8310,7 @@ public boolean hasPriceInfo() { * *
          * Product price and cost information.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [price](https://support.google.com/merchants/answer/6324371).
          * 
    * @@ -8216,7 +8332,7 @@ public com.google.cloud.retail.v2.PriceInfo getPriceInfo() { * *
          * Product price and cost information.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [price](https://support.google.com/merchants/answer/6324371).
          * 
    * @@ -8240,7 +8356,7 @@ public Builder setPriceInfo(com.google.cloud.retail.v2.PriceInfo value) { * *
          * Product price and cost information.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [price](https://support.google.com/merchants/answer/6324371).
          * 
    * @@ -8261,7 +8377,7 @@ public Builder setPriceInfo(com.google.cloud.retail.v2.PriceInfo.Builder builder * *
          * Product price and cost information.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [price](https://support.google.com/merchants/answer/6324371).
          * 
    * @@ -8289,7 +8405,7 @@ public Builder mergePriceInfo(com.google.cloud.retail.v2.PriceInfo value) { * *
          * Product price and cost information.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [price](https://support.google.com/merchants/answer/6324371).
          * 
    * @@ -8311,7 +8427,7 @@ public Builder clearPriceInfo() { * *
          * Product price and cost information.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [price](https://support.google.com/merchants/answer/6324371).
          * 
    * @@ -8327,7 +8443,7 @@ public com.google.cloud.retail.v2.PriceInfo.Builder getPriceInfoBuilder() { * *
          * Product price and cost information.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [price](https://support.google.com/merchants/answer/6324371).
          * 
    * @@ -8347,7 +8463,7 @@ public com.google.cloud.retail.v2.PriceInfoOrBuilder getPriceInfoOrBuilder() { * *
          * Product price and cost information.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [price](https://support.google.com/merchants/answer/6324371).
          * 
    * @@ -8760,9 +8876,9 @@ public com.google.protobuf.TimestampOrBuilder getAvailableTimeOrBuilder() { * The online availability of the [Product][google.cloud.retail.v2.Product]. * Default to * [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK]. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [availability](https://support.google.com/merchants/answer/6324448). - * Schema.org Property [Offer.availability](https://schema.org/availability). + * Schema.org property [Offer.availability](https://schema.org/availability). * * * .google.cloud.retail.v2.Product.Availability availability = 19; @@ -8780,9 +8896,9 @@ public int getAvailabilityValue() { * The online availability of the [Product][google.cloud.retail.v2.Product]. * Default to * [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK]. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [availability](https://support.google.com/merchants/answer/6324448). - * Schema.org Property [Offer.availability](https://schema.org/availability). + * Schema.org property [Offer.availability](https://schema.org/availability). * * * .google.cloud.retail.v2.Product.Availability availability = 19; @@ -8803,9 +8919,9 @@ public Builder setAvailabilityValue(int value) { * The online availability of the [Product][google.cloud.retail.v2.Product]. * Default to * [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK]. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [availability](https://support.google.com/merchants/answer/6324448). - * Schema.org Property [Offer.availability](https://schema.org/availability). + * Schema.org property [Offer.availability](https://schema.org/availability). * * * .google.cloud.retail.v2.Product.Availability availability = 19; @@ -8826,9 +8942,9 @@ public com.google.cloud.retail.v2.Product.Availability getAvailability() { * The online availability of the [Product][google.cloud.retail.v2.Product]. * Default to * [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK]. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [availability](https://support.google.com/merchants/answer/6324448). - * Schema.org Property [Offer.availability](https://schema.org/availability). + * Schema.org property [Offer.availability](https://schema.org/availability). * * * .google.cloud.retail.v2.Product.Availability availability = 19; @@ -8852,9 +8968,9 @@ public Builder setAvailability(com.google.cloud.retail.v2.Product.Availability v * The online availability of the [Product][google.cloud.retail.v2.Product]. * Default to * [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK]. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [availability](https://support.google.com/merchants/answer/6324448). - * Schema.org Property [Offer.availability](https://schema.org/availability). + * Schema.org property [Offer.availability](https://schema.org/availability). * * * .google.cloud.retail.v2.Product.Availability availability = 19; @@ -9490,7 +9606,7 @@ public com.google.cloud.retail.v2.FulfillmentInfo.Builder addFulfillmentInfoBuil * otherwise the service performance could be significantly degraded. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [link](https://support.google.com/merchants/answer/6324416). Schema.org * property [Offer.url](https://schema.org/url). * @@ -9519,7 +9635,7 @@ public java.lang.String getUri() { * otherwise the service performance could be significantly degraded. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [link](https://support.google.com/merchants/answer/6324416). Schema.org * property [Offer.url](https://schema.org/url). * @@ -9548,7 +9664,7 @@ public com.google.protobuf.ByteString getUriBytes() { * otherwise the service performance could be significantly degraded. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [link](https://support.google.com/merchants/answer/6324416). Schema.org * property [Offer.url](https://schema.org/url). * @@ -9576,7 +9692,7 @@ public Builder setUri(java.lang.String value) { * otherwise the service performance could be significantly degraded. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [link](https://support.google.com/merchants/answer/6324416). Schema.org * property [Offer.url](https://schema.org/url). * @@ -9600,7 +9716,7 @@ public Builder clearUri() { * otherwise the service performance could be significantly degraded. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [link](https://support.google.com/merchants/answer/6324416). Schema.org * property [Offer.url](https://schema.org/url). * @@ -9641,10 +9757,10 @@ private void ensureImagesIsMutable() { * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -9662,10 +9778,10 @@ public java.util.List getImagesList() { * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -9683,10 +9799,10 @@ public int getImagesCount() { * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -9704,10 +9820,10 @@ public com.google.cloud.retail.v2.Image getImages(int index) { * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -9731,10 +9847,10 @@ public Builder setImages(int index, com.google.cloud.retail.v2.Image value) { * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -9755,10 +9871,10 @@ public Builder setImages(int index, com.google.cloud.retail.v2.Image.Builder bui * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -9782,10 +9898,10 @@ public Builder addImages(com.google.cloud.retail.v2.Image value) { * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -9809,10 +9925,10 @@ public Builder addImages(int index, com.google.cloud.retail.v2.Image value) { * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -9833,10 +9949,10 @@ public Builder addImages(com.google.cloud.retail.v2.Image.Builder builderForValu * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -9857,10 +9973,10 @@ public Builder addImages(int index, com.google.cloud.retail.v2.Image.Builder bui * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -9882,10 +9998,10 @@ public Builder addAllImages( * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -9906,10 +10022,10 @@ public Builder clearImages() { * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -9930,10 +10046,10 @@ public Builder removeImages(int index) { * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -9947,10 +10063,10 @@ public com.google.cloud.retail.v2.Image.Builder getImagesBuilder(int index) { * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -9968,10 +10084,10 @@ public com.google.cloud.retail.v2.ImageOrBuilder getImagesOrBuilder(int index) { * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -9990,10 +10106,10 @@ public com.google.cloud.retail.v2.ImageOrBuilder getImagesOrBuilder(int index) { * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -10008,10 +10124,10 @@ public com.google.cloud.retail.v2.Image.Builder addImagesBuilder() { * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -10026,10 +10142,10 @@ public com.google.cloud.retail.v2.Image.Builder addImagesBuilder(int index) { * * *
    -     * Product images for the product.Highly recommended to put the main image
    -     * to the first.
    +     * Product images for the product. We highly recommend putting the main
    +     * image first.
          * A maximum of 300 images are allowed.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [image_link](https://support.google.com/merchants/answer/6324350).
          * Schema.org property [Product.image](https://schema.org/image).
          * 
    @@ -10262,7 +10378,7 @@ public com.google.cloud.retail.v2.AudienceOrBuilder getAudienceOrBuilder() { * *
          * The color of the product.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [color](https://support.google.com/merchants/answer/6324487). Schema.org
          * property [Product.color](https://schema.org/color).
          * 
    @@ -10279,7 +10395,7 @@ public boolean hasColorInfo() { * *
          * The color of the product.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [color](https://support.google.com/merchants/answer/6324487). Schema.org
          * property [Product.color](https://schema.org/color).
          * 
    @@ -10302,7 +10418,7 @@ public com.google.cloud.retail.v2.ColorInfo getColorInfo() { * *
          * The color of the product.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [color](https://support.google.com/merchants/answer/6324487). Schema.org
          * property [Product.color](https://schema.org/color).
          * 
    @@ -10327,7 +10443,7 @@ public Builder setColorInfo(com.google.cloud.retail.v2.ColorInfo value) { * *
          * The color of the product.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [color](https://support.google.com/merchants/answer/6324487). Schema.org
          * property [Product.color](https://schema.org/color).
          * 
    @@ -10349,7 +10465,7 @@ public Builder setColorInfo(com.google.cloud.retail.v2.ColorInfo.Builder builder * *
          * The color of the product.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [color](https://support.google.com/merchants/answer/6324487). Schema.org
          * property [Product.color](https://schema.org/color).
          * 
    @@ -10378,7 +10494,7 @@ public Builder mergeColorInfo(com.google.cloud.retail.v2.ColorInfo value) { * *
          * The color of the product.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [color](https://support.google.com/merchants/answer/6324487). Schema.org
          * property [Product.color](https://schema.org/color).
          * 
    @@ -10401,7 +10517,7 @@ public Builder clearColorInfo() { * *
          * The color of the product.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [color](https://support.google.com/merchants/answer/6324487). Schema.org
          * property [Product.color](https://schema.org/color).
          * 
    @@ -10418,7 +10534,7 @@ public com.google.cloud.retail.v2.ColorInfo.Builder getColorInfoBuilder() { * *
          * The color of the product.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [color](https://support.google.com/merchants/answer/6324487). Schema.org
          * property [Product.color](https://schema.org/color).
          * 
    @@ -10439,7 +10555,7 @@ public com.google.cloud.retail.v2.ColorInfoOrBuilder getColorInfoOrBuilder() { * *
          * The color of the product.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [color](https://support.google.com/merchants/answer/6324487). Schema.org
          * property [Product.color](https://schema.org/color).
          * 
    @@ -10486,9 +10602,9 @@ private void ensureSizesIsMutable() { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [size](https://support.google.com/merchants/answer/6324492), - * [size_type](https://support.google.com/merchants/answer/6324497) and + * [size_type](https://support.google.com/merchants/answer/6324497), and * [size_system](https://support.google.com/merchants/answer/6324502). * Schema.org property [Product.size](https://schema.org/size). * @@ -10514,9 +10630,9 @@ public com.google.protobuf.ProtocolStringList getSizesList() { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [size](https://support.google.com/merchants/answer/6324492), - * [size_type](https://support.google.com/merchants/answer/6324497) and + * [size_type](https://support.google.com/merchants/answer/6324497), and * [size_system](https://support.google.com/merchants/answer/6324502). * Schema.org property [Product.size](https://schema.org/size). * @@ -10542,9 +10658,9 @@ public int getSizesCount() { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [size](https://support.google.com/merchants/answer/6324492), - * [size_type](https://support.google.com/merchants/answer/6324497) and + * [size_type](https://support.google.com/merchants/answer/6324497), and * [size_system](https://support.google.com/merchants/answer/6324502). * Schema.org property [Product.size](https://schema.org/size). * @@ -10571,9 +10687,9 @@ public java.lang.String getSizes(int index) { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [size](https://support.google.com/merchants/answer/6324492), - * [size_type](https://support.google.com/merchants/answer/6324497) and + * [size_type](https://support.google.com/merchants/answer/6324497), and * [size_system](https://support.google.com/merchants/answer/6324502). * Schema.org property [Product.size](https://schema.org/size). * @@ -10600,9 +10716,9 @@ public com.google.protobuf.ByteString getSizesBytes(int index) { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [size](https://support.google.com/merchants/answer/6324492), - * [size_type](https://support.google.com/merchants/answer/6324497) and + * [size_type](https://support.google.com/merchants/answer/6324497), and * [size_system](https://support.google.com/merchants/answer/6324502). * Schema.org property [Product.size](https://schema.org/size). * @@ -10636,9 +10752,9 @@ public Builder setSizes(int index, java.lang.String value) { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [size](https://support.google.com/merchants/answer/6324492), - * [size_type](https://support.google.com/merchants/answer/6324497) and + * [size_type](https://support.google.com/merchants/answer/6324497), and * [size_system](https://support.google.com/merchants/answer/6324502). * Schema.org property [Product.size](https://schema.org/size). * @@ -10671,9 +10787,9 @@ public Builder addSizes(java.lang.String value) { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [size](https://support.google.com/merchants/answer/6324492), - * [size_type](https://support.google.com/merchants/answer/6324497) and + * [size_type](https://support.google.com/merchants/answer/6324497), and * [size_system](https://support.google.com/merchants/answer/6324502). * Schema.org property [Product.size](https://schema.org/size). * @@ -10703,9 +10819,9 @@ public Builder addAllSizes(java.lang.Iterable values) { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [size](https://support.google.com/merchants/answer/6324492), - * [size_type](https://support.google.com/merchants/answer/6324497) and + * [size_type](https://support.google.com/merchants/answer/6324497), and * [size_system](https://support.google.com/merchants/answer/6324502). * Schema.org property [Product.size](https://schema.org/size). * @@ -10734,9 +10850,9 @@ public Builder clearSizes() { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [size](https://support.google.com/merchants/answer/6324492), - * [size_type](https://support.google.com/merchants/answer/6324497) and + * [size_type](https://support.google.com/merchants/answer/6324497), and * [size_system](https://support.google.com/merchants/answer/6324502). * Schema.org property [Product.size](https://schema.org/size). * @@ -10772,9 +10888,9 @@ private void ensureMaterialsIsMutable() { *
          * The material of the product. For example, "leather", "wooden".
          * A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -     * string with a length limit of 128 characters. Otherwise, an
    +     * string with a length limit of 200 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [material](https://support.google.com/merchants/answer/6324410). Schema.org
          * property [Product.material](https://schema.org/material).
          * 
    @@ -10792,9 +10908,9 @@ public com.google.protobuf.ProtocolStringList getMaterialsList() { *
          * The material of the product. For example, "leather", "wooden".
          * A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -     * string with a length limit of 128 characters. Otherwise, an
    +     * string with a length limit of 200 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [material](https://support.google.com/merchants/answer/6324410). Schema.org
          * property [Product.material](https://schema.org/material).
          * 
    @@ -10812,9 +10928,9 @@ public int getMaterialsCount() { *
          * The material of the product. For example, "leather", "wooden".
          * A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -     * string with a length limit of 128 characters. Otherwise, an
    +     * string with a length limit of 200 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [material](https://support.google.com/merchants/answer/6324410). Schema.org
          * property [Product.material](https://schema.org/material).
          * 
    @@ -10833,9 +10949,9 @@ public java.lang.String getMaterials(int index) { *
          * The material of the product. For example, "leather", "wooden".
          * A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -     * string with a length limit of 128 characters. Otherwise, an
    +     * string with a length limit of 200 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [material](https://support.google.com/merchants/answer/6324410). Schema.org
          * property [Product.material](https://schema.org/material).
          * 
    @@ -10854,9 +10970,9 @@ public com.google.protobuf.ByteString getMaterialsBytes(int index) { *
          * The material of the product. For example, "leather", "wooden".
          * A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -     * string with a length limit of 128 characters. Otherwise, an
    +     * string with a length limit of 200 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [material](https://support.google.com/merchants/answer/6324410). Schema.org
          * property [Product.material](https://schema.org/material).
          * 
    @@ -10882,9 +10998,9 @@ public Builder setMaterials(int index, java.lang.String value) { *
          * The material of the product. For example, "leather", "wooden".
          * A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -     * string with a length limit of 128 characters. Otherwise, an
    +     * string with a length limit of 200 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [material](https://support.google.com/merchants/answer/6324410). Schema.org
          * property [Product.material](https://schema.org/material).
          * 
    @@ -10909,9 +11025,9 @@ public Builder addMaterials(java.lang.String value) { *
          * The material of the product. For example, "leather", "wooden".
          * A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -     * string with a length limit of 128 characters. Otherwise, an
    +     * string with a length limit of 200 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [material](https://support.google.com/merchants/answer/6324410). Schema.org
          * property [Product.material](https://schema.org/material).
          * 
    @@ -10933,9 +11049,9 @@ public Builder addAllMaterials(java.lang.Iterable values) { *
          * The material of the product. For example, "leather", "wooden".
          * A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -     * string with a length limit of 128 characters. Otherwise, an
    +     * string with a length limit of 200 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [material](https://support.google.com/merchants/answer/6324410). Schema.org
          * property [Product.material](https://schema.org/material).
          * 
    @@ -10956,9 +11072,9 @@ public Builder clearMaterials() { *
          * The material of the product. For example, "leather", "wooden".
          * A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -     * string with a length limit of 128 characters. Otherwise, an
    +     * string with a length limit of 200 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [material](https://support.google.com/merchants/answer/6324410). Schema.org
          * property [Product.material](https://schema.org/material).
          * 
    @@ -10998,7 +11114,7 @@ private void ensurePatternsIsMutable() { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [pattern](https://support.google.com/merchants/answer/6324483). Schema.org * property [Product.pattern](https://schema.org/pattern). * @@ -11020,7 +11136,7 @@ public com.google.protobuf.ProtocolStringList getPatternsList() { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [pattern](https://support.google.com/merchants/answer/6324483). Schema.org * property [Product.pattern](https://schema.org/pattern). * @@ -11042,7 +11158,7 @@ public int getPatternsCount() { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [pattern](https://support.google.com/merchants/answer/6324483). Schema.org * property [Product.pattern](https://schema.org/pattern). * @@ -11065,7 +11181,7 @@ public java.lang.String getPatterns(int index) { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [pattern](https://support.google.com/merchants/answer/6324483). Schema.org * property [Product.pattern](https://schema.org/pattern). * @@ -11088,7 +11204,7 @@ public com.google.protobuf.ByteString getPatternsBytes(int index) { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [pattern](https://support.google.com/merchants/answer/6324483). Schema.org * property [Product.pattern](https://schema.org/pattern). * @@ -11118,7 +11234,7 @@ public Builder setPatterns(int index, java.lang.String value) { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [pattern](https://support.google.com/merchants/answer/6324483). Schema.org * property [Product.pattern](https://schema.org/pattern). * @@ -11147,7 +11263,7 @@ public Builder addPatterns(java.lang.String value) { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [pattern](https://support.google.com/merchants/answer/6324483). Schema.org * property [Product.pattern](https://schema.org/pattern). * @@ -11173,7 +11289,7 @@ public Builder addAllPatterns(java.lang.Iterable values) { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [pattern](https://support.google.com/merchants/answer/6324483). Schema.org * property [Product.pattern](https://schema.org/pattern). * @@ -11198,7 +11314,7 @@ public Builder clearPatterns() { * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [pattern](https://support.google.com/merchants/answer/6324483). Schema.org * property [Product.pattern](https://schema.org/pattern). * @@ -11234,11 +11350,11 @@ private void ensureConditionsIsMutable() { *
          * The condition of the product. Strongly encouraged to use the standard
          * values: "new", "refurbished", "used".
    -     * A maximum of 5 values are allowed per
    +     * A maximum of 1 value is allowed per
          * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
          * encoded string with a length limit of 128 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [condition](https://support.google.com/merchants/answer/6324469).
          * Schema.org property
          * [Offer.itemCondition](https://schema.org/itemCondition).
    @@ -11257,11 +11373,11 @@ public com.google.protobuf.ProtocolStringList getConditionsList() {
          * 
          * The condition of the product. Strongly encouraged to use the standard
          * values: "new", "refurbished", "used".
    -     * A maximum of 5 values are allowed per
    +     * A maximum of 1 value is allowed per
          * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
          * encoded string with a length limit of 128 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [condition](https://support.google.com/merchants/answer/6324469).
          * Schema.org property
          * [Offer.itemCondition](https://schema.org/itemCondition).
    @@ -11280,11 +11396,11 @@ public int getConditionsCount() {
          * 
          * The condition of the product. Strongly encouraged to use the standard
          * values: "new", "refurbished", "used".
    -     * A maximum of 5 values are allowed per
    +     * A maximum of 1 value is allowed per
          * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
          * encoded string with a length limit of 128 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [condition](https://support.google.com/merchants/answer/6324469).
          * Schema.org property
          * [Offer.itemCondition](https://schema.org/itemCondition).
    @@ -11304,11 +11420,11 @@ public java.lang.String getConditions(int index) {
          * 
          * The condition of the product. Strongly encouraged to use the standard
          * values: "new", "refurbished", "used".
    -     * A maximum of 5 values are allowed per
    +     * A maximum of 1 value is allowed per
          * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
          * encoded string with a length limit of 128 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [condition](https://support.google.com/merchants/answer/6324469).
          * Schema.org property
          * [Offer.itemCondition](https://schema.org/itemCondition).
    @@ -11328,11 +11444,11 @@ public com.google.protobuf.ByteString getConditionsBytes(int index) {
          * 
          * The condition of the product. Strongly encouraged to use the standard
          * values: "new", "refurbished", "used".
    -     * A maximum of 5 values are allowed per
    +     * A maximum of 1 value is allowed per
          * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
          * encoded string with a length limit of 128 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [condition](https://support.google.com/merchants/answer/6324469).
          * Schema.org property
          * [Offer.itemCondition](https://schema.org/itemCondition).
    @@ -11359,11 +11475,11 @@ public Builder setConditions(int index, java.lang.String value) {
          * 
          * The condition of the product. Strongly encouraged to use the standard
          * values: "new", "refurbished", "used".
    -     * A maximum of 5 values are allowed per
    +     * A maximum of 1 value is allowed per
          * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
          * encoded string with a length limit of 128 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [condition](https://support.google.com/merchants/answer/6324469).
          * Schema.org property
          * [Offer.itemCondition](https://schema.org/itemCondition).
    @@ -11389,11 +11505,11 @@ public Builder addConditions(java.lang.String value) {
          * 
          * The condition of the product. Strongly encouraged to use the standard
          * values: "new", "refurbished", "used".
    -     * A maximum of 5 values are allowed per
    +     * A maximum of 1 value is allowed per
          * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
          * encoded string with a length limit of 128 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [condition](https://support.google.com/merchants/answer/6324469).
          * Schema.org property
          * [Offer.itemCondition](https://schema.org/itemCondition).
    @@ -11416,11 +11532,11 @@ public Builder addAllConditions(java.lang.Iterable values) {
          * 
          * The condition of the product. Strongly encouraged to use the standard
          * values: "new", "refurbished", "used".
    -     * A maximum of 5 values are allowed per
    +     * A maximum of 1 value is allowed per
          * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
          * encoded string with a length limit of 128 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [condition](https://support.google.com/merchants/answer/6324469).
          * Schema.org property
          * [Offer.itemCondition](https://schema.org/itemCondition).
    @@ -11442,11 +11558,11 @@ public Builder clearConditions() {
          * 
          * The condition of the product. Strongly encouraged to use the standard
          * values: "new", "refurbished", "used".
    -     * A maximum of 5 values are allowed per
    +     * A maximum of 1 value is allowed per
          * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
          * encoded string with a length limit of 128 characters. Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * Google Merchant Center property
    +     * Corresponding properties: Google Merchant Center property
          * [condition](https://support.google.com/merchants/answer/6324469).
          * Schema.org property
          * [Offer.itemCondition](https://schema.org/itemCondition).
    @@ -11489,7 +11605,9 @@ private void ensurePromotionsIsMutable() {
          *
          * 
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -11506,7 +11624,9 @@ public java.util.List getPromotionsList() * *
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -11523,7 +11643,9 @@ public int getPromotionsCount() { * *
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -11540,7 +11662,9 @@ public com.google.cloud.retail.v2.Promotion getPromotions(int index) { * *
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -11563,7 +11687,9 @@ public Builder setPromotions(int index, com.google.cloud.retail.v2.Promotion val * *
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -11584,7 +11710,9 @@ public Builder setPromotions( * *
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -11607,7 +11735,9 @@ public Builder addPromotions(com.google.cloud.retail.v2.Promotion value) { * *
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -11630,7 +11760,9 @@ public Builder addPromotions(int index, com.google.cloud.retail.v2.Promotion val * *
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -11650,7 +11782,9 @@ public Builder addPromotions(com.google.cloud.retail.v2.Promotion.Builder builde * *
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -11671,7 +11805,9 @@ public Builder addPromotions( * *
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -11692,7 +11828,9 @@ public Builder addAllPromotions( * *
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -11712,7 +11850,9 @@ public Builder clearPromotions() { * *
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -11732,7 +11872,9 @@ public Builder removePromotions(int index) { * *
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -11745,7 +11887,9 @@ public com.google.cloud.retail.v2.Promotion.Builder getPromotionsBuilder(int ind * *
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -11762,7 +11906,9 @@ public com.google.cloud.retail.v2.PromotionOrBuilder getPromotionsOrBuilder(int * *
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -11780,7 +11926,9 @@ public com.google.cloud.retail.v2.PromotionOrBuilder getPromotionsOrBuilder(int * *
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -11794,7 +11942,9 @@ public com.google.cloud.retail.v2.Promotion.Builder addPromotionsBuilder() { * *
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -11808,7 +11958,9 @@ public com.google.cloud.retail.v2.Promotion.Builder addPromotionsBuilder(int ind * *
          * The promotions applied to the product. A maximum of 10 values are allowed
    -     * per [Product][google.cloud.retail.v2.Product].
    +     * per [Product][google.cloud.retail.v2.Product]. Only
    +     * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +     * will be used, other fields will be ignored if set.
          * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; 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 33b8c204..87ed5168 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 @@ -41,7 +41,7 @@ public interface ProductOrBuilder * than [available_time][google.cloud.retail.v2.Product.available_time] and * [publish_time][google.cloud.retail.v2.Product.publish_time], otherwise an * INVALID_ARGUMENT error is thrown. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [expiration_date](https://support.google.com/merchants/answer/6324499). *
    * @@ -68,7 +68,7 @@ public interface ProductOrBuilder * than [available_time][google.cloud.retail.v2.Product.available_time] and * [publish_time][google.cloud.retail.v2.Product.publish_time], otherwise an * INVALID_ARGUMENT error is thrown. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [expiration_date](https://support.google.com/merchants/answer/6324499). *
    * @@ -95,7 +95,7 @@ public interface ProductOrBuilder * than [available_time][google.cloud.retail.v2.Product.available_time] and * [publish_time][google.cloud.retail.v2.Product.publish_time], otherwise an * INVALID_ARGUMENT error is thrown. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [expiration_date](https://support.google.com/merchants/answer/6324499). *
    * @@ -215,9 +215,9 @@ public interface ProductOrBuilder * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. * This field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [id](https://support.google.com/merchants/answer/6324405). Schema.org - * Property [Product.sku](https://schema.org/sku). + * property [Product.sku](https://schema.org/sku). *
    * * string id = 2 [(.google.api.field_behavior) = IMMUTABLE]; @@ -236,9 +236,9 @@ public interface ProductOrBuilder * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. * This field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [id](https://support.google.com/merchants/answer/6324405). Schema.org - * Property [Product.sku](https://schema.org/sku). + * property [Product.sku](https://schema.org/sku). *
    * * string id = 2 [(.google.api.field_behavior) = IMMUTABLE]; @@ -293,12 +293,10 @@ public interface ProductOrBuilder * [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] * [Product][google.cloud.retail.v2.Product]. Otherwise, an INVALID_ARGUMENT * error is returned. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [item_group_id](https://support.google.com/merchants/answer/6324507). - * Schema.org Property + * Schema.org property * [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). - * This field must be enabled before it can be used. [Learn - * more](/recommendations-ai/docs/catalog#item-group-id). *
    * * string primary_product_id = 4; @@ -321,12 +319,10 @@ public interface ProductOrBuilder * [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] * [Product][google.cloud.retail.v2.Product]. Otherwise, an INVALID_ARGUMENT * error is returned. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [item_group_id](https://support.google.com/merchants/answer/6324507). - * Schema.org Property + * Schema.org property * [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). - * This field must be enabled before it can be used. [Learn - * more](/recommendations-ai/docs/catalog#item-group-id). *
    * * string primary_product_id = 4; @@ -342,8 +338,13 @@ public interface ProductOrBuilder * The [id][google.cloud.retail.v2.Product.id] of the collection members when * [type][google.cloud.retail.v2.Product.type] is * [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. - * Should not set it for other types. A maximum of 1000 values are allowed. - * Otherwise, an INVALID_ARGUMENT error is return. + * Non-existent product ids are allowed. + * The [type][google.cloud.retail.v2.Product.type] of the members must be + * either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + * [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and + * INVALID_ARGUMENT error is thrown. Should not set it for other types. A + * maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + * return. *
    * * repeated string collection_member_ids = 5; @@ -358,8 +359,13 @@ public interface ProductOrBuilder * The [id][google.cloud.retail.v2.Product.id] of the collection members when * [type][google.cloud.retail.v2.Product.type] is * [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. - * Should not set it for other types. A maximum of 1000 values are allowed. - * Otherwise, an INVALID_ARGUMENT error is return. + * Non-existent product ids are allowed. + * The [type][google.cloud.retail.v2.Product.type] of the members must be + * either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + * [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and + * INVALID_ARGUMENT error is thrown. Should not set it for other types. A + * maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + * return. *
    * * repeated string collection_member_ids = 5; @@ -374,8 +380,13 @@ public interface ProductOrBuilder * The [id][google.cloud.retail.v2.Product.id] of the collection members when * [type][google.cloud.retail.v2.Product.type] is * [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. - * Should not set it for other types. A maximum of 1000 values are allowed. - * Otherwise, an INVALID_ARGUMENT error is return. + * Non-existent product ids are allowed. + * The [type][google.cloud.retail.v2.Product.type] of the members must be + * either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + * [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and + * INVALID_ARGUMENT error is thrown. Should not set it for other types. A + * maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + * return. * * * repeated string collection_member_ids = 5; @@ -391,8 +402,13 @@ public interface ProductOrBuilder * The [id][google.cloud.retail.v2.Product.id] of the collection members when * [type][google.cloud.retail.v2.Product.type] is * [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. - * Should not set it for other types. A maximum of 1000 values are allowed. - * Otherwise, an INVALID_ARGUMENT error is return. + * Non-existent product ids are allowed. + * The [type][google.cloud.retail.v2.Product.type] of the members must be + * either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or + * [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and + * INVALID_ARGUMENT error is thrown. Should not set it for other types. A + * maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is + * return. * * * repeated string collection_member_ids = 5; @@ -411,13 +427,13 @@ public interface ProductOrBuilder * characters. Otherwise, an INVALID_ARGUMENT error is returned. * This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is * returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [gtin](https://support.google.com/merchants/answer/6324461). * Schema.org property - * [Product.isbn](https://schema.org/isbn) or - * [Product.gtin8](https://schema.org/gtin8) or - * [Product.gtin12](https://schema.org/gtin12) or - * [Product.gtin13](https://schema.org/gtin13) or + * [Product.isbn](https://schema.org/isbn), + * [Product.gtin8](https://schema.org/gtin8), + * [Product.gtin12](https://schema.org/gtin12), + * [Product.gtin13](https://schema.org/gtin13), or * [Product.gtin14](https://schema.org/gtin14). * If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. * @@ -436,13 +452,13 @@ public interface ProductOrBuilder * characters. Otherwise, an INVALID_ARGUMENT error is returned. * This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is * returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [gtin](https://support.google.com/merchants/answer/6324461). * Schema.org property - * [Product.isbn](https://schema.org/isbn) or - * [Product.gtin8](https://schema.org/gtin8) or - * [Product.gtin12](https://schema.org/gtin12) or - * [Product.gtin13](https://schema.org/gtin13) or + * [Product.isbn](https://schema.org/isbn), + * [Product.gtin8](https://schema.org/gtin8), + * [Product.gtin12](https://schema.org/gtin12), + * [Product.gtin13](https://schema.org/gtin13), or * [Product.gtin14](https://schema.org/gtin14). * If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. * @@ -478,7 +494,7 @@ public interface ProductOrBuilder * [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. * Each value must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [google_product_category][mc_google_product_category]. Schema.org property * [Product.category] (https://schema.org/category). * [mc_google_product_category]: @@ -515,7 +531,7 @@ public interface ProductOrBuilder * [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. * Each value must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [google_product_category][mc_google_product_category]. Schema.org property * [Product.category] (https://schema.org/category). * [mc_google_product_category]: @@ -552,7 +568,7 @@ public interface ProductOrBuilder * [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. * Each value must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [google_product_category][mc_google_product_category]. Schema.org property * [Product.category] (https://schema.org/category). * [mc_google_product_category]: @@ -590,7 +606,7 @@ public interface ProductOrBuilder * [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. * Each value must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [google_product_category][mc_google_product_category]. Schema.org property * [Product.category] (https://schema.org/category). * [mc_google_product_category]: @@ -611,7 +627,7 @@ public interface ProductOrBuilder * Required. Product title. * This field must be a UTF-8 encoded string with a length limit of 1,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [title](https://support.google.com/merchants/answer/6324415). Schema.org * property [Product.name](https://schema.org/name). * @@ -628,7 +644,7 @@ public interface ProductOrBuilder * Required. Product title. * This field must be a UTF-8 encoded string with a length limit of 1,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [title](https://support.google.com/merchants/answer/6324415). Schema.org * property [Product.name](https://schema.org/name). * @@ -647,7 +663,7 @@ public interface ProductOrBuilder * A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded * string with a length limit of 1,000 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [brand](https://support.google.com/merchants/answer/6324351). Schema.org * property [Product.brand](https://schema.org/brand). * @@ -665,7 +681,7 @@ public interface ProductOrBuilder * A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded * string with a length limit of 1,000 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [brand](https://support.google.com/merchants/answer/6324351). Schema.org * property [Product.brand](https://schema.org/brand). * @@ -683,7 +699,7 @@ public interface ProductOrBuilder * A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded * string with a length limit of 1,000 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [brand](https://support.google.com/merchants/answer/6324351). Schema.org * property [Product.brand](https://schema.org/brand). * @@ -702,7 +718,7 @@ public interface ProductOrBuilder * A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded * string with a length limit of 1,000 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [brand](https://support.google.com/merchants/answer/6324351). Schema.org * property [Product.brand](https://schema.org/brand). * @@ -721,9 +737,9 @@ public interface ProductOrBuilder * Product description. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [description](https://support.google.com/merchants/answer/6324468). - * schema.org property [Product.description](https://schema.org/description). + * Schema.org property [Product.description](https://schema.org/description). * * * string description = 10; @@ -738,9 +754,9 @@ public interface ProductOrBuilder * Product description. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [description](https://support.google.com/merchants/answer/6324468). - * schema.org property [Product.description](https://schema.org/description). + * Schema.org property [Product.description](https://schema.org/description). * * * string description = 10; @@ -754,7 +770,7 @@ public interface ProductOrBuilder * *
        * Language of the title/description and other string attributes. Use language
    -   * tags defined by [BCP 47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt].
    +   * tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
        * For product prediction, this field is ignored and the model automatically
        * detects the text language. The [Product][google.cloud.retail.v2.Product]
        * can include text in different languages, but duplicating
    @@ -773,7 +789,7 @@ public interface ProductOrBuilder
        *
        * 
        * Language of the title/description and other string attributes. Use language
    -   * tags defined by [BCP 47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt].
    +   * tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
        * For product prediction, this field is ignored and the model automatically
        * detects the text language. The [Product][google.cloud.retail.v2.Product]
        * can include text in different languages, but duplicating
    @@ -810,7 +826,12 @@ public interface ProductOrBuilder
        * * The key must be a UTF-8 encoded string with a length limit of 128
        *   characters.
        * * For indexable attribute, the key must match the pattern:
    -   *   `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS.
    +   *   `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or
    +   *   `KEY_1_LIKE_THIS`.
    +   * * For text attributes, at most 400 values are allowed. Empty values are not
    +   *   allowed. Each value must be a non-empty UTF-8 encoded string with a
    +   *   length limit of 256 characters.
    +   * * For number attributes, at most 400 values are allowed.
        * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 12; @@ -838,7 +859,12 @@ public interface ProductOrBuilder * * The key must be a UTF-8 encoded string with a length limit of 128 * characters. * * For indexable attribute, the key must match the pattern: - * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS. + * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or + * `KEY_1_LIKE_THIS`. + * * For text attributes, at most 400 values are allowed. Empty values are not + * allowed. Each value must be a non-empty UTF-8 encoded string with a + * length limit of 256 characters. + * * For number attributes, at most 400 values are allowed. *
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 12; @@ -869,7 +895,12 @@ public interface ProductOrBuilder * * The key must be a UTF-8 encoded string with a length limit of 128 * characters. * * For indexable attribute, the key must match the pattern: - * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS. + * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or + * `KEY_1_LIKE_THIS`. + * * For text attributes, at most 400 values are allowed. Empty values are not + * allowed. Each value must be a non-empty UTF-8 encoded string with a + * length limit of 256 characters. + * * For number attributes, at most 400 values are allowed. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 12; @@ -897,7 +928,12 @@ public interface ProductOrBuilder * * The key must be a UTF-8 encoded string with a length limit of 128 * characters. * * For indexable attribute, the key must match the pattern: - * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS. + * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or + * `KEY_1_LIKE_THIS`. + * * For text attributes, at most 400 values are allowed. Empty values are not + * allowed. Each value must be a non-empty UTF-8 encoded string with a + * length limit of 256 characters. + * * For number attributes, at most 400 values are allowed. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 12; @@ -926,7 +962,12 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * * The key must be a UTF-8 encoded string with a length limit of 128 * characters. * * For indexable attribute, the key must match the pattern: - * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS. + * `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or + * `KEY_1_LIKE_THIS`. + * * For text attributes, at most 400 values are allowed. Empty values are not + * allowed. Each value must be a non-empty UTF-8 encoded string with a + * length limit of 256 characters. + * * For number attributes, at most 400 values are allowed. * * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 12; @@ -945,7 +986,7 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * This tag can be used for filtering recommendation results by passing the * tag as part of the * [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [custom_label_0–4](https://support.google.com/merchants/answer/6324473). * * @@ -966,7 +1007,7 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * This tag can be used for filtering recommendation results by passing the * tag as part of the * [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [custom_label_0–4](https://support.google.com/merchants/answer/6324473). * * @@ -987,7 +1028,7 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * This tag can be used for filtering recommendation results by passing the * tag as part of the * [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [custom_label_0–4](https://support.google.com/merchants/answer/6324473). * * @@ -1009,7 +1050,7 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * This tag can be used for filtering recommendation results by passing the * tag as part of the * [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [custom_label_0–4](https://support.google.com/merchants/answer/6324473). * * @@ -1025,7 +1066,7 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * *
        * Product price and cost information.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [price](https://support.google.com/merchants/answer/6324371).
        * 
    * @@ -1039,7 +1080,7 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * *
        * Product price and cost information.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [price](https://support.google.com/merchants/answer/6324371).
        * 
    * @@ -1053,7 +1094,7 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * *
        * Product price and cost information.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [price](https://support.google.com/merchants/answer/6324371).
        * 
    * @@ -1144,9 +1185,9 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * The online availability of the [Product][google.cloud.retail.v2.Product]. * Default to * [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK]. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [availability](https://support.google.com/merchants/answer/6324448). - * Schema.org Property [Offer.availability](https://schema.org/availability). + * Schema.org property [Offer.availability](https://schema.org/availability). * * * .google.cloud.retail.v2.Product.Availability availability = 19; @@ -1161,9 +1202,9 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * The online availability of the [Product][google.cloud.retail.v2.Product]. * Default to * [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK]. - * Google Merchant Center Property + * Corresponding properties: Google Merchant Center property * [availability](https://support.google.com/merchants/answer/6324448). - * Schema.org Property [Offer.availability](https://schema.org/availability). + * Schema.org property [Offer.availability](https://schema.org/availability). * * * .google.cloud.retail.v2.Product.Availability availability = 19; @@ -1288,7 +1329,7 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * otherwise the service performance could be significantly degraded. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [link](https://support.google.com/merchants/answer/6324416). Schema.org * property [Offer.url](https://schema.org/url). * @@ -1307,7 +1348,7 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * otherwise the service performance could be significantly degraded. * This field must be a UTF-8 encoded string with a length limit of 5,000 * characters. Otherwise, an INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [link](https://support.google.com/merchants/answer/6324416). Schema.org * property [Offer.url](https://schema.org/url). * @@ -1322,10 +1363,10 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * * *
    -   * Product images for the product.Highly recommended to put the main image
    -   * to the first.
    +   * Product images for the product. We highly recommend putting the main
    +   * image first.
        * A maximum of 300 images are allowed.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [image_link](https://support.google.com/merchants/answer/6324350).
        * Schema.org property [Product.image](https://schema.org/image).
        * 
    @@ -1337,10 +1378,10 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * * *
    -   * Product images for the product.Highly recommended to put the main image
    -   * to the first.
    +   * Product images for the product. We highly recommend putting the main
    +   * image first.
        * A maximum of 300 images are allowed.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [image_link](https://support.google.com/merchants/answer/6324350).
        * Schema.org property [Product.image](https://schema.org/image).
        * 
    @@ -1352,10 +1393,10 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * * *
    -   * Product images for the product.Highly recommended to put the main image
    -   * to the first.
    +   * Product images for the product. We highly recommend putting the main
    +   * image first.
        * A maximum of 300 images are allowed.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [image_link](https://support.google.com/merchants/answer/6324350).
        * Schema.org property [Product.image](https://schema.org/image).
        * 
    @@ -1367,10 +1408,10 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * * *
    -   * Product images for the product.Highly recommended to put the main image
    -   * to the first.
    +   * Product images for the product. We highly recommend putting the main
    +   * image first.
        * A maximum of 300 images are allowed.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [image_link](https://support.google.com/merchants/answer/6324350).
        * Schema.org property [Product.image](https://schema.org/image).
        * 
    @@ -1382,10 +1423,10 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * * *
    -   * Product images for the product.Highly recommended to put the main image
    -   * to the first.
    +   * Product images for the product. We highly recommend putting the main
    +   * image first.
        * A maximum of 300 images are allowed.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [image_link](https://support.google.com/merchants/answer/6324350).
        * Schema.org property [Product.image](https://schema.org/image).
        * 
    @@ -1437,7 +1478,7 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * *
        * The color of the product.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [color](https://support.google.com/merchants/answer/6324487). Schema.org
        * property [Product.color](https://schema.org/color).
        * 
    @@ -1452,7 +1493,7 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * *
        * The color of the product.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [color](https://support.google.com/merchants/answer/6324487). Schema.org
        * property [Product.color](https://schema.org/color).
        * 
    @@ -1467,7 +1508,7 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * *
        * The color of the product.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [color](https://support.google.com/merchants/answer/6324487). Schema.org
        * property [Product.color](https://schema.org/color).
        * 
    @@ -1490,9 +1531,9 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [size](https://support.google.com/merchants/answer/6324492), - * [size_type](https://support.google.com/merchants/answer/6324497) and + * [size_type](https://support.google.com/merchants/answer/6324497), and * [size_system](https://support.google.com/merchants/answer/6324502). * Schema.org property [Product.size](https://schema.org/size). * @@ -1516,9 +1557,9 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [size](https://support.google.com/merchants/answer/6324492), - * [size_type](https://support.google.com/merchants/answer/6324497) and + * [size_type](https://support.google.com/merchants/answer/6324497), and * [size_system](https://support.google.com/merchants/answer/6324502). * Schema.org property [Product.size](https://schema.org/size). * @@ -1542,9 +1583,9 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [size](https://support.google.com/merchants/answer/6324492), - * [size_type](https://support.google.com/merchants/answer/6324497) and + * [size_type](https://support.google.com/merchants/answer/6324497), and * [size_system](https://support.google.com/merchants/answer/6324502). * Schema.org property [Product.size](https://schema.org/size). * @@ -1569,9 +1610,9 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [size](https://support.google.com/merchants/answer/6324492), - * [size_type](https://support.google.com/merchants/answer/6324497) and + * [size_type](https://support.google.com/merchants/answer/6324497), and * [size_system](https://support.google.com/merchants/answer/6324502). * Schema.org property [Product.size](https://schema.org/size). * @@ -1589,9 +1630,9 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( *
        * The material of the product. For example, "leather", "wooden".
        * A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -   * string with a length limit of 128 characters. Otherwise, an
    +   * string with a length limit of 200 characters. Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [material](https://support.google.com/merchants/answer/6324410). Schema.org
        * property [Product.material](https://schema.org/material).
        * 
    @@ -1607,9 +1648,9 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( *
        * The material of the product. For example, "leather", "wooden".
        * A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -   * string with a length limit of 128 characters. Otherwise, an
    +   * string with a length limit of 200 characters. Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [material](https://support.google.com/merchants/answer/6324410). Schema.org
        * property [Product.material](https://schema.org/material).
        * 
    @@ -1625,9 +1666,9 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( *
        * The material of the product. For example, "leather", "wooden".
        * A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -   * string with a length limit of 128 characters. Otherwise, an
    +   * string with a length limit of 200 characters. Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [material](https://support.google.com/merchants/answer/6324410). Schema.org
        * property [Product.material](https://schema.org/material).
        * 
    @@ -1644,9 +1685,9 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( *
        * The material of the product. For example, "leather", "wooden".
        * A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -   * string with a length limit of 128 characters. Otherwise, an
    +   * string with a length limit of 200 characters. Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [material](https://support.google.com/merchants/answer/6324410). Schema.org
        * property [Product.material](https://schema.org/material).
        * 
    @@ -1668,7 +1709,7 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [pattern](https://support.google.com/merchants/answer/6324483). Schema.org * property [Product.pattern](https://schema.org/pattern). * @@ -1688,7 +1729,7 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [pattern](https://support.google.com/merchants/answer/6324483). Schema.org * property [Product.pattern](https://schema.org/pattern). * @@ -1708,7 +1749,7 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [pattern](https://support.google.com/merchants/answer/6324483). Schema.org * property [Product.pattern](https://schema.org/pattern). * @@ -1729,7 +1770,7 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 * encoded string with a length limit of 128 characters. Otherwise, an * INVALID_ARGUMENT error is returned. - * Google Merchant Center property + * Corresponding properties: Google Merchant Center property * [pattern](https://support.google.com/merchants/answer/6324483). Schema.org * property [Product.pattern](https://schema.org/pattern). * @@ -1747,11 +1788,11 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( *
        * The condition of the product. Strongly encouraged to use the standard
        * values: "new", "refurbished", "used".
    -   * A maximum of 5 values are allowed per
    +   * A maximum of 1 value is allowed per
        * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
        * encoded string with a length limit of 128 characters. Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [condition](https://support.google.com/merchants/answer/6324469).
        * Schema.org property
        * [Offer.itemCondition](https://schema.org/itemCondition).
    @@ -1768,11 +1809,11 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault(
        * 
        * The condition of the product. Strongly encouraged to use the standard
        * values: "new", "refurbished", "used".
    -   * A maximum of 5 values are allowed per
    +   * A maximum of 1 value is allowed per
        * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
        * encoded string with a length limit of 128 characters. Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [condition](https://support.google.com/merchants/answer/6324469).
        * Schema.org property
        * [Offer.itemCondition](https://schema.org/itemCondition).
    @@ -1789,11 +1830,11 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault(
        * 
        * The condition of the product. Strongly encouraged to use the standard
        * values: "new", "refurbished", "used".
    -   * A maximum of 5 values are allowed per
    +   * A maximum of 1 value is allowed per
        * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
        * encoded string with a length limit of 128 characters. Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [condition](https://support.google.com/merchants/answer/6324469).
        * Schema.org property
        * [Offer.itemCondition](https://schema.org/itemCondition).
    @@ -1811,11 +1852,11 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault(
        * 
        * The condition of the product. Strongly encouraged to use the standard
        * values: "new", "refurbished", "used".
    -   * A maximum of 5 values are allowed per
    +   * A maximum of 1 value is allowed per
        * [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
        * encoded string with a length limit of 128 characters. Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * Google Merchant Center property
    +   * Corresponding properties: Google Merchant Center property
        * [condition](https://support.google.com/merchants/answer/6324469).
        * Schema.org property
        * [Offer.itemCondition](https://schema.org/itemCondition).
    @@ -1833,7 +1874,9 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault(
        *
        * 
        * The promotions applied to the product. A maximum of 10 values are allowed
    -   * per [Product][google.cloud.retail.v2.Product].
    +   * per [Product][google.cloud.retail.v2.Product]. Only
    +   * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +   * will be used, other fields will be ignored if set.
        * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -1844,7 +1887,9 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * *
        * The promotions applied to the product. A maximum of 10 values are allowed
    -   * per [Product][google.cloud.retail.v2.Product].
    +   * per [Product][google.cloud.retail.v2.Product]. Only
    +   * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +   * will be used, other fields will be ignored if set.
        * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -1855,7 +1900,9 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * *
        * The promotions applied to the product. A maximum of 10 values are allowed
    -   * per [Product][google.cloud.retail.v2.Product].
    +   * per [Product][google.cloud.retail.v2.Product]. Only
    +   * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +   * will be used, other fields will be ignored if set.
        * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -1866,7 +1913,9 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * *
        * The promotions applied to the product. A maximum of 10 values are allowed
    -   * per [Product][google.cloud.retail.v2.Product].
    +   * per [Product][google.cloud.retail.v2.Product]. Only
    +   * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +   * will be used, other fields will be ignored if set.
        * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; @@ -1878,7 +1927,9 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * *
        * The promotions applied to the product. A maximum of 10 values are allowed
    -   * per [Product][google.cloud.retail.v2.Product].
    +   * per [Product][google.cloud.retail.v2.Product]. Only
    +   * [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +   * will be used, other fields will be ignored if set.
        * 
    * * repeated .google.cloud.retail.v2.Promotion promotions = 34; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductProto.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductProto.java index 8bf39004..cf7db648 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductProto.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductProto.java @@ -48,6 +48,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "google.cloud.retail.v2\032\037google/api/field" + "_behavior.proto\032\031google/api/resource.pro" + "to\032#google/cloud/retail/v2/common.proto\032" + + "&google/cloud/retail/v2/promotion.proto\032" + "\036google/protobuf/duration.proto\032 google/" + "protobuf/field_mask.proto\032\037google/protob" + "uf/timestamp.proto\032\036google/protobuf/wrap" @@ -110,6 +111,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { com.google.api.FieldBehaviorProto.getDescriptor(), com.google.api.ResourceProto.getDescriptor(), com.google.cloud.retail.v2.CommonProto.getDescriptor(), + com.google.cloud.retail.v2.PromotionProto.getDescriptor(), com.google.protobuf.DurationProto.getDescriptor(), com.google.protobuf.FieldMaskProto.getDescriptor(), com.google.protobuf.TimestampProto.getDescriptor(), @@ -174,6 +176,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { com.google.api.FieldBehaviorProto.getDescriptor(); com.google.api.ResourceProto.getDescriptor(); com.google.cloud.retail.v2.CommonProto.getDescriptor(); + com.google.cloud.retail.v2.PromotionProto.getDescriptor(); com.google.protobuf.DurationProto.getDescriptor(); com.google.protobuf.FieldMaskProto.getDescriptor(); com.google.protobuf.TimestampProto.getDescriptor(); diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductServiceProto.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductServiceProto.java index ce7caacc..a6aa9828 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductServiceProto.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/ProductServiceProto.java @@ -75,6 +75,30 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r internal_static_google_cloud_retail_v2_AddFulfillmentPlacesResponse_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_google_cloud_retail_v2_AddFulfillmentPlacesResponse_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_retail_v2_AddLocalInventoriesRequest_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_retail_v2_AddLocalInventoriesRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_retail_v2_AddLocalInventoriesMetadata_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_retail_v2_AddLocalInventoriesMetadata_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_retail_v2_AddLocalInventoriesResponse_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_retail_v2_AddLocalInventoriesResponse_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_retail_v2_RemoveLocalInventoriesRequest_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_retail_v2_RemoveLocalInventoriesRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_retail_v2_RemoveLocalInventoriesMetadata_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_retail_v2_RemoveLocalInventoriesMetadata_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_retail_v2_RemoveLocalInventoriesResponse_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_retail_v2_RemoveLocalInventoriesResponse_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_google_cloud_retail_v2_RemoveFulfillmentPlacesRequest_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable @@ -100,114 +124,146 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + ".proto\022\026google.cloud.retail.v2\032\034google/a" + "pi/annotations.proto\032\027google/api/client." + "proto\032\037google/api/field_behavior.proto\032\031" - + "google/api/resource.proto\032*google/cloud/" - + "retail/v2/import_config.proto\032$google/cl" - + "oud/retail/v2/product.proto\032#google/long" - + "running/operations.proto\032\033google/protobu" - + "f/empty.proto\032 google/protobuf/field_mas" - + "k.proto\032\037google/protobuf/timestamp.proto" - + "\"\234\001\n\024CreateProductRequest\0224\n\006parent\030\001 \001(" - + "\tB$\340A\002\372A\036\n\034retail.googleapis.com/Branch\022" - + "5\n\007product\030\002 \001(\0132\037.google.cloud.retail.v" - + "2.ProductB\003\340A\002\022\027\n\nproduct_id\030\003 \001(\tB\003\340A\002\"" - + "H\n\021GetProductRequest\0223\n\004name\030\001 \001(\tB%\340A\002\372" - + "A\037\n\035retail.googleapis.com/Product\"\225\001\n\024Up" - + "dateProductRequest\0225\n\007product\030\001 \001(\0132\037.go" - + "ogle.cloud.retail.v2.ProductB\003\340A\002\022/\n\013upd" - + "ate_mask\030\002 \001(\0132\032.google.protobuf.FieldMa" - + "sk\022\025\n\rallow_missing\030\003 \001(\010\"K\n\024DeleteProdu" - + "ctRequest\0223\n\004name\030\001 \001(\tB%\340A\002\372A\037\n\035retail." - + "googleapis.com/Product\"\261\001\n\023ListProductsR" - + "equest\0224\n\006parent\030\001 \001(\tB$\340A\002\372A\036\n\034retail.g" - + "oogleapis.com/Branch\022\021\n\tpage_size\030\002 \001(\005\022" - + "\022\n\npage_token\030\003 \001(\t\022\016\n\006filter\030\004 \001(\t\022-\n\tr" - + "ead_mask\030\005 \001(\0132\032.google.protobuf.FieldMa" - + "sk\"b\n\024ListProductsResponse\0221\n\010products\030\001" - + " \003(\0132\037.google.cloud.retail.v2.Product\022\027\n" - + "\017next_page_token\030\002 \001(\t\"\301\001\n\023SetInventoryR" - + "equest\0227\n\tinventory\030\001 \001(\0132\037.google.cloud" - + ".retail.v2.ProductB\003\340A\002\022,\n\010set_mask\030\002 \001(" - + "\0132\032.google.protobuf.FieldMask\022,\n\010set_tim" - + "e\030\003 \001(\0132\032.google.protobuf.Timestamp\022\025\n\ra" - + "llow_missing\030\004 \001(\010\"\026\n\024SetInventoryMetada" - + "ta\"\026\n\024SetInventoryResponse\"\305\001\n\033AddFulfil" - + "lmentPlacesRequest\0226\n\007product\030\001 \001(\tB%\340A\002" - + "\372A\037\n\035retail.googleapis.com/Product\022\021\n\004ty" - + "pe\030\002 \001(\tB\003\340A\002\022\026\n\tplace_ids\030\003 \003(\tB\003\340A\002\022,\n" - + "\010add_time\030\004 \001(\0132\032.google.protobuf.Timest" - + "amp\022\025\n\rallow_missing\030\005 \001(\010\"\036\n\034AddFulfill" - + "mentPlacesMetadata\"\036\n\034AddFulfillmentPlac" - + "esResponse\"\313\001\n\036RemoveFulfillmentPlacesRe" - + "quest\0226\n\007product\030\001 \001(\tB%\340A\002\372A\037\n\035retail.g" - + "oogleapis.com/Product\022\021\n\004type\030\002 \001(\tB\003\340A\002" - + "\022\026\n\tplace_ids\030\003 \003(\tB\003\340A\002\022/\n\013remove_time\030" - + "\004 \001(\0132\032.google.protobuf.Timestamp\022\025\n\rall" - + "ow_missing\030\005 \001(\010\"!\n\037RemoveFulfillmentPla" - + "cesMetadata\"!\n\037RemoveFulfillmentPlacesRe" - + "sponse2\217\022\n\016ProductService\022\317\001\n\rCreateProd" - + "uct\022,.google.cloud.retail.v2.CreateProdu" - + "ctRequest\032\037.google.cloud.retail.v2.Produ" - + "ct\"o\202\323\344\223\002M\"B/v2/{parent=projects/*/locat" - + "ions/*/catalogs/*/branches/*}/products:\007" - + "product\332A\031parent,product,product_id\022\254\001\n\n" - + "GetProduct\022).google.cloud.retail.v2.GetP" - + "roductRequest\032\037.google.cloud.retail.v2.P" - + "roduct\"R\202\323\344\223\002E\022C/v2/{name=projects/*/loc" - + "ations/*/catalogs/*/branches/*/products/" - + "**}\332A\004name\022\276\001\n\014ListProducts\022+.google.clo" - + "ud.retail.v2.ListProductsRequest\032,.googl" - + "e.cloud.retail.v2.ListProductsResponse\"S" - + "\202\323\344\223\002D\022B/v2/{parent=projects/*/locations" - + "/*/catalogs/*/branches/*}/products\332A\006par" - + "ent\022\322\001\n\rUpdateProduct\022,.google.cloud.ret" - + "ail.v2.UpdateProductRequest\032\037.google.clo" - + "ud.retail.v2.Product\"r\202\323\344\223\002V2K/v2/{produ" - + "ct.name=projects/*/locations/*/catalogs/" - + "*/branches/*/products/**}:\007product\332A\023pro" - + "duct,update_mask\022\251\001\n\rDeleteProduct\022,.goo" - + "gle.cloud.retail.v2.DeleteProductRequest" - + "\032\026.google.protobuf.Empty\"R\202\323\344\223\002E*C/v2/{n" - + "ame=projects/*/locations/*/catalogs/*/br" - + "anches/*/products/**}\332A\004name\022\216\002\n\016ImportP" - + "roducts\022-.google.cloud.retail.v2.ImportP" - + "roductsRequest\032\035.google.longrunning.Oper" - + "ation\"\255\001\202\323\344\223\002N\"I/v2/{parent=projects/*/l" - + "ocations/*/catalogs/*/branches/*}/produc" - + "ts:import:\001*\312AV\n-google.cloud.retail.v2." - + "ImportProductsResponse\022%google.cloud.ret" - + "ail.v2.ImportMetadata\022\264\002\n\014SetInventory\022+" - + ".google.cloud.retail.v2.SetInventoryRequ" - + "est\032\035.google.longrunning.Operation\"\327\001\202\323\344" - + "\223\002_\"Z/v2/{inventory.name=projects/*/loca" - + "tions/*/catalogs/*/branches/*/products/*" - + "*}:setInventory:\001*\332A\022inventory,set_mask\312" - + "AZ\n+google.cloud.retail.v2.SetInventoryR" - + "esponse\022+google.cloud.retail.v2.SetInven" - + "toryMetadata\022\312\002\n\024AddFulfillmentPlaces\0223." - + "google.cloud.retail.v2.AddFulfillmentPla" - + "cesRequest\032\035.google.longrunning.Operatio" - + "n\"\335\001\202\323\344\223\002`\"[/v2/{product=projects/*/loca" - + "tions/*/catalogs/*/branches/*/products/*" - + "*}:addFulfillmentPlaces:\001*\332A\007product\312Aj\n" + + "google/api/resource.proto\032#google/cloud/" + + "retail/v2/common.proto\032*google/cloud/ret" + + "ail/v2/import_config.proto\032$google/cloud" + + "/retail/v2/product.proto\032#google/longrun" + + "ning/operations.proto\032\033google/protobuf/e" + + "mpty.proto\032 google/protobuf/field_mask.p" + + "roto\032\037google/protobuf/timestamp.proto\"\234\001" + + "\n\024CreateProductRequest\0224\n\006parent\030\001 \001(\tB$" + + "\340A\002\372A\036\n\034retail.googleapis.com/Branch\0225\n\007" + + "product\030\002 \001(\0132\037.google.cloud.retail.v2.P" + + "roductB\003\340A\002\022\027\n\nproduct_id\030\003 \001(\tB\003\340A\002\"H\n\021" + + "GetProductRequest\0223\n\004name\030\001 \001(\tB%\340A\002\372A\037\n" + + "\035retail.googleapis.com/Product\"\225\001\n\024Updat" + + "eProductRequest\0225\n\007product\030\001 \001(\0132\037.googl" + + "e.cloud.retail.v2.ProductB\003\340A\002\022/\n\013update" + + "_mask\030\002 \001(\0132\032.google.protobuf.FieldMask\022" + + "\025\n\rallow_missing\030\003 \001(\010\"K\n\024DeleteProductR" + + "equest\0223\n\004name\030\001 \001(\tB%\340A\002\372A\037\n\035retail.goo" + + "gleapis.com/Product\"\261\001\n\023ListProductsRequ" + + "est\0224\n\006parent\030\001 \001(\tB$\340A\002\372A\036\n\034retail.goog" + + "leapis.com/Branch\022\021\n\tpage_size\030\002 \001(\005\022\022\n\n" + + "page_token\030\003 \001(\t\022\016\n\006filter\030\004 \001(\t\022-\n\tread" + + "_mask\030\005 \001(\0132\032.google.protobuf.FieldMask\"" + + "b\n\024ListProductsResponse\0221\n\010products\030\001 \003(" + + "\0132\037.google.cloud.retail.v2.Product\022\027\n\017ne" + + "xt_page_token\030\002 \001(\t\"\301\001\n\023SetInventoryRequ" + + "est\0227\n\tinventory\030\001 \001(\0132\037.google.cloud.re" + + "tail.v2.ProductB\003\340A\002\022,\n\010set_mask\030\002 \001(\0132\032" + + ".google.protobuf.FieldMask\022,\n\010set_time\030\003" + + " \001(\0132\032.google.protobuf.Timestamp\022\025\n\rallo" + + "w_missing\030\004 \001(\010\"\026\n\024SetInventoryMetadata\"" + + "\026\n\024SetInventoryResponse\"\305\001\n\033AddFulfillme" + + "ntPlacesRequest\0226\n\007product\030\001 \001(\tB%\340A\002\372A\037" + + "\n\035retail.googleapis.com/Product\022\021\n\004type\030" + + "\002 \001(\tB\003\340A\002\022\026\n\tplace_ids\030\003 \003(\tB\003\340A\002\022,\n\010ad" + + "d_time\030\004 \001(\0132\032.google.protobuf.Timestamp" + + "\022\025\n\rallow_missing\030\005 \001(\010\"\036\n\034AddFulfillmen" + + "tPlacesMetadata\"\036\n\034AddFulfillmentPlacesR" + + "esponse\"\217\002\n\032AddLocalInventoriesRequest\0226" + + "\n\007product\030\001 \001(\tB%\340A\002\372A\037\n\035retail.googleap" + + "is.com/Product\022F\n\021local_inventories\030\002 \003(" + + "\0132&.google.cloud.retail.v2.LocalInventor" + + "yB\003\340A\002\022,\n\010add_mask\030\004 \001(\0132\032.google.protob" + + "uf.FieldMask\022,\n\010add_time\030\005 \001(\0132\032.google." + + "protobuf.Timestamp\022\025\n\rallow_missing\030\006 \001(" + + "\010\"\035\n\033AddLocalInventoriesMetadata\"\035\n\033AddL" + + "ocalInventoriesResponse\"\267\001\n\035RemoveLocalI" + + "nventoriesRequest\0226\n\007product\030\001 \001(\tB%\340A\002\372" + + "A\037\n\035retail.googleapis.com/Product\022\026\n\tpla" + + "ce_ids\030\002 \003(\tB\003\340A\002\022/\n\013remove_time\030\005 \001(\0132\032" + + ".google.protobuf.Timestamp\022\025\n\rallow_miss" + + "ing\030\003 \001(\010\" \n\036RemoveLocalInventoriesMetad" + + "ata\" \n\036RemoveLocalInventoriesResponse\"\313\001" + + "\n\036RemoveFulfillmentPlacesRequest\0226\n\007prod" + + "uct\030\001 \001(\tB%\340A\002\372A\037\n\035retail.googleapis.com" + + "/Product\022\021\n\004type\030\002 \001(\tB\003\340A\002\022\026\n\tplace_ids" + + "\030\003 \003(\tB\003\340A\002\022/\n\013remove_time\030\004 \001(\0132\032.googl" + + "e.protobuf.Timestamp\022\025\n\rallow_missing\030\005 " + + "\001(\010\"!\n\037RemoveFulfillmentPlacesMetadata\"!" + + "\n\037RemoveFulfillmentPlacesResponse2\256\027\n\016Pr" + + "oductService\022\317\001\n\rCreateProduct\022,.google." + + "cloud.retail.v2.CreateProductRequest\032\037.g" + + "oogle.cloud.retail.v2.Product\"o\202\323\344\223\002M\"B/" + + "v2/{parent=projects/*/locations/*/catalo" + + "gs/*/branches/*}/products:\007product\332A\031par" + + "ent,product,product_id\022\254\001\n\nGetProduct\022)." + + "google.cloud.retail.v2.GetProductRequest" + + "\032\037.google.cloud.retail.v2.Product\"R\202\323\344\223\002" + + "E\022C/v2/{name=projects/*/locations/*/cata" + + "logs/*/branches/*/products/**}\332A\004name\022\276\001" + + "\n\014ListProducts\022+.google.cloud.retail.v2." + + "ListProductsRequest\032,.google.cloud.retai" + + "l.v2.ListProductsResponse\"S\202\323\344\223\002D\022B/v2/{" + + "parent=projects/*/locations/*/catalogs/*" + + "/branches/*}/products\332A\006parent\022\322\001\n\rUpdat" + + "eProduct\022,.google.cloud.retail.v2.Update" + + "ProductRequest\032\037.google.cloud.retail.v2." + + "Product\"r\202\323\344\223\002V2K/v2/{product.name=proje" + + "cts/*/locations/*/catalogs/*/branches/*/" + + "products/**}:\007product\332A\023product,update_m" + + "ask\022\251\001\n\rDeleteProduct\022,.google.cloud.ret" + + "ail.v2.DeleteProductRequest\032\026.google.pro" + + "tobuf.Empty\"R\202\323\344\223\002E*C/v2/{name=projects/" + + "*/locations/*/catalogs/*/branches/*/prod" + + "ucts/**}\332A\004name\022\216\002\n\016ImportProducts\022-.goo" + + "gle.cloud.retail.v2.ImportProductsReques" + + "t\032\035.google.longrunning.Operation\"\255\001\202\323\344\223\002" + + "N\"I/v2/{parent=projects/*/locations/*/ca" + + "talogs/*/branches/*}/products:import:\001*\312" + + "AV\n-google.cloud.retail.v2.ImportProduct" + + "sResponse\022%google.cloud.retail.v2.Import" + + "Metadata\022\264\002\n\014SetInventory\022+.google.cloud" + + ".retail.v2.SetInventoryRequest\032\035.google." + + "longrunning.Operation\"\327\001\202\323\344\223\002_\"Z/v2/{inv" + + "entory.name=projects/*/locations/*/catal" + + "ogs/*/branches/*/products/**}:setInvento" + + "ry:\001*\332A\022inventory,set_mask\312AZ\n+google.cl" + + "oud.retail.v2.SetInventoryResponse\022+goog" + + "le.cloud.retail.v2.SetInventoryMetadata\022" + + "\312\002\n\024AddFulfillmentPlaces\0223.google.cloud." + + "retail.v2.AddFulfillmentPlacesRequest\032\035." + + "google.longrunning.Operation\"\335\001\202\323\344\223\002`\"[/" + + "v2/{product=projects/*/locations/*/catal" + + "ogs/*/branches/*/products/**}:addFulfill" + + "mentPlaces:\001*\332A\007product\312Aj\n3google.cloud" + + ".retail.v2.AddFulfillmentPlacesResponse\022" + "3google.cloud.retail.v2.AddFulfillmentPl" - + "acesResponse\0223google.cloud.retail.v2.Add" - + "FulfillmentPlacesMetadata\022\331\002\n\027RemoveFulf" - + "illmentPlaces\0226.google.cloud.retail.v2.R" - + "emoveFulfillmentPlacesRequest\032\035.google.l" - + "ongrunning.Operation\"\346\001\202\323\344\223\002c\"^/v2/{prod" - + "uct=projects/*/locations/*/catalogs/*/br" - + "anches/*/products/**}:removeFulfillmentP" - + "laces:\001*\332A\007product\312Ap\n6google.cloud.reta" - + "il.v2.RemoveFulfillmentPlacesResponse\0226g" - + "oogle.cloud.retail.v2.RemoveFulfillmentP" - + "lacesMetadata\032I\312A\025retail.googleapis.com\322" - + "A.https://www.googleapis.com/auth/cloud-" - + "platformB\310\001\n\032com.google.cloud.retail.v2B" - + "\023ProductServiceProtoP\001Z * ID of the promotion. For example, "free gift". - * The value value must be a UTF-8 encoded string with a length limit of 128 + * The value must be a UTF-8 encoded string with a length limit of 128 * characters, and match the pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, * id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is * returned. @@ -147,7 +147,7 @@ public java.lang.String getPromotionId() { * *
        * ID of the promotion. For example, "free gift".
    -   * The value value must be a UTF-8 encoded string with a length limit of 128
    +   * The value must be a UTF-8 encoded string with a length limit of 128
        * characters, and match the pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example,
        * id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is
        * returned.
    @@ -343,14 +343,14 @@ public static final class Builder extends com.google.protobuf.GeneratedMessageV3
           // @@protoc_insertion_point(builder_implements:google.cloud.retail.v2.Promotion)
           com.google.cloud.retail.v2.PromotionOrBuilder {
         public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    -      return com.google.cloud.retail.v2.CommonProto
    +      return com.google.cloud.retail.v2.PromotionProto
               .internal_static_google_cloud_retail_v2_Promotion_descriptor;
         }
     
         @java.lang.Override
         protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
             internalGetFieldAccessorTable() {
    -      return com.google.cloud.retail.v2.CommonProto
    +      return com.google.cloud.retail.v2.PromotionProto
               .internal_static_google_cloud_retail_v2_Promotion_fieldAccessorTable
               .ensureFieldAccessorsInitialized(
                   com.google.cloud.retail.v2.Promotion.class,
    @@ -381,7 +381,7 @@ public Builder clear() {
     
         @java.lang.Override
         public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
    -      return com.google.cloud.retail.v2.CommonProto
    +      return com.google.cloud.retail.v2.PromotionProto
               .internal_static_google_cloud_retail_v2_Promotion_descriptor;
         }
     
    @@ -491,7 +491,7 @@ public Builder mergeFrom(
          *
          * 
          * ID of the promotion. For example, "free gift".
    -     * The value value must be a UTF-8 encoded string with a length limit of 128
    +     * The value must be a UTF-8 encoded string with a length limit of 128
          * characters, and match the pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example,
          * id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is
          * returned.
    @@ -519,7 +519,7 @@ public java.lang.String getPromotionId() {
          *
          * 
          * ID of the promotion. For example, "free gift".
    -     * The value value must be a UTF-8 encoded string with a length limit of 128
    +     * The value must be a UTF-8 encoded string with a length limit of 128
          * characters, and match the pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example,
          * id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is
          * returned.
    @@ -547,7 +547,7 @@ public com.google.protobuf.ByteString getPromotionIdBytes() {
          *
          * 
          * ID of the promotion. For example, "free gift".
    -     * The value value must be a UTF-8 encoded string with a length limit of 128
    +     * The value must be a UTF-8 encoded string with a length limit of 128
          * characters, and match the pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example,
          * id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is
          * returned.
    @@ -574,7 +574,7 @@ public Builder setPromotionId(java.lang.String value) {
          *
          * 
          * ID of the promotion. For example, "free gift".
    -     * The value value must be a UTF-8 encoded string with a length limit of 128
    +     * The value must be a UTF-8 encoded string with a length limit of 128
          * characters, and match the pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example,
          * id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is
          * returned.
    @@ -597,7 +597,7 @@ public Builder clearPromotionId() {
          *
          * 
          * ID of the promotion. For example, "free gift".
    -     * The value value must be a UTF-8 encoded string with a length limit of 128
    +     * The value must be a UTF-8 encoded string with a length limit of 128
          * characters, and match the pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example,
          * id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is
          * returned.
    diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PromotionOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PromotionOrBuilder.java
    index e4aa8cdc..f91be926 100644
    --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PromotionOrBuilder.java
    +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PromotionOrBuilder.java
    @@ -14,7 +14,7 @@
      * limitations under the License.
      */
     // Generated by the protocol buffer compiler.  DO NOT EDIT!
    -// source: google/cloud/retail/v2/common.proto
    +// source: google/cloud/retail/v2/promotion.proto
     
     package com.google.cloud.retail.v2;
     
    @@ -28,7 +28,7 @@ public interface PromotionOrBuilder
        *
        * 
        * ID of the promotion. For example, "free gift".
    -   * The value value must be a UTF-8 encoded string with a length limit of 128
    +   * The value must be a UTF-8 encoded string with a length limit of 128
        * characters, and match the pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example,
        * id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is
        * returned.
    @@ -46,7 +46,7 @@ public interface PromotionOrBuilder
        *
        * 
        * ID of the promotion. For example, "free gift".
    -   * The value value must be a UTF-8 encoded string with a length limit of 128
    +   * The value must be a UTF-8 encoded string with a length limit of 128
        * characters, and match the pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example,
        * id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is
        * returned.
    diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PromotionProto.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PromotionProto.java
    new file mode 100644
    index 00000000..b66c1b6c
    --- /dev/null
    +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/PromotionProto.java
    @@ -0,0 +1,66 @@
    +/*
    + * Copyright 2020 Google LLC
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *     https://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +// Generated by the protocol buffer compiler.  DO NOT EDIT!
    +// source: google/cloud/retail/v2/promotion.proto
    +
    +package com.google.cloud.retail.v2;
    +
    +public final class PromotionProto {
    +  private PromotionProto() {}
    +
    +  public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {}
    +
    +  public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) {
    +    registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry);
    +  }
    +
    +  static final com.google.protobuf.Descriptors.Descriptor
    +      internal_static_google_cloud_retail_v2_Promotion_descriptor;
    +  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    +      internal_static_google_cloud_retail_v2_Promotion_fieldAccessorTable;
    +
    +  public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
    +    return descriptor;
    +  }
    +
    +  private static com.google.protobuf.Descriptors.FileDescriptor descriptor;
    +
    +  static {
    +    java.lang.String[] descriptorData = {
    +      "\n&google/cloud/retail/v2/promotion.proto"
    +          + "\022\026google.cloud.retail.v2\"!\n\tPromotion\022\024\n"
    +          + "\014promotion_id\030\001 \001(\tB\303\001\n\032com.google.cloud"
    +          + ".retail.v2B\016PromotionProtoP\001Z
    + * Metadata related to the progress of the RemoveLocalInventories operation.
    + * Currently empty because there is no meaningful metadata populated from the
    + * [RemoveLocalInventories][] method.
    + * 
    + * + * Protobuf type {@code google.cloud.retail.v2.RemoveLocalInventoriesMetadata} + */ +public final class RemoveLocalInventoriesMetadata extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.retail.v2.RemoveLocalInventoriesMetadata) + RemoveLocalInventoriesMetadataOrBuilder { + private static final long serialVersionUID = 0L; + // Use RemoveLocalInventoriesMetadata.newBuilder() to construct. + private RemoveLocalInventoriesMetadata( + com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RemoveLocalInventoriesMetadata() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new RemoveLocalInventoriesMetadata(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private RemoveLocalInventoriesMetadata( + 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; + default: + { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.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.ProductServiceProto + .internal_static_google_cloud_retail_v2_RemoveLocalInventoriesMetadata_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_RemoveLocalInventoriesMetadata_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata.class, + com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata.Builder.class); + } + + 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 { + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.RemoveLocalInventoriesMetadata)) { + return super.equals(obj); + } + com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata other = + (com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata) obj; + + 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 = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata 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.RemoveLocalInventoriesMetadata parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata 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.RemoveLocalInventoriesMetadata parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata 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.RemoveLocalInventoriesMetadata parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata 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.RemoveLocalInventoriesMetadata parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata 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.RemoveLocalInventoriesMetadata 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.RemoveLocalInventoriesMetadata 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.RemoveLocalInventoriesMetadata 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; + } + /** + * + * + *
    +   * Metadata related to the progress of the RemoveLocalInventories operation.
    +   * Currently empty because there is no meaningful metadata populated from the
    +   * [RemoveLocalInventories][] method.
    +   * 
    + * + * Protobuf type {@code google.cloud.retail.v2.RemoveLocalInventoriesMetadata} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.retail.v2.RemoveLocalInventoriesMetadata) + com.google.cloud.retail.v2.RemoveLocalInventoriesMetadataOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_RemoveLocalInventoriesMetadata_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_RemoveLocalInventoriesMetadata_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata.class, + com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata.Builder.class); + } + + // Construct using com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata.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(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_RemoveLocalInventoriesMetadata_descriptor; + } + + @java.lang.Override + public com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata getDefaultInstanceForType() { + return com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata build() { + com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata buildPartial() { + com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata result = + new com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata(this); + 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.RemoveLocalInventoriesMetadata) { + return mergeFrom((com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata other) { + if (other == com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata.getDefaultInstance()) + return this; + 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.RemoveLocalInventoriesMetadata parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = + (com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + 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.RemoveLocalInventoriesMetadata) + } + + // @@protoc_insertion_point(class_scope:google.cloud.retail.v2.RemoveLocalInventoriesMetadata) + private static final com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata(); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RemoveLocalInventoriesMetadata parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RemoveLocalInventoriesMetadata(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.RemoveLocalInventoriesMetadata getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveLocalInventoriesMetadataOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveLocalInventoriesMetadataOrBuilder.java new file mode 100644 index 00000000..567dbd0c --- /dev/null +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveLocalInventoriesMetadataOrBuilder.java @@ -0,0 +1,24 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/retail/v2/product_service.proto + +package com.google.cloud.retail.v2; + +public interface RemoveLocalInventoriesMetadataOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.retail.v2.RemoveLocalInventoriesMetadata) + com.google.protobuf.MessageOrBuilder {} diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveLocalInventoriesRequest.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveLocalInventoriesRequest.java new file mode 100644 index 00000000..3707b84d --- /dev/null +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveLocalInventoriesRequest.java @@ -0,0 +1,1385 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/retail/v2/product_service.proto + +package com.google.cloud.retail.v2; + +/** + * + * + *
    + * Request message for [RemoveLocalInventories][] method.
    + * 
    + * + * Protobuf type {@code google.cloud.retail.v2.RemoveLocalInventoriesRequest} + */ +public final class RemoveLocalInventoriesRequest extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.retail.v2.RemoveLocalInventoriesRequest) + RemoveLocalInventoriesRequestOrBuilder { + private static final long serialVersionUID = 0L; + // Use RemoveLocalInventoriesRequest.newBuilder() to construct. + private RemoveLocalInventoriesRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RemoveLocalInventoriesRequest() { + product_ = ""; + placeIds_ = com.google.protobuf.LazyStringArrayList.EMPTY; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new RemoveLocalInventoriesRequest(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private RemoveLocalInventoriesRequest( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + 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 10: + { + java.lang.String s = input.readStringRequireUtf8(); + + product_ = s; + break; + } + case 18: + { + java.lang.String s = input.readStringRequireUtf8(); + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + placeIds_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000001; + } + placeIds_.add(s); + break; + } + case 24: + { + allowMissing_ = input.readBool(); + break; + } + case 42: + { + com.google.protobuf.Timestamp.Builder subBuilder = null; + if (removeTime_ != null) { + subBuilder = removeTime_.toBuilder(); + } + removeTime_ = + input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(removeTime_); + removeTime_ = subBuilder.buildPartial(); + } + + break; + } + default: + { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + placeIds_ = placeIds_.getUnmodifiableView(); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_RemoveLocalInventoriesRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_RemoveLocalInventoriesRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.RemoveLocalInventoriesRequest.class, + com.google.cloud.retail.v2.RemoveLocalInventoriesRequest.Builder.class); + } + + public static final int PRODUCT_FIELD_NUMBER = 1; + private volatile java.lang.Object product_; + /** + * + * + *
    +   * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +   * such as
    +   * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +   * If the caller does not have permission to access the
    +   * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +   * exists, a PERMISSION_DENIED error is returned.
    +   * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The product. + */ + @java.lang.Override + public java.lang.String getProduct() { + java.lang.Object ref = product_; + 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(); + product_ = s; + return s; + } + } + /** + * + * + *
    +   * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +   * such as
    +   * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +   * If the caller does not have permission to access the
    +   * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +   * exists, a PERMISSION_DENIED error is returned.
    +   * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for product. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductBytes() { + java.lang.Object ref = product_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + product_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PLACE_IDS_FIELD_NUMBER = 2; + private com.google.protobuf.LazyStringList placeIds_; + /** + * + * + *
    +   * Required. A list of place IDs to have their inventory deleted.
    +   * At most 3000 place IDs are allowed per request.
    +   * 
    + * + * repeated string place_ids = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return A list containing the placeIds. + */ + public com.google.protobuf.ProtocolStringList getPlaceIdsList() { + return placeIds_; + } + /** + * + * + *
    +   * Required. A list of place IDs to have their inventory deleted.
    +   * At most 3000 place IDs are allowed per request.
    +   * 
    + * + * repeated string place_ids = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The count of placeIds. + */ + public int getPlaceIdsCount() { + return placeIds_.size(); + } + /** + * + * + *
    +   * Required. A list of place IDs to have their inventory deleted.
    +   * At most 3000 place IDs are allowed per request.
    +   * 
    + * + * repeated string place_ids = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param index The index of the element to return. + * @return The placeIds at the given index. + */ + public java.lang.String getPlaceIds(int index) { + return placeIds_.get(index); + } + /** + * + * + *
    +   * Required. A list of place IDs to have their inventory deleted.
    +   * At most 3000 place IDs are allowed per request.
    +   * 
    + * + * repeated string place_ids = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param index The index of the value to return. + * @return The bytes of the placeIds at the given index. + */ + public com.google.protobuf.ByteString getPlaceIdsBytes(int index) { + return placeIds_.getByteString(index); + } + + public static final int REMOVE_TIME_FIELD_NUMBER = 5; + private com.google.protobuf.Timestamp removeTime_; + /** + * + * + *
    +   * The time when the inventory deletions are issued. Used to prevent
    +   * out-of-order updates and deletions on local inventory fields. If not
    +   * provided, the internal system time will be used.
    +   * 
    + * + * .google.protobuf.Timestamp remove_time = 5; + * + * @return Whether the removeTime field is set. + */ + @java.lang.Override + public boolean hasRemoveTime() { + return removeTime_ != null; + } + /** + * + * + *
    +   * The time when the inventory deletions are issued. Used to prevent
    +   * out-of-order updates and deletions on local inventory fields. If not
    +   * provided, the internal system time will be used.
    +   * 
    + * + * .google.protobuf.Timestamp remove_time = 5; + * + * @return The removeTime. + */ + @java.lang.Override + public com.google.protobuf.Timestamp getRemoveTime() { + return removeTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : removeTime_; + } + /** + * + * + *
    +   * The time when the inventory deletions are issued. Used to prevent
    +   * out-of-order updates and deletions on local inventory fields. If not
    +   * provided, the internal system time will be used.
    +   * 
    + * + * .google.protobuf.Timestamp remove_time = 5; + */ + @java.lang.Override + public com.google.protobuf.TimestampOrBuilder getRemoveTimeOrBuilder() { + return getRemoveTime(); + } + + public static final int ALLOW_MISSING_FIELD_NUMBER = 3; + private boolean allowMissing_; + /** + * + * + *
    +   * If set to true, and the [Product][google.cloud.retail.v2.Product] is not
    +   * found, the local inventory removal request will still be processed and
    +   * retained for at most 1 day and processed once the
    +   * [Product][google.cloud.retail.v2.Product] is created. If set to false, a
    +   * NOT_FOUND error is returned if the
    +   * [Product][google.cloud.retail.v2.Product] is not found.
    +   * 
    + * + * bool allow_missing = 3; + * + * @return The allowMissing. + */ + @java.lang.Override + public boolean getAllowMissing() { + return allowMissing_; + } + + 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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(product_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, product_); + } + for (int i = 0; i < placeIds_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, placeIds_.getRaw(i)); + } + if (allowMissing_ != false) { + output.writeBool(3, allowMissing_); + } + if (removeTime_ != null) { + output.writeMessage(5, getRemoveTime()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(product_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, product_); + } + { + int dataSize = 0; + for (int i = 0; i < placeIds_.size(); i++) { + dataSize += computeStringSizeNoTag(placeIds_.getRaw(i)); + } + size += dataSize; + size += 1 * getPlaceIdsList().size(); + } + if (allowMissing_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, allowMissing_); + } + if (removeTime_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getRemoveTime()); + } + 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.RemoveLocalInventoriesRequest)) { + return super.equals(obj); + } + com.google.cloud.retail.v2.RemoveLocalInventoriesRequest other = + (com.google.cloud.retail.v2.RemoveLocalInventoriesRequest) obj; + + if (!getProduct().equals(other.getProduct())) return false; + if (!getPlaceIdsList().equals(other.getPlaceIdsList())) return false; + if (hasRemoveTime() != other.hasRemoveTime()) return false; + if (hasRemoveTime()) { + if (!getRemoveTime().equals(other.getRemoveTime())) return false; + } + if (getAllowMissing() != other.getAllowMissing()) 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) + PRODUCT_FIELD_NUMBER; + hash = (53 * hash) + getProduct().hashCode(); + if (getPlaceIdsCount() > 0) { + hash = (37 * hash) + PLACE_IDS_FIELD_NUMBER; + hash = (53 * hash) + getPlaceIdsList().hashCode(); + } + if (hasRemoveTime()) { + hash = (37 * hash) + REMOVE_TIME_FIELD_NUMBER; + hash = (53 * hash) + getRemoveTime().hashCode(); + } + hash = (37 * hash) + ALLOW_MISSING_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAllowMissing()); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesRequest parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesRequest 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.RemoveLocalInventoriesRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesRequest 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.RemoveLocalInventoriesRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesRequest 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.RemoveLocalInventoriesRequest parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesRequest 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.RemoveLocalInventoriesRequest parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesRequest 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.RemoveLocalInventoriesRequest 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.RemoveLocalInventoriesRequest 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.RemoveLocalInventoriesRequest 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; + } + /** + * + * + *
    +   * Request message for [RemoveLocalInventories][] method.
    +   * 
    + * + * Protobuf type {@code google.cloud.retail.v2.RemoveLocalInventoriesRequest} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.retail.v2.RemoveLocalInventoriesRequest) + com.google.cloud.retail.v2.RemoveLocalInventoriesRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_RemoveLocalInventoriesRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_RemoveLocalInventoriesRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.RemoveLocalInventoriesRequest.class, + com.google.cloud.retail.v2.RemoveLocalInventoriesRequest.Builder.class); + } + + // Construct using com.google.cloud.retail.v2.RemoveLocalInventoriesRequest.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(); + product_ = ""; + + placeIds_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000001); + if (removeTimeBuilder_ == null) { + removeTime_ = null; + } else { + removeTime_ = null; + removeTimeBuilder_ = null; + } + allowMissing_ = false; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_RemoveLocalInventoriesRequest_descriptor; + } + + @java.lang.Override + public com.google.cloud.retail.v2.RemoveLocalInventoriesRequest getDefaultInstanceForType() { + return com.google.cloud.retail.v2.RemoveLocalInventoriesRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.retail.v2.RemoveLocalInventoriesRequest build() { + com.google.cloud.retail.v2.RemoveLocalInventoriesRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.retail.v2.RemoveLocalInventoriesRequest buildPartial() { + com.google.cloud.retail.v2.RemoveLocalInventoriesRequest result = + new com.google.cloud.retail.v2.RemoveLocalInventoriesRequest(this); + int from_bitField0_ = bitField0_; + result.product_ = product_; + if (((bitField0_ & 0x00000001) != 0)) { + placeIds_ = placeIds_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.placeIds_ = placeIds_; + if (removeTimeBuilder_ == null) { + result.removeTime_ = removeTime_; + } else { + result.removeTime_ = removeTimeBuilder_.build(); + } + result.allowMissing_ = allowMissing_; + 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.RemoveLocalInventoriesRequest) { + return mergeFrom((com.google.cloud.retail.v2.RemoveLocalInventoriesRequest) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.retail.v2.RemoveLocalInventoriesRequest other) { + if (other == com.google.cloud.retail.v2.RemoveLocalInventoriesRequest.getDefaultInstance()) + return this; + if (!other.getProduct().isEmpty()) { + product_ = other.product_; + onChanged(); + } + if (!other.placeIds_.isEmpty()) { + if (placeIds_.isEmpty()) { + placeIds_ = other.placeIds_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensurePlaceIdsIsMutable(); + placeIds_.addAll(other.placeIds_); + } + onChanged(); + } + if (other.hasRemoveTime()) { + mergeRemoveTime(other.getRemoveTime()); + } + if (other.getAllowMissing() != false) { + setAllowMissing(other.getAllowMissing()); + } + 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.RemoveLocalInventoriesRequest parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = + (com.google.cloud.retail.v2.RemoveLocalInventoriesRequest) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private java.lang.Object product_ = ""; + /** + * + * + *
    +     * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +     * such as
    +     * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +     * If the caller does not have permission to access the
    +     * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +     * exists, a PERMISSION_DENIED error is returned.
    +     * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The product. + */ + public java.lang.String getProduct() { + java.lang.Object ref = product_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + product_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * + * + *
    +     * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +     * such as
    +     * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +     * If the caller does not have permission to access the
    +     * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +     * exists, a PERMISSION_DENIED error is returned.
    +     * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for product. + */ + public com.google.protobuf.ByteString getProductBytes() { + java.lang.Object ref = product_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + product_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * + * + *
    +     * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +     * such as
    +     * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +     * If the caller does not have permission to access the
    +     * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +     * exists, a PERMISSION_DENIED error is returned.
    +     * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @param value The product to set. + * @return This builder for chaining. + */ + public Builder setProduct(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + product_ = value; + onChanged(); + return this; + } + /** + * + * + *
    +     * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +     * such as
    +     * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +     * If the caller does not have permission to access the
    +     * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +     * exists, a PERMISSION_DENIED error is returned.
    +     * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return This builder for chaining. + */ + public Builder clearProduct() { + + product_ = getDefaultInstance().getProduct(); + onChanged(); + return this; + } + /** + * + * + *
    +     * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +     * such as
    +     * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +     * If the caller does not have permission to access the
    +     * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +     * exists, a PERMISSION_DENIED error is returned.
    +     * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @param value The bytes for product to set. + * @return This builder for chaining. + */ + public Builder setProductBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + product_ = value; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringList placeIds_ = + com.google.protobuf.LazyStringArrayList.EMPTY; + + private void ensurePlaceIdsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + placeIds_ = new com.google.protobuf.LazyStringArrayList(placeIds_); + bitField0_ |= 0x00000001; + } + } + /** + * + * + *
    +     * Required. A list of place IDs to have their inventory deleted.
    +     * At most 3000 place IDs are allowed per request.
    +     * 
    + * + * repeated string place_ids = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return A list containing the placeIds. + */ + public com.google.protobuf.ProtocolStringList getPlaceIdsList() { + return placeIds_.getUnmodifiableView(); + } + /** + * + * + *
    +     * Required. A list of place IDs to have their inventory deleted.
    +     * At most 3000 place IDs are allowed per request.
    +     * 
    + * + * repeated string place_ids = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The count of placeIds. + */ + public int getPlaceIdsCount() { + return placeIds_.size(); + } + /** + * + * + *
    +     * Required. A list of place IDs to have their inventory deleted.
    +     * At most 3000 place IDs are allowed per request.
    +     * 
    + * + * repeated string place_ids = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param index The index of the element to return. + * @return The placeIds at the given index. + */ + public java.lang.String getPlaceIds(int index) { + return placeIds_.get(index); + } + /** + * + * + *
    +     * Required. A list of place IDs to have their inventory deleted.
    +     * At most 3000 place IDs are allowed per request.
    +     * 
    + * + * repeated string place_ids = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param index The index of the value to return. + * @return The bytes of the placeIds at the given index. + */ + public com.google.protobuf.ByteString getPlaceIdsBytes(int index) { + return placeIds_.getByteString(index); + } + /** + * + * + *
    +     * Required. A list of place IDs to have their inventory deleted.
    +     * At most 3000 place IDs are allowed per request.
    +     * 
    + * + * repeated string place_ids = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param index The index to set the value at. + * @param value The placeIds to set. + * @return This builder for chaining. + */ + public Builder setPlaceIds(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensurePlaceIdsIsMutable(); + placeIds_.set(index, value); + onChanged(); + return this; + } + /** + * + * + *
    +     * Required. A list of place IDs to have their inventory deleted.
    +     * At most 3000 place IDs are allowed per request.
    +     * 
    + * + * repeated string place_ids = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The placeIds to add. + * @return This builder for chaining. + */ + public Builder addPlaceIds(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensurePlaceIdsIsMutable(); + placeIds_.add(value); + onChanged(); + return this; + } + /** + * + * + *
    +     * Required. A list of place IDs to have their inventory deleted.
    +     * At most 3000 place IDs are allowed per request.
    +     * 
    + * + * repeated string place_ids = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param values The placeIds to add. + * @return This builder for chaining. + */ + public Builder addAllPlaceIds(java.lang.Iterable values) { + ensurePlaceIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, placeIds_); + onChanged(); + return this; + } + /** + * + * + *
    +     * Required. A list of place IDs to have their inventory deleted.
    +     * At most 3000 place IDs are allowed per request.
    +     * 
    + * + * repeated string place_ids = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearPlaceIds() { + placeIds_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * + * + *
    +     * Required. A list of place IDs to have their inventory deleted.
    +     * At most 3000 place IDs are allowed per request.
    +     * 
    + * + * repeated string place_ids = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes of the placeIds to add. + * @return This builder for chaining. + */ + public Builder addPlaceIdsBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensurePlaceIdsIsMutable(); + placeIds_.add(value); + onChanged(); + return this; + } + + private com.google.protobuf.Timestamp removeTime_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + removeTimeBuilder_; + /** + * + * + *
    +     * The time when the inventory deletions are issued. Used to prevent
    +     * out-of-order updates and deletions on local inventory fields. If not
    +     * provided, the internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp remove_time = 5; + * + * @return Whether the removeTime field is set. + */ + public boolean hasRemoveTime() { + return removeTimeBuilder_ != null || removeTime_ != null; + } + /** + * + * + *
    +     * The time when the inventory deletions are issued. Used to prevent
    +     * out-of-order updates and deletions on local inventory fields. If not
    +     * provided, the internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp remove_time = 5; + * + * @return The removeTime. + */ + public com.google.protobuf.Timestamp getRemoveTime() { + if (removeTimeBuilder_ == null) { + return removeTime_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : removeTime_; + } else { + return removeTimeBuilder_.getMessage(); + } + } + /** + * + * + *
    +     * The time when the inventory deletions are issued. Used to prevent
    +     * out-of-order updates and deletions on local inventory fields. If not
    +     * provided, the internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp remove_time = 5; + */ + public Builder setRemoveTime(com.google.protobuf.Timestamp value) { + if (removeTimeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + removeTime_ = value; + onChanged(); + } else { + removeTimeBuilder_.setMessage(value); + } + + return this; + } + /** + * + * + *
    +     * The time when the inventory deletions are issued. Used to prevent
    +     * out-of-order updates and deletions on local inventory fields. If not
    +     * provided, the internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp remove_time = 5; + */ + public Builder setRemoveTime(com.google.protobuf.Timestamp.Builder builderForValue) { + if (removeTimeBuilder_ == null) { + removeTime_ = builderForValue.build(); + onChanged(); + } else { + removeTimeBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * + * + *
    +     * The time when the inventory deletions are issued. Used to prevent
    +     * out-of-order updates and deletions on local inventory fields. If not
    +     * provided, the internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp remove_time = 5; + */ + public Builder mergeRemoveTime(com.google.protobuf.Timestamp value) { + if (removeTimeBuilder_ == null) { + if (removeTime_ != null) { + removeTime_ = + com.google.protobuf.Timestamp.newBuilder(removeTime_).mergeFrom(value).buildPartial(); + } else { + removeTime_ = value; + } + onChanged(); + } else { + removeTimeBuilder_.mergeFrom(value); + } + + return this; + } + /** + * + * + *
    +     * The time when the inventory deletions are issued. Used to prevent
    +     * out-of-order updates and deletions on local inventory fields. If not
    +     * provided, the internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp remove_time = 5; + */ + public Builder clearRemoveTime() { + if (removeTimeBuilder_ == null) { + removeTime_ = null; + onChanged(); + } else { + removeTime_ = null; + removeTimeBuilder_ = null; + } + + return this; + } + /** + * + * + *
    +     * The time when the inventory deletions are issued. Used to prevent
    +     * out-of-order updates and deletions on local inventory fields. If not
    +     * provided, the internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp remove_time = 5; + */ + public com.google.protobuf.Timestamp.Builder getRemoveTimeBuilder() { + + onChanged(); + return getRemoveTimeFieldBuilder().getBuilder(); + } + /** + * + * + *
    +     * The time when the inventory deletions are issued. Used to prevent
    +     * out-of-order updates and deletions on local inventory fields. If not
    +     * provided, the internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp remove_time = 5; + */ + public com.google.protobuf.TimestampOrBuilder getRemoveTimeOrBuilder() { + if (removeTimeBuilder_ != null) { + return removeTimeBuilder_.getMessageOrBuilder(); + } else { + return removeTime_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : removeTime_; + } + } + /** + * + * + *
    +     * The time when the inventory deletions are issued. Used to prevent
    +     * out-of-order updates and deletions on local inventory fields. If not
    +     * provided, the internal system time will be used.
    +     * 
    + * + * .google.protobuf.Timestamp remove_time = 5; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + getRemoveTimeFieldBuilder() { + if (removeTimeBuilder_ == null) { + removeTimeBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder>( + getRemoveTime(), getParentForChildren(), isClean()); + removeTime_ = null; + } + return removeTimeBuilder_; + } + + private boolean allowMissing_; + /** + * + * + *
    +     * If set to true, and the [Product][google.cloud.retail.v2.Product] is not
    +     * found, the local inventory removal request will still be processed and
    +     * retained for at most 1 day and processed once the
    +     * [Product][google.cloud.retail.v2.Product] is created. If set to false, a
    +     * NOT_FOUND error is returned if the
    +     * [Product][google.cloud.retail.v2.Product] is not found.
    +     * 
    + * + * bool allow_missing = 3; + * + * @return The allowMissing. + */ + @java.lang.Override + public boolean getAllowMissing() { + return allowMissing_; + } + /** + * + * + *
    +     * If set to true, and the [Product][google.cloud.retail.v2.Product] is not
    +     * found, the local inventory removal request will still be processed and
    +     * retained for at most 1 day and processed once the
    +     * [Product][google.cloud.retail.v2.Product] is created. If set to false, a
    +     * NOT_FOUND error is returned if the
    +     * [Product][google.cloud.retail.v2.Product] is not found.
    +     * 
    + * + * bool allow_missing = 3; + * + * @param value The allowMissing to set. + * @return This builder for chaining. + */ + public Builder setAllowMissing(boolean value) { + + allowMissing_ = value; + onChanged(); + return this; + } + /** + * + * + *
    +     * If set to true, and the [Product][google.cloud.retail.v2.Product] is not
    +     * found, the local inventory removal request will still be processed and
    +     * retained for at most 1 day and processed once the
    +     * [Product][google.cloud.retail.v2.Product] is created. If set to false, a
    +     * NOT_FOUND error is returned if the
    +     * [Product][google.cloud.retail.v2.Product] is not found.
    +     * 
    + * + * bool allow_missing = 3; + * + * @return This builder for chaining. + */ + public Builder clearAllowMissing() { + + allowMissing_ = false; + 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.RemoveLocalInventoriesRequest) + } + + // @@protoc_insertion_point(class_scope:google.cloud.retail.v2.RemoveLocalInventoriesRequest) + private static final com.google.cloud.retail.v2.RemoveLocalInventoriesRequest DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.retail.v2.RemoveLocalInventoriesRequest(); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RemoveLocalInventoriesRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RemoveLocalInventoriesRequest(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.RemoveLocalInventoriesRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveLocalInventoriesRequestOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveLocalInventoriesRequestOrBuilder.java new file mode 100644 index 00000000..b2d345b9 --- /dev/null +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveLocalInventoriesRequestOrBuilder.java @@ -0,0 +1,178 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/retail/v2/product_service.proto + +package com.google.cloud.retail.v2; + +public interface RemoveLocalInventoriesRequestOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.retail.v2.RemoveLocalInventoriesRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
    +   * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +   * such as
    +   * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +   * If the caller does not have permission to access the
    +   * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +   * exists, a PERMISSION_DENIED error is returned.
    +   * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The product. + */ + java.lang.String getProduct(); + /** + * + * + *
    +   * Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +   * such as
    +   * `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +   * If the caller does not have permission to access the
    +   * [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +   * exists, a PERMISSION_DENIED error is returned.
    +   * 
    + * + * + * string product = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for product. + */ + com.google.protobuf.ByteString getProductBytes(); + + /** + * + * + *
    +   * Required. A list of place IDs to have their inventory deleted.
    +   * At most 3000 place IDs are allowed per request.
    +   * 
    + * + * repeated string place_ids = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return A list containing the placeIds. + */ + java.util.List getPlaceIdsList(); + /** + * + * + *
    +   * Required. A list of place IDs to have their inventory deleted.
    +   * At most 3000 place IDs are allowed per request.
    +   * 
    + * + * repeated string place_ids = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The count of placeIds. + */ + int getPlaceIdsCount(); + /** + * + * + *
    +   * Required. A list of place IDs to have their inventory deleted.
    +   * At most 3000 place IDs are allowed per request.
    +   * 
    + * + * repeated string place_ids = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param index The index of the element to return. + * @return The placeIds at the given index. + */ + java.lang.String getPlaceIds(int index); + /** + * + * + *
    +   * Required. A list of place IDs to have their inventory deleted.
    +   * At most 3000 place IDs are allowed per request.
    +   * 
    + * + * repeated string place_ids = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param index The index of the value to return. + * @return The bytes of the placeIds at the given index. + */ + com.google.protobuf.ByteString getPlaceIdsBytes(int index); + + /** + * + * + *
    +   * The time when the inventory deletions are issued. Used to prevent
    +   * out-of-order updates and deletions on local inventory fields. If not
    +   * provided, the internal system time will be used.
    +   * 
    + * + * .google.protobuf.Timestamp remove_time = 5; + * + * @return Whether the removeTime field is set. + */ + boolean hasRemoveTime(); + /** + * + * + *
    +   * The time when the inventory deletions are issued. Used to prevent
    +   * out-of-order updates and deletions on local inventory fields. If not
    +   * provided, the internal system time will be used.
    +   * 
    + * + * .google.protobuf.Timestamp remove_time = 5; + * + * @return The removeTime. + */ + com.google.protobuf.Timestamp getRemoveTime(); + /** + * + * + *
    +   * The time when the inventory deletions are issued. Used to prevent
    +   * out-of-order updates and deletions on local inventory fields. If not
    +   * provided, the internal system time will be used.
    +   * 
    + * + * .google.protobuf.Timestamp remove_time = 5; + */ + com.google.protobuf.TimestampOrBuilder getRemoveTimeOrBuilder(); + + /** + * + * + *
    +   * If set to true, and the [Product][google.cloud.retail.v2.Product] is not
    +   * found, the local inventory removal request will still be processed and
    +   * retained for at most 1 day and processed once the
    +   * [Product][google.cloud.retail.v2.Product] is created. If set to false, a
    +   * NOT_FOUND error is returned if the
    +   * [Product][google.cloud.retail.v2.Product] is not found.
    +   * 
    + * + * bool allow_missing = 3; + * + * @return The allowMissing. + */ + boolean getAllowMissing(); +} diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveLocalInventoriesResponse.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveLocalInventoriesResponse.java new file mode 100644 index 00000000..fec8528f --- /dev/null +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveLocalInventoriesResponse.java @@ -0,0 +1,462 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/retail/v2/product_service.proto + +package com.google.cloud.retail.v2; + +/** + * + * + *
    + * Response of the [RemoveLocalInventories][] API.  Currently empty because
    + * there is no meaningful response populated from the [RemoveLocalInventories][]
    + * method.
    + * 
    + * + * Protobuf type {@code google.cloud.retail.v2.RemoveLocalInventoriesResponse} + */ +public final class RemoveLocalInventoriesResponse extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.retail.v2.RemoveLocalInventoriesResponse) + RemoveLocalInventoriesResponseOrBuilder { + private static final long serialVersionUID = 0L; + // Use RemoveLocalInventoriesResponse.newBuilder() to construct. + private RemoveLocalInventoriesResponse( + com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RemoveLocalInventoriesResponse() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new RemoveLocalInventoriesResponse(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private RemoveLocalInventoriesResponse( + 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; + default: + { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.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.ProductServiceProto + .internal_static_google_cloud_retail_v2_RemoveLocalInventoriesResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_RemoveLocalInventoriesResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.RemoveLocalInventoriesResponse.class, + com.google.cloud.retail.v2.RemoveLocalInventoriesResponse.Builder.class); + } + + 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 { + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.RemoveLocalInventoriesResponse)) { + return super.equals(obj); + } + com.google.cloud.retail.v2.RemoveLocalInventoriesResponse other = + (com.google.cloud.retail.v2.RemoveLocalInventoriesResponse) obj; + + 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 = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesResponse parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesResponse 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.RemoveLocalInventoriesResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesResponse 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.RemoveLocalInventoriesResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesResponse 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.RemoveLocalInventoriesResponse parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesResponse 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.RemoveLocalInventoriesResponse parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesResponse 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.RemoveLocalInventoriesResponse 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.RemoveLocalInventoriesResponse 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.RemoveLocalInventoriesResponse 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; + } + /** + * + * + *
    +   * Response of the [RemoveLocalInventories][] API.  Currently empty because
    +   * there is no meaningful response populated from the [RemoveLocalInventories][]
    +   * method.
    +   * 
    + * + * Protobuf type {@code google.cloud.retail.v2.RemoveLocalInventoriesResponse} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.retail.v2.RemoveLocalInventoriesResponse) + com.google.cloud.retail.v2.RemoveLocalInventoriesResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_RemoveLocalInventoriesResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_RemoveLocalInventoriesResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.RemoveLocalInventoriesResponse.class, + com.google.cloud.retail.v2.RemoveLocalInventoriesResponse.Builder.class); + } + + // Construct using com.google.cloud.retail.v2.RemoveLocalInventoriesResponse.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(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.retail.v2.ProductServiceProto + .internal_static_google_cloud_retail_v2_RemoveLocalInventoriesResponse_descriptor; + } + + @java.lang.Override + public com.google.cloud.retail.v2.RemoveLocalInventoriesResponse getDefaultInstanceForType() { + return com.google.cloud.retail.v2.RemoveLocalInventoriesResponse.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.retail.v2.RemoveLocalInventoriesResponse build() { + com.google.cloud.retail.v2.RemoveLocalInventoriesResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.retail.v2.RemoveLocalInventoriesResponse buildPartial() { + com.google.cloud.retail.v2.RemoveLocalInventoriesResponse result = + new com.google.cloud.retail.v2.RemoveLocalInventoriesResponse(this); + 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.RemoveLocalInventoriesResponse) { + return mergeFrom((com.google.cloud.retail.v2.RemoveLocalInventoriesResponse) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.retail.v2.RemoveLocalInventoriesResponse other) { + if (other == com.google.cloud.retail.v2.RemoveLocalInventoriesResponse.getDefaultInstance()) + return this; + 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.RemoveLocalInventoriesResponse parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = + (com.google.cloud.retail.v2.RemoveLocalInventoriesResponse) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + 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.RemoveLocalInventoriesResponse) + } + + // @@protoc_insertion_point(class_scope:google.cloud.retail.v2.RemoveLocalInventoriesResponse) + private static final com.google.cloud.retail.v2.RemoveLocalInventoriesResponse DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.retail.v2.RemoveLocalInventoriesResponse(); + } + + public static com.google.cloud.retail.v2.RemoveLocalInventoriesResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RemoveLocalInventoriesResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RemoveLocalInventoriesResponse(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.RemoveLocalInventoriesResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveLocalInventoriesResponseOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveLocalInventoriesResponseOrBuilder.java new file mode 100644 index 00000000..d378df0b --- /dev/null +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/RemoveLocalInventoriesResponseOrBuilder.java @@ -0,0 +1,24 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/retail/v2/product_service.proto + +package com.google.cloud.retail.v2; + +public interface RemoveLocalInventoriesResponseOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.retail.v2.RemoveLocalInventoriesResponse) + com.google.protobuf.MessageOrBuilder {} 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 8629a73f..64531348 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 @@ -254,6 +254,24 @@ private SearchRequest( int rawValue = input.readEnum(); searchMode_ = rawValue; + break; + } + case 258: + { + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Builder subBuilder = + null; + if (personalizationSpec_ != null) { + subBuilder = personalizationSpec_.toBuilder(); + } + personalizationSpec_ = + input.readMessage( + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.parser(), + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(personalizationSpec_); + personalizationSpec_ = subBuilder.buildPartial(); + } + break; } default: @@ -858,6 +876,7 @@ public interface FacetKeyOrBuilder * * "ratingCount" * * "attributes.key" * * "inventory(place_id,price)" + * * "inventory(place_id,original_price)" * * "inventory(place_id,attributes.key)" *
    * @@ -906,6 +925,7 @@ public interface FacetKeyOrBuilder * * "ratingCount" * * "attributes.key" * * "inventory(place_id,price)" + * * "inventory(place_id,original_price)" * * "inventory(place_id,attributes.key)" *
    * @@ -1538,6 +1558,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { * * "ratingCount" * * "attributes.key" * * "inventory(place_id,price)" + * * "inventory(place_id,original_price)" * * "inventory(place_id,attributes.key)" *
    * @@ -1597,6 +1618,7 @@ public java.lang.String getKey() { * * "ratingCount" * * "attributes.key" * * "inventory(place_id,price)" + * * "inventory(place_id,original_price)" * * "inventory(place_id,attributes.key)" *
    * @@ -2683,6 +2705,7 @@ public Builder mergeFrom( * * "ratingCount" * * "attributes.key" * * "inventory(place_id,price)" + * * "inventory(place_id,original_price)" * * "inventory(place_id,attributes.key)" *
    * @@ -2741,6 +2764,7 @@ public java.lang.String getKey() { * * "ratingCount" * * "attributes.key" * * "inventory(place_id,price)" + * * "inventory(place_id,original_price)" * * "inventory(place_id,attributes.key)" *
    * @@ -2799,6 +2823,7 @@ public com.google.protobuf.ByteString getKeyBytes() { * * "ratingCount" * * "attributes.key" * * "inventory(place_id,price)" + * * "inventory(place_id,original_price)" * * "inventory(place_id,attributes.key)" *
    * @@ -2856,6 +2881,7 @@ public Builder setKey(java.lang.String value) { * * "ratingCount" * * "attributes.key" * * "inventory(place_id,price)" + * * "inventory(place_id,original_price)" * * "inventory(place_id,attributes.key)" *
    * @@ -2909,6 +2935,7 @@ public Builder clearKey() { * * "ratingCount" * * "attributes.key" * * "inventory(place_id,price)" + * * "inventory(place_id,original_price)" * * "inventory(place_id,attributes.key)" *
    * @@ -6689,6 +6716,41 @@ com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec getConditi */ com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpecOrBuilder getConditionBoostSpecsOrBuilder(int index); + + /** + * + * + *
    +     * Whether to skip boostspec validation. If this field is set to true,
    +     * invalid
    +     * [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * will be ignored and valid
    +     * [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * will still be applied.
    +     * 
    + * + * optional bool skip_boost_spec_validation = 2; + * + * @return Whether the skipBoostSpecValidation field is set. + */ + boolean hasSkipBoostSpecValidation(); + /** + * + * + *
    +     * Whether to skip boostspec validation. If this field is set to true,
    +     * invalid
    +     * [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * will be ignored and valid
    +     * [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * will still be applied.
    +     * 
    + * + * optional bool skip_boost_spec_validation = 2; + * + * @return The skipBoostSpecValidation. + */ + boolean getSkipBoostSpecValidation(); } /** * @@ -6758,6 +6820,12 @@ private BoostSpec( extensionRegistry)); break; } + case 16: + { + bitField0_ |= 0x00000001; + skipBoostSpecValidation_ = input.readBool(); + break; + } default: { if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { @@ -7719,6 +7787,7 @@ public com.google.protobuf.Parser getParserForType() { } } + private int bitField0_; public static final int CONDITION_BOOST_SPECS_FIELD_NUMBER = 1; private java.util.List conditionBoostSpecs_; @@ -7819,6 +7888,49 @@ public int getConditionBoostSpecsCount() { return conditionBoostSpecs_.get(index); } + public static final int SKIP_BOOST_SPEC_VALIDATION_FIELD_NUMBER = 2; + private boolean skipBoostSpecValidation_; + /** + * + * + *
    +     * Whether to skip boostspec validation. If this field is set to true,
    +     * invalid
    +     * [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * will be ignored and valid
    +     * [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * will still be applied.
    +     * 
    + * + * optional bool skip_boost_spec_validation = 2; + * + * @return Whether the skipBoostSpecValidation field is set. + */ + @java.lang.Override + public boolean hasSkipBoostSpecValidation() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * + * + *
    +     * Whether to skip boostspec validation. If this field is set to true,
    +     * invalid
    +     * [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * will be ignored and valid
    +     * [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * will still be applied.
    +     * 
    + * + * optional bool skip_boost_spec_validation = 2; + * + * @return The skipBoostSpecValidation. + */ + @java.lang.Override + public boolean getSkipBoostSpecValidation() { + return skipBoostSpecValidation_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -7836,6 +7948,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io for (int i = 0; i < conditionBoostSpecs_.size(); i++) { output.writeMessage(1, conditionBoostSpecs_.get(i)); } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeBool(2, skipBoostSpecValidation_); + } unknownFields.writeTo(output); } @@ -7850,6 +7965,9 @@ public int getSerializedSize() { com.google.protobuf.CodedOutputStream.computeMessageSize( 1, conditionBoostSpecs_.get(i)); } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, skipBoostSpecValidation_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -7867,6 +7985,10 @@ public boolean equals(final java.lang.Object obj) { (com.google.cloud.retail.v2.SearchRequest.BoostSpec) obj; if (!getConditionBoostSpecsList().equals(other.getConditionBoostSpecsList())) return false; + if (hasSkipBoostSpecValidation() != other.hasSkipBoostSpecValidation()) return false; + if (hasSkipBoostSpecValidation()) { + if (getSkipBoostSpecValidation() != other.getSkipBoostSpecValidation()) return false; + } if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -7882,6 +8004,10 @@ public int hashCode() { hash = (37 * hash) + CONDITION_BOOST_SPECS_FIELD_NUMBER; hash = (53 * hash) + getConditionBoostSpecsList().hashCode(); } + if (hasSkipBoostSpecValidation()) { + hash = (37 * hash) + SKIP_BOOST_SPEC_VALIDATION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getSkipBoostSpecValidation()); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -8037,6 +8163,8 @@ public Builder clear() { } else { conditionBoostSpecsBuilder_.clear(); } + skipBoostSpecValidation_ = false; + bitField0_ = (bitField0_ & ~0x00000002); return this; } @@ -8065,6 +8193,7 @@ public com.google.cloud.retail.v2.SearchRequest.BoostSpec buildPartial() { com.google.cloud.retail.v2.SearchRequest.BoostSpec result = new com.google.cloud.retail.v2.SearchRequest.BoostSpec(this); int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; if (conditionBoostSpecsBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { conditionBoostSpecs_ = java.util.Collections.unmodifiableList(conditionBoostSpecs_); @@ -8074,6 +8203,11 @@ public com.google.cloud.retail.v2.SearchRequest.BoostSpec buildPartial() { } else { result.conditionBoostSpecs_ = conditionBoostSpecsBuilder_.build(); } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.skipBoostSpecValidation_ = skipBoostSpecValidation_; + to_bitField0_ |= 0x00000001; + } + result.bitField0_ = to_bitField0_; onBuilt(); return result; } @@ -8153,6 +8287,9 @@ public Builder mergeFrom(com.google.cloud.retail.v2.SearchRequest.BoostSpec othe } } } + if (other.hasSkipBoostSpecValidation()) { + setSkipBoostSpecValidation(other.getSkipBoostSpecValidation()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -8655,6 +8792,93 @@ public Builder removeConditionBoostSpecs(int index) { return conditionBoostSpecsBuilder_; } + private boolean skipBoostSpecValidation_; + /** + * + * + *
    +       * Whether to skip boostspec validation. If this field is set to true,
    +       * invalid
    +       * [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +       * will be ignored and valid
    +       * [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +       * will still be applied.
    +       * 
    + * + * optional bool skip_boost_spec_validation = 2; + * + * @return Whether the skipBoostSpecValidation field is set. + */ + @java.lang.Override + public boolean hasSkipBoostSpecValidation() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * + * + *
    +       * Whether to skip boostspec validation. If this field is set to true,
    +       * invalid
    +       * [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +       * will be ignored and valid
    +       * [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +       * will still be applied.
    +       * 
    + * + * optional bool skip_boost_spec_validation = 2; + * + * @return The skipBoostSpecValidation. + */ + @java.lang.Override + public boolean getSkipBoostSpecValidation() { + return skipBoostSpecValidation_; + } + /** + * + * + *
    +       * Whether to skip boostspec validation. If this field is set to true,
    +       * invalid
    +       * [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +       * will be ignored and valid
    +       * [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +       * will still be applied.
    +       * 
    + * + * optional bool skip_boost_spec_validation = 2; + * + * @param value The skipBoostSpecValidation to set. + * @return This builder for chaining. + */ + public Builder setSkipBoostSpecValidation(boolean value) { + bitField0_ |= 0x00000002; + skipBoostSpecValidation_ = value; + onChanged(); + return this; + } + /** + * + * + *
    +       * Whether to skip boostspec validation. If this field is set to true,
    +       * invalid
    +       * [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +       * will be ignored and valid
    +       * [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +       * will still be applied.
    +       * 
    + * + * optional bool skip_boost_spec_validation = 2; + * + * @return This builder for chaining. + */ + public Builder clearSkipBoostSpecValidation() { + bitField0_ = (bitField0_ & ~0x00000002); + skipBoostSpecValidation_ = false; + onChanged(); + return this; + } + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -9645,139 +9869,948 @@ public com.google.cloud.retail.v2.SearchRequest.QueryExpansionSpec getDefaultIns } } - 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; - } + public interface PersonalizationSpecOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.retail.v2.SearchRequest.PersonalizationSpec) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
    +     * Defaults to
    +     * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.AUTO].
    +     * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode mode = 1; + * + * @return The enum numeric value on the wire for mode. + */ + int getModeValue(); + /** + * + * + *
    +     * Defaults to
    +     * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.AUTO].
    +     * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode mode = 1; + * + * @return The mode. + */ + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode getMode(); } /** * * *
    -   * 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.
    +   * The specification for personalization.
        * 
    * - * string placement = 1 [(.google.api.field_behavior) = REQUIRED]; - * - * @return The bytes for placement. + * Protobuf type {@code google.cloud.retail.v2.SearchRequest.PersonalizationSpec} */ - @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 class PersonalizationSpec extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.retail.v2.SearchRequest.PersonalizationSpec) + PersonalizationSpecOrBuilder { + private static final long serialVersionUID = 0L; + // Use PersonalizationSpec.newBuilder() to construct. + private PersonalizationSpec(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); } - } - 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; + private PersonalizationSpec() { + mode_ = 0; } - } - 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; + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new PersonalizationSpec(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private PersonalizationSpec( + 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 (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_PersonalizationSpec_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_PersonalizationSpec_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.class, + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Builder.class); + } + + /** + * + * + *
    +     * The personalization mode of each search request.
    +     * 
    + * + * Protobuf enum {@code google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode} + */ + public enum Mode implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
    +       * Default value. Defaults to
    +       * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.AUTO].
    +       * 
    + * + * MODE_UNSPECIFIED = 0; + */ + MODE_UNSPECIFIED(0), + /** + * + * + *
    +       * Let CRS decide whether to use personalization.
    +       * 
    + * + * AUTO = 1; + */ + AUTO(1), + /** + * + * + *
    +       * Disable personalization.
    +       * 
    + * + * DISABLED = 2; + */ + DISABLED(2), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
    +       * Default value. Defaults to
    +       * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.AUTO].
    +       * 
    + * + * MODE_UNSPECIFIED = 0; + */ + public static final int MODE_UNSPECIFIED_VALUE = 0; + /** + * + * + *
    +       * Let CRS decide whether to use personalization.
    +       * 
    + * + * AUTO = 1; + */ + public static final int AUTO_VALUE = 1; + /** + * + * + *
    +       * Disable personalization.
    +       * 
    + * + * DISABLED = 2; + */ + public static final int DISABLED_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 AUTO; + case 2: + return DISABLED; + 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.PersonalizationSpec.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.PersonalizationSpec.Mode) + } + + public static final int MODE_FIELD_NUMBER = 1; + private int mode_; + /** + * + * + *
    +     * Defaults to
    +     * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.AUTO].
    +     * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode mode = 1; + * + * @return The enum numeric value on the wire for mode. + */ + @java.lang.Override + public int getModeValue() { + return mode_; + } + /** + * + * + *
    +     * Defaults to
    +     * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.AUTO].
    +     * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode mode = 1; + * + * @return The mode. + */ + @java.lang.Override + public com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode getMode() { + @SuppressWarnings("deprecation") + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode result = + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.valueOf(mode_); + return result == null + ? com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.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.PersonalizationSpec.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.PersonalizationSpec.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.PersonalizationSpec)) { + return super.equals(obj); + } + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec other = + (com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec) 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.PersonalizationSpec parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec 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.PersonalizationSpec parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec 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.PersonalizationSpec parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec 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.PersonalizationSpec 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.PersonalizationSpec 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.PersonalizationSpec 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.PersonalizationSpec 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.PersonalizationSpec 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.PersonalizationSpec 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.PersonalizationSpec 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 personalization.
    +     * 
    + * + * Protobuf type {@code google.cloud.retail.v2.SearchRequest.PersonalizationSpec} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.retail.v2.SearchRequest.PersonalizationSpec) + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpecOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.retail.v2.SearchServiceProto + .internal_static_google_cloud_retail_v2_SearchRequest_PersonalizationSpec_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_PersonalizationSpec_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.class, + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Builder.class); + } + + // Construct using com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.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_PersonalizationSpec_descriptor; + } + + @java.lang.Override + public com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec + getDefaultInstanceForType() { + return com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec build() { + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec buildPartial() { + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec result = + new com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec(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.PersonalizationSpec) { + return mergeFrom((com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec other) { + if (other + == com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.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.PersonalizationSpec parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = + (com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec) + e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int mode_ = 0; + /** + * + * + *
    +       * Defaults to
    +       * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.AUTO].
    +       * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode mode = 1; + * + * @return The enum numeric value on the wire for mode. + */ + @java.lang.Override + public int getModeValue() { + return mode_; + } + /** + * + * + *
    +       * Defaults to
    +       * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.AUTO].
    +       * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec.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; + } + /** + * + * + *
    +       * Defaults to
    +       * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.AUTO].
    +       * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode mode = 1; + * + * @return The mode. + */ + @java.lang.Override + public com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode getMode() { + @SuppressWarnings("deprecation") + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode result = + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.valueOf(mode_); + return result == null + ? com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.UNRECOGNIZED + : result; + } + /** + * + * + *
    +       * Defaults to
    +       * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.AUTO].
    +       * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode mode = 1; + * + * @param value The mode to set. + * @return This builder for chaining. + */ + public Builder setMode( + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode value) { + if (value == null) { + throw new NullPointerException(); + } + + mode_ = value.getNumber(); + onChanged(); + return this; + } + /** + * + * + *
    +       * Defaults to
    +       * [Mode.AUTO][google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.AUTO].
    +       * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec.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.PersonalizationSpec) + } + + // @@protoc_insertion_point(class_scope:google.cloud.retail.v2.SearchRequest.PersonalizationSpec) + private static final com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec(); + } + + public static com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PersonalizationSpec parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new PersonalizationSpec(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.PersonalizationSpec + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + 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.
    +   * 
    + * + * 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; } } /** @@ -9814,6 +10847,8 @@ public com.google.protobuf.ByteString getQueryBytes() { * 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. *
    @@ -9842,6 +10877,8 @@ public java.lang.String getVisitorId() { * 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. *
    @@ -10081,6 +11118,8 @@ public com.google.protobuf.ByteString getFilterBytes() { * * *
    +   * The default filter that is applied when a user performs a search without
    +   * checking any filters on the search page.
        * The filter applied to every search request when quality improvement such as
        * query expansion is needed. For example, if a query does not have enough
        * results, an expanded query with
    @@ -10111,6 +11150,8 @@ public java.lang.String getCanonicalFilter() {
        *
        *
        * 
    +   * The default filter that is applied when a user performs a search without
    +   * checking any filters on the search page.
        * The filter applied to every search request when quality improvement such as
        * query expansion is needed. For example, if a query does not have enough
        * results, an expanded query with
    @@ -10283,17 +11324,20 @@ public com.google.cloud.retail.v2.SearchRequest.FacetSpecOrBuilder getFacetSpecs
        *
        *
        * 
    +   * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic
    +   * to enable dynamic facets. Do not set this field.
        * The specification for dynamically generated facets. Notice that only
        * textual facets can be dynamically generated.
    -   * This feature requires additional allowlisting. Contact Retail Search
    -   * support team if you are interested in using dynamic facet feature.
        * 
    * - * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21; + * + * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; + * * * @return Whether the dynamicFacetSpec field is set. */ @java.lang.Override + @java.lang.Deprecated public boolean hasDynamicFacetSpec() { return dynamicFacetSpec_ != null; } @@ -10301,17 +11345,20 @@ public boolean hasDynamicFacetSpec() { * * *
    +   * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic
    +   * to enable dynamic facets. Do not set this field.
        * The specification for dynamically generated facets. Notice that only
        * textual facets can be dynamically generated.
    -   * This feature requires additional allowlisting. Contact Retail Search
    -   * support team if you are interested in using dynamic facet feature.
        * 
    * - * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21; + * + * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; + * * * @return The dynamicFacetSpec. */ @java.lang.Override + @java.lang.Deprecated public com.google.cloud.retail.v2.SearchRequest.DynamicFacetSpec getDynamicFacetSpec() { return dynamicFacetSpec_ == null ? com.google.cloud.retail.v2.SearchRequest.DynamicFacetSpec.getDefaultInstance() @@ -10321,15 +11368,18 @@ public com.google.cloud.retail.v2.SearchRequest.DynamicFacetSpec getDynamicFacet * * *
    +   * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic
    +   * to enable dynamic facets. Do not set this field.
        * The specification for dynamically generated facets. Notice that only
        * textual facets can be dynamically generated.
    -   * This feature requires additional allowlisting. Contact Retail Search
    -   * support team if you are interested in using dynamic facet feature.
        * 
    * - * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21; + * + * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; + * */ @java.lang.Override + @java.lang.Deprecated public com.google.cloud.retail.v2.SearchRequest.DynamicFacetSpecOrBuilder getDynamicFacetSpecOrBuilder() { return getDynamicFacetSpec(); @@ -10467,12 +11517,15 @@ public com.google.cloud.retail.v2.SearchRequest.QueryExpansionSpec getQueryExpan *
        * The keys to fetch and rollup the matching
        * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -   * all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -   * Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -   * query latency. Maximum number of keys is 10.
    +   * [Product][google.cloud.retail.v2.Product]s attributes,
    +   * [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +   * attributes from all the matching
    +   * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +   * [Product][google.cloud.retail.v2.Product]s or
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +   * de-duplicated. Notice that rollup attributes will lead to extra query
    +   * latency. Maximum number of keys is 30.
        * For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
        * fulfillment type and a fulfillment ID must be provided in the format of
        * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123",
    @@ -10484,6 +11537,7 @@ public com.google.cloud.retail.v2.SearchRequest.QueryExpansionSpec getQueryExpan
        * * discount
        * * variantId
        * * 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.
        * * attributes.key, where key is any key in the
    @@ -10541,12 +11595,15 @@ public com.google.protobuf.ProtocolStringList getVariantRollupKeysList() {
        * 
        * The keys to fetch and rollup the matching
        * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -   * all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -   * Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -   * query latency. Maximum number of keys is 10.
    +   * [Product][google.cloud.retail.v2.Product]s attributes,
    +   * [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +   * attributes from all the matching
    +   * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +   * [Product][google.cloud.retail.v2.Product]s or
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +   * de-duplicated. Notice that rollup attributes will lead to extra query
    +   * latency. Maximum number of keys is 30.
        * For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
        * fulfillment type and a fulfillment ID must be provided in the format of
        * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123",
    @@ -10558,6 +11615,7 @@ public com.google.protobuf.ProtocolStringList getVariantRollupKeysList() {
        * * discount
        * * variantId
        * * 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.
        * * attributes.key, where key is any key in the
    @@ -10615,12 +11673,15 @@ public int getVariantRollupKeysCount() {
        * 
        * The keys to fetch and rollup the matching
        * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -   * all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -   * Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -   * query latency. Maximum number of keys is 10.
    +   * [Product][google.cloud.retail.v2.Product]s attributes,
    +   * [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +   * attributes from all the matching
    +   * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +   * [Product][google.cloud.retail.v2.Product]s or
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +   * de-duplicated. Notice that rollup attributes will lead to extra query
    +   * latency. Maximum number of keys is 30.
        * For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
        * fulfillment type and a fulfillment ID must be provided in the format of
        * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123",
    @@ -10632,6 +11693,7 @@ public int getVariantRollupKeysCount() {
        * * discount
        * * variantId
        * * 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.
        * * attributes.key, where key is any key in the
    @@ -10690,12 +11752,15 @@ public java.lang.String getVariantRollupKeys(int index) {
        * 
        * The keys to fetch and rollup the matching
        * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -   * all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -   * Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -   * query latency. Maximum number of keys is 10.
    +   * [Product][google.cloud.retail.v2.Product]s attributes,
    +   * [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +   * attributes from all the matching
    +   * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +   * [Product][google.cloud.retail.v2.Product]s or
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +   * de-duplicated. Notice that rollup attributes will lead to extra query
    +   * latency. Maximum number of keys is 30.
        * For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
        * fulfillment type and a fulfillment ID must be provided in the format of
        * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123",
    @@ -10707,6 +11772,7 @@ public java.lang.String getVariantRollupKeys(int index) {
        * * discount
        * * variantId
        * * 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.
        * * attributes.key, where key is any key in the
    @@ -10897,6 +11963,58 @@ public com.google.cloud.retail.v2.SearchRequest.SearchMode getSearchMode() {
             : result;
       }
     
    +  public static final int PERSONALIZATION_SPEC_FIELD_NUMBER = 32;
    +  private com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalizationSpec_;
    +  /**
    +   *
    +   *
    +   * 
    +   * The specification for personalization.
    +   * 
    + * + * .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(); + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -10967,6 +12085,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io .getNumber()) { output.writeEnum(31, searchMode_); } + if (personalizationSpec_ != null) { + output.writeMessage(32, getPersonalizationSpec()); + } unknownFields.writeTo(output); } @@ -11042,6 +12163,10 @@ public int getSerializedSize() { .getNumber()) { size += com.google.protobuf.CodedOutputStream.computeEnumSize(31, searchMode_); } + if (personalizationSpec_ != null) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(32, getPersonalizationSpec()); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -11087,6 +12212,10 @@ public boolean equals(final java.lang.Object obj) { if (!getVariantRollupKeysList().equals(other.getVariantRollupKeysList())) return false; if (!getPageCategoriesList().equals(other.getPageCategoriesList())) return false; if (searchMode_ != other.searchMode_) return false; + if (hasPersonalizationSpec() != other.hasPersonalizationSpec()) return false; + if (hasPersonalizationSpec()) { + if (!getPersonalizationSpec().equals(other.getPersonalizationSpec())) return false; + } if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -11148,6 +12277,10 @@ public int hashCode() { } hash = (37 * hash) + SEARCH_MODE_FIELD_NUMBER; hash = (53 * hash) + searchMode_; + if (hasPersonalizationSpec()) { + hash = (37 * hash) + PERSONALIZATION_SPEC_FIELD_NUMBER; + hash = (53 * hash) + getPersonalizationSpec().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -11352,6 +12485,12 @@ public Builder clear() { bitField0_ = (bitField0_ & ~0x00000004); searchMode_ = 0; + if (personalizationSpecBuilder_ == null) { + personalizationSpec_ = null; + } else { + personalizationSpec_ = null; + personalizationSpecBuilder_ = null; + } return this; } @@ -11430,6 +12569,11 @@ public com.google.cloud.retail.v2.SearchRequest buildPartial() { } result.pageCategories_ = pageCategories_; result.searchMode_ = searchMode_; + if (personalizationSpecBuilder_ == null) { + result.personalizationSpec_ = personalizationSpec_; + } else { + result.personalizationSpec_ = personalizationSpecBuilder_.build(); + } onBuilt(); return result; } @@ -11579,6 +12723,9 @@ public Builder mergeFrom(com.google.cloud.retail.v2.SearchRequest other) { if (other.searchMode_ != 0) { setSearchModeValue(other.getSearchModeValue()); } + if (other.hasPersonalizationSpec()) { + mergePersonalizationSpec(other.getPersonalizationSpec()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -11616,7 +12763,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.
          * 
    @@ -11641,7 +12788,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.
          * 
    @@ -11666,7 +12813,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.
          * 
    @@ -11690,7 +12837,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.
          * 
    @@ -11710,7 +12857,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.
          * 
    @@ -11967,6 +13114,8 @@ public Builder setQueryBytes(com.google.protobuf.ByteString value) { * 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. *
    @@ -11994,6 +13143,8 @@ public java.lang.String getVisitorId() { * 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. *
    @@ -12021,6 +13172,8 @@ public com.google.protobuf.ByteString getVisitorIdBytes() { * 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. *
    @@ -12047,6 +13200,8 @@ public Builder setVisitorId(java.lang.String value) { * 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. *
    @@ -12069,6 +13224,8 @@ public Builder clearVisitorId() { * 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. *
    @@ -12679,6 +13836,8 @@ public Builder setFilterBytes(com.google.protobuf.ByteString value) { * * *
    +     * The default filter that is applied when a user performs a search without
    +     * checking any filters on the search page.
          * The filter applied to every search request when quality improvement such as
          * query expansion is needed. For example, if a query does not have enough
          * results, an expanded query with
    @@ -12708,6 +13867,8 @@ public java.lang.String getCanonicalFilter() {
          *
          *
          * 
    +     * The default filter that is applied when a user performs a search without
    +     * checking any filters on the search page.
          * The filter applied to every search request when quality improvement such as
          * query expansion is needed. For example, if a query does not have enough
          * results, an expanded query with
    @@ -12737,6 +13898,8 @@ public com.google.protobuf.ByteString getCanonicalFilterBytes() {
          *
          *
          * 
    +     * The default filter that is applied when a user performs a search without
    +     * checking any filters on the search page.
          * The filter applied to every search request when quality improvement such as
          * query expansion is needed. For example, if a query does not have enough
          * results, an expanded query with
    @@ -12765,6 +13928,8 @@ public Builder setCanonicalFilter(java.lang.String value) {
          *
          *
          * 
    +     * The default filter that is applied when a user performs a search without
    +     * checking any filters on the search page.
          * The filter applied to every search request when quality improvement such as
          * query expansion is needed. For example, if a query does not have enough
          * results, an expanded query with
    @@ -12789,6 +13954,8 @@ public Builder clearCanonicalFilter() {
          *
          *
          * 
    +     * The default filter that is applied when a user performs a search without
    +     * checking any filters on the search page.
          * The filter applied to every search request when quality improvement such as
          * query expansion is needed. For example, if a query does not have enough
          * results, an expanded query with
    @@ -13350,16 +14517,19 @@ public com.google.cloud.retail.v2.SearchRequest.FacetSpec.Builder addFacetSpecsB
          *
          *
          * 
    +     * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic
    +     * to enable dynamic facets. Do not set this field.
          * The specification for dynamically generated facets. Notice that only
          * textual facets can be dynamically generated.
    -     * This feature requires additional allowlisting. Contact Retail Search
    -     * support team if you are interested in using dynamic facet feature.
          * 
    * - * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21; + * + * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; + * * * @return Whether the dynamicFacetSpec field is set. */ + @java.lang.Deprecated public boolean hasDynamicFacetSpec() { return dynamicFacetSpecBuilder_ != null || dynamicFacetSpec_ != null; } @@ -13367,16 +14537,19 @@ public boolean hasDynamicFacetSpec() { * * *
    +     * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic
    +     * to enable dynamic facets. Do not set this field.
          * The specification for dynamically generated facets. Notice that only
          * textual facets can be dynamically generated.
    -     * This feature requires additional allowlisting. Contact Retail Search
    -     * support team if you are interested in using dynamic facet feature.
          * 
    * - * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21; + * + * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; + * * * @return The dynamicFacetSpec. */ + @java.lang.Deprecated public com.google.cloud.retail.v2.SearchRequest.DynamicFacetSpec getDynamicFacetSpec() { if (dynamicFacetSpecBuilder_ == null) { return dynamicFacetSpec_ == null @@ -13390,14 +14563,17 @@ public com.google.cloud.retail.v2.SearchRequest.DynamicFacetSpec getDynamicFacet * * *
    +     * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic
    +     * to enable dynamic facets. Do not set this field.
          * The specification for dynamically generated facets. Notice that only
          * textual facets can be dynamically generated.
    -     * This feature requires additional allowlisting. Contact Retail Search
    -     * support team if you are interested in using dynamic facet feature.
          * 
    * - * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21; + * + * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; + * */ + @java.lang.Deprecated public Builder setDynamicFacetSpec( com.google.cloud.retail.v2.SearchRequest.DynamicFacetSpec value) { if (dynamicFacetSpecBuilder_ == null) { @@ -13416,14 +14592,17 @@ public Builder setDynamicFacetSpec( * * *
    +     * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic
    +     * to enable dynamic facets. Do not set this field.
          * The specification for dynamically generated facets. Notice that only
          * textual facets can be dynamically generated.
    -     * This feature requires additional allowlisting. Contact Retail Search
    -     * support team if you are interested in using dynamic facet feature.
          * 
    * - * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21; + * + * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; + * */ + @java.lang.Deprecated public Builder setDynamicFacetSpec( com.google.cloud.retail.v2.SearchRequest.DynamicFacetSpec.Builder builderForValue) { if (dynamicFacetSpecBuilder_ == null) { @@ -13439,14 +14618,17 @@ public Builder setDynamicFacetSpec( * * *
    +     * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic
    +     * to enable dynamic facets. Do not set this field.
          * The specification for dynamically generated facets. Notice that only
          * textual facets can be dynamically generated.
    -     * This feature requires additional allowlisting. Contact Retail Search
    -     * support team if you are interested in using dynamic facet feature.
          * 
    * - * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21; + * + * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; + * */ + @java.lang.Deprecated public Builder mergeDynamicFacetSpec( com.google.cloud.retail.v2.SearchRequest.DynamicFacetSpec value) { if (dynamicFacetSpecBuilder_ == null) { @@ -13470,14 +14652,17 @@ public Builder mergeDynamicFacetSpec( * * *
    +     * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic
    +     * to enable dynamic facets. Do not set this field.
          * The specification for dynamically generated facets. Notice that only
          * textual facets can be dynamically generated.
    -     * This feature requires additional allowlisting. Contact Retail Search
    -     * support team if you are interested in using dynamic facet feature.
          * 
    * - * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21; + * + * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; + * */ + @java.lang.Deprecated public Builder clearDynamicFacetSpec() { if (dynamicFacetSpecBuilder_ == null) { dynamicFacetSpec_ = null; @@ -13493,14 +14678,17 @@ public Builder clearDynamicFacetSpec() { * * *
    +     * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic
    +     * to enable dynamic facets. Do not set this field.
          * The specification for dynamically generated facets. Notice that only
          * textual facets can be dynamically generated.
    -     * This feature requires additional allowlisting. Contact Retail Search
    -     * support team if you are interested in using dynamic facet feature.
          * 
    * - * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21; + * + * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; + * */ + @java.lang.Deprecated public com.google.cloud.retail.v2.SearchRequest.DynamicFacetSpec.Builder getDynamicFacetSpecBuilder() { @@ -13511,14 +14699,17 @@ public Builder clearDynamicFacetSpec() { * * *
    +     * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic
    +     * to enable dynamic facets. Do not set this field.
          * The specification for dynamically generated facets. Notice that only
          * textual facets can be dynamically generated.
    -     * This feature requires additional allowlisting. Contact Retail Search
    -     * support team if you are interested in using dynamic facet feature.
          * 
    * - * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21; + * + * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; + * */ + @java.lang.Deprecated public com.google.cloud.retail.v2.SearchRequest.DynamicFacetSpecOrBuilder getDynamicFacetSpecOrBuilder() { if (dynamicFacetSpecBuilder_ != null) { @@ -13533,13 +14724,15 @@ public Builder clearDynamicFacetSpec() { * * *
    +     * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic
    +     * to enable dynamic facets. Do not set this field.
          * The specification for dynamically generated facets. Notice that only
          * textual facets can be dynamically generated.
    -     * This feature requires additional allowlisting. Contact Retail Search
    -     * support team if you are interested in using dynamic facet feature.
          * 
    * - * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21; + * + * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; + * */ private com.google.protobuf.SingleFieldBuilderV3< com.google.cloud.retail.v2.SearchRequest.DynamicFacetSpec, @@ -14031,12 +15224,15 @@ private void ensureVariantRollupKeysIsMutable() { *
          * The keys to fetch and rollup the matching
          * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -     * all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -     * Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -     * query latency. Maximum number of keys is 10.
    +     * [Product][google.cloud.retail.v2.Product]s attributes,
    +     * [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +     * attributes from all the matching
    +     * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +     * [Product][google.cloud.retail.v2.Product]s or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +     * de-duplicated. Notice that rollup attributes will lead to extra query
    +     * latency. Maximum number of keys is 30.
          * For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
          * fulfillment type and a fulfillment ID must be provided in the format of
          * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123",
    @@ -14048,6 +15244,7 @@ private void ensureVariantRollupKeysIsMutable() {
          * * discount
          * * variantId
          * * 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.
          * * attributes.key, where key is any key in the
    @@ -14105,12 +15302,15 @@ public com.google.protobuf.ProtocolStringList getVariantRollupKeysList() {
          * 
          * The keys to fetch and rollup the matching
          * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -     * all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -     * Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -     * query latency. Maximum number of keys is 10.
    +     * [Product][google.cloud.retail.v2.Product]s attributes,
    +     * [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +     * attributes from all the matching
    +     * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +     * [Product][google.cloud.retail.v2.Product]s or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +     * de-duplicated. Notice that rollup attributes will lead to extra query
    +     * latency. Maximum number of keys is 30.
          * For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
          * fulfillment type and a fulfillment ID must be provided in the format of
          * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123",
    @@ -14122,6 +15322,7 @@ public com.google.protobuf.ProtocolStringList getVariantRollupKeysList() {
          * * discount
          * * variantId
          * * 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.
          * * attributes.key, where key is any key in the
    @@ -14179,12 +15380,15 @@ public int getVariantRollupKeysCount() {
          * 
          * The keys to fetch and rollup the matching
          * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -     * all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -     * Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -     * query latency. Maximum number of keys is 10.
    +     * [Product][google.cloud.retail.v2.Product]s attributes,
    +     * [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +     * attributes from all the matching
    +     * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +     * [Product][google.cloud.retail.v2.Product]s or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +     * de-duplicated. Notice that rollup attributes will lead to extra query
    +     * latency. Maximum number of keys is 30.
          * For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
          * fulfillment type and a fulfillment ID must be provided in the format of
          * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123",
    @@ -14196,6 +15400,7 @@ public int getVariantRollupKeysCount() {
          * * discount
          * * variantId
          * * 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.
          * * attributes.key, where key is any key in the
    @@ -14254,12 +15459,15 @@ public java.lang.String getVariantRollupKeys(int index) {
          * 
          * The keys to fetch and rollup the matching
          * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -     * all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -     * Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -     * query latency. Maximum number of keys is 10.
    +     * [Product][google.cloud.retail.v2.Product]s attributes,
    +     * [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +     * attributes from all the matching
    +     * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +     * [Product][google.cloud.retail.v2.Product]s or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +     * de-duplicated. Notice that rollup attributes will lead to extra query
    +     * latency. Maximum number of keys is 30.
          * For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
          * fulfillment type and a fulfillment ID must be provided in the format of
          * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123",
    @@ -14271,6 +15479,7 @@ public java.lang.String getVariantRollupKeys(int index) {
          * * discount
          * * variantId
          * * 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.
          * * attributes.key, where key is any key in the
    @@ -14329,12 +15538,15 @@ public com.google.protobuf.ByteString getVariantRollupKeysBytes(int index) {
          * 
          * The keys to fetch and rollup the matching
          * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -     * all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -     * Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -     * query latency. Maximum number of keys is 10.
    +     * [Product][google.cloud.retail.v2.Product]s attributes,
    +     * [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +     * attributes from all the matching
    +     * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +     * [Product][google.cloud.retail.v2.Product]s or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +     * de-duplicated. Notice that rollup attributes will lead to extra query
    +     * latency. Maximum number of keys is 30.
          * For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
          * fulfillment type and a fulfillment ID must be provided in the format of
          * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123",
    @@ -14346,6 +15558,7 @@ public com.google.protobuf.ByteString getVariantRollupKeysBytes(int index) {
          * * discount
          * * variantId
          * * 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.
          * * attributes.key, where key is any key in the
    @@ -14411,12 +15624,15 @@ public Builder setVariantRollupKeys(int index, java.lang.String value) {
          * 
          * The keys to fetch and rollup the matching
          * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -     * all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -     * Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -     * query latency. Maximum number of keys is 10.
    +     * [Product][google.cloud.retail.v2.Product]s attributes,
    +     * [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +     * attributes from all the matching
    +     * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +     * [Product][google.cloud.retail.v2.Product]s or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +     * de-duplicated. Notice that rollup attributes will lead to extra query
    +     * latency. Maximum number of keys is 30.
          * For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
          * fulfillment type and a fulfillment ID must be provided in the format of
          * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123",
    @@ -14428,6 +15644,7 @@ public Builder setVariantRollupKeys(int index, java.lang.String value) {
          * * discount
          * * variantId
          * * 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.
          * * attributes.key, where key is any key in the
    @@ -14492,12 +15709,15 @@ public Builder addVariantRollupKeys(java.lang.String value) {
          * 
          * The keys to fetch and rollup the matching
          * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -     * all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -     * Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -     * query latency. Maximum number of keys is 10.
    +     * [Product][google.cloud.retail.v2.Product]s attributes,
    +     * [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +     * attributes from all the matching
    +     * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +     * [Product][google.cloud.retail.v2.Product]s or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +     * de-duplicated. Notice that rollup attributes will lead to extra query
    +     * latency. Maximum number of keys is 30.
          * For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
          * fulfillment type and a fulfillment ID must be provided in the format of
          * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123",
    @@ -14509,6 +15729,7 @@ public Builder addVariantRollupKeys(java.lang.String value) {
          * * discount
          * * variantId
          * * 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.
          * * attributes.key, where key is any key in the
    @@ -14570,12 +15791,15 @@ public Builder addAllVariantRollupKeys(java.lang.Iterable valu
          * 
          * The keys to fetch and rollup the matching
          * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -     * all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -     * Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -     * query latency. Maximum number of keys is 10.
    +     * [Product][google.cloud.retail.v2.Product]s attributes,
    +     * [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +     * attributes from all the matching
    +     * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +     * [Product][google.cloud.retail.v2.Product]s or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +     * de-duplicated. Notice that rollup attributes will lead to extra query
    +     * latency. Maximum number of keys is 30.
          * For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
          * fulfillment type and a fulfillment ID must be provided in the format of
          * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123",
    @@ -14587,6 +15811,7 @@ public Builder addAllVariantRollupKeys(java.lang.Iterable valu
          * * discount
          * * variantId
          * * 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.
          * * attributes.key, where key is any key in the
    @@ -14647,12 +15872,15 @@ public Builder clearVariantRollupKeys() {
          * 
          * The keys to fetch and rollup the matching
          * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -     * all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -     * Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -     * [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -     * query latency. Maximum number of keys is 10.
    +     * [Product][google.cloud.retail.v2.Product]s attributes,
    +     * [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +     * attributes from all the matching
    +     * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +     * [Product][google.cloud.retail.v2.Product]s or
    +     * [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +     * de-duplicated. Notice that rollup attributes will lead to extra query
    +     * latency. Maximum number of keys is 30.
          * For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
          * fulfillment type and a fulfillment ID must be provided in the format of
          * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123",
    @@ -14664,6 +15892,7 @@ public Builder clearVariantRollupKeys() {
          * * discount
          * * variantId
          * * 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.
          * * attributes.key, where key is any key in the
    @@ -15071,6 +16300,206 @@ public Builder clearSearchMode() {
           return this;
         }
     
    +    private com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalizationSpec_;
    +    private com.google.protobuf.SingleFieldBuilderV3<
    +            com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec,
    +            com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Builder,
    +            com.google.cloud.retail.v2.SearchRequest.PersonalizationSpecOrBuilder>
    +        personalizationSpecBuilder_;
    +    /**
    +     *
    +     *
    +     * 
    +     * The specification for personalization.
    +     * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalization_spec = 32; + * + * + * @return Whether the personalizationSpec field is set. + */ + public boolean hasPersonalizationSpec() { + return personalizationSpecBuilder_ != null || personalizationSpec_ != null; + } + /** + * + * + *
    +     * The specification for personalization.
    +     * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalization_spec = 32; + * + * + * @return The personalizationSpec. + */ + public com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec getPersonalizationSpec() { + if (personalizationSpecBuilder_ == null) { + return personalizationSpec_ == null + ? com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.getDefaultInstance() + : personalizationSpec_; + } else { + return personalizationSpecBuilder_.getMessage(); + } + } + /** + * + * + *
    +     * The specification for personalization.
    +     * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalization_spec = 32; + * + */ + public Builder setPersonalizationSpec( + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec value) { + if (personalizationSpecBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + personalizationSpec_ = value; + onChanged(); + } else { + personalizationSpecBuilder_.setMessage(value); + } + + return this; + } + /** + * + * + *
    +     * The specification for personalization.
    +     * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalization_spec = 32; + * + */ + public Builder setPersonalizationSpec( + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Builder builderForValue) { + if (personalizationSpecBuilder_ == null) { + personalizationSpec_ = builderForValue.build(); + onChanged(); + } else { + personalizationSpecBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * + * + *
    +     * The specification for personalization.
    +     * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalization_spec = 32; + * + */ + public Builder mergePersonalizationSpec( + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec value) { + if (personalizationSpecBuilder_ == null) { + if (personalizationSpec_ != null) { + personalizationSpec_ = + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.newBuilder( + personalizationSpec_) + .mergeFrom(value) + .buildPartial(); + } else { + personalizationSpec_ = value; + } + onChanged(); + } else { + personalizationSpecBuilder_.mergeFrom(value); + } + + return this; + } + /** + * + * + *
    +     * The specification for personalization.
    +     * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalization_spec = 32; + * + */ + public Builder clearPersonalizationSpec() { + if (personalizationSpecBuilder_ == null) { + personalizationSpec_ = null; + onChanged(); + } else { + personalizationSpec_ = null; + personalizationSpecBuilder_ = null; + } + + return this; + } + /** + * + * + *
    +     * The specification for personalization.
    +     * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalization_spec = 32; + * + */ + public com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Builder + getPersonalizationSpecBuilder() { + + onChanged(); + return getPersonalizationSpecFieldBuilder().getBuilder(); + } + /** + * + * + *
    +     * The specification for personalization.
    +     * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalization_spec = 32; + * + */ + public com.google.cloud.retail.v2.SearchRequest.PersonalizationSpecOrBuilder + getPersonalizationSpecOrBuilder() { + if (personalizationSpecBuilder_ != null) { + return personalizationSpecBuilder_.getMessageOrBuilder(); + } else { + 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; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec, + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Builder, + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpecOrBuilder> + getPersonalizationSpecFieldBuilder() { + if (personalizationSpecBuilder_ == null) { + personalizationSpecBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec, + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Builder, + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpecOrBuilder>( + getPersonalizationSpec(), getParentForChildren(), isClean()); + personalizationSpec_ = null; + } + return personalizationSpecBuilder_; + } + @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 13340a0b..c42fb562 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.
        * 
    @@ -118,6 +118,8 @@ public interface SearchRequestOrBuilder * 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. *
    @@ -135,6 +137,8 @@ public interface SearchRequestOrBuilder * 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. *
    @@ -292,6 +296,8 @@ public interface SearchRequestOrBuilder * * *
    +   * The default filter that is applied when a user performs a search without
    +   * checking any filters on the search page.
        * The filter applied to every search request when quality improvement such as
        * query expansion is needed. For example, if a query does not have enough
        * results, an expanded query with
    @@ -311,6 +317,8 @@ public interface SearchRequestOrBuilder
        *
        *
        * 
    +   * The default filter that is applied when a user performs a search without
    +   * checking any filters on the search page.
        * The filter applied to every search request when quality improvement such as
        * query expansion is needed. For example, if a query does not have enough
        * results, an expanded query with
    @@ -428,44 +436,53 @@ public interface SearchRequestOrBuilder
        *
        *
        * 
    +   * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic
    +   * to enable dynamic facets. Do not set this field.
        * The specification for dynamically generated facets. Notice that only
        * textual facets can be dynamically generated.
    -   * This feature requires additional allowlisting. Contact Retail Search
    -   * support team if you are interested in using dynamic facet feature.
        * 
    * - * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21; + * + * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; + * * * @return Whether the dynamicFacetSpec field is set. */ + @java.lang.Deprecated boolean hasDynamicFacetSpec(); /** * * *
    +   * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic
    +   * to enable dynamic facets. Do not set this field.
        * The specification for dynamically generated facets. Notice that only
        * textual facets can be dynamically generated.
    -   * This feature requires additional allowlisting. Contact Retail Search
    -   * support team if you are interested in using dynamic facet feature.
        * 
    * - * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21; + * + * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; + * * * @return The dynamicFacetSpec. */ + @java.lang.Deprecated com.google.cloud.retail.v2.SearchRequest.DynamicFacetSpec getDynamicFacetSpec(); /** * * *
    +   * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic
    +   * to enable dynamic facets. Do not set this field.
        * The specification for dynamically generated facets. Notice that only
        * textual facets can be dynamically generated.
    -   * This feature requires additional allowlisting. Contact Retail Search
    -   * support team if you are interested in using dynamic facet feature.
        * 
    * - * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21; + * + * .google.cloud.retail.v2.SearchRequest.DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; + * */ + @java.lang.Deprecated com.google.cloud.retail.v2.SearchRequest.DynamicFacetSpecOrBuilder getDynamicFacetSpecOrBuilder(); /** @@ -572,12 +589,15 @@ public interface SearchRequestOrBuilder *
        * The keys to fetch and rollup the matching
        * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -   * all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -   * Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -   * query latency. Maximum number of keys is 10.
    +   * [Product][google.cloud.retail.v2.Product]s attributes,
    +   * [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +   * attributes from all the matching
    +   * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +   * [Product][google.cloud.retail.v2.Product]s or
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +   * de-duplicated. Notice that rollup attributes will lead to extra query
    +   * latency. Maximum number of keys is 30.
        * For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
        * fulfillment type and a fulfillment ID must be provided in the format of
        * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123",
    @@ -589,6 +609,7 @@ public interface SearchRequestOrBuilder
        * * discount
        * * variantId
        * * 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.
        * * attributes.key, where key is any key in the
    @@ -644,12 +665,15 @@ public interface SearchRequestOrBuilder
        * 
        * The keys to fetch and rollup the matching
        * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -   * all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -   * Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -   * query latency. Maximum number of keys is 10.
    +   * [Product][google.cloud.retail.v2.Product]s attributes,
    +   * [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +   * attributes from all the matching
    +   * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +   * [Product][google.cloud.retail.v2.Product]s or
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +   * de-duplicated. Notice that rollup attributes will lead to extra query
    +   * latency. Maximum number of keys is 30.
        * For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
        * fulfillment type and a fulfillment ID must be provided in the format of
        * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123",
    @@ -661,6 +685,7 @@ public interface SearchRequestOrBuilder
        * * discount
        * * variantId
        * * 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.
        * * attributes.key, where key is any key in the
    @@ -716,12 +741,15 @@ public interface SearchRequestOrBuilder
        * 
        * The keys to fetch and rollup the matching
        * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -   * all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -   * Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -   * query latency. Maximum number of keys is 10.
    +   * [Product][google.cloud.retail.v2.Product]s attributes,
    +   * [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +   * attributes from all the matching
    +   * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +   * [Product][google.cloud.retail.v2.Product]s or
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +   * de-duplicated. Notice that rollup attributes will lead to extra query
    +   * latency. Maximum number of keys is 30.
        * For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
        * fulfillment type and a fulfillment ID must be provided in the format of
        * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123",
    @@ -733,6 +761,7 @@ public interface SearchRequestOrBuilder
        * * discount
        * * variantId
        * * 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.
        * * attributes.key, where key is any key in the
    @@ -789,12 +818,15 @@ public interface SearchRequestOrBuilder
        * 
        * The keys to fetch and rollup the matching
        * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -   * all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -   * Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -   * [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -   * query latency. Maximum number of keys is 10.
    +   * [Product][google.cloud.retail.v2.Product]s attributes,
    +   * [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +   * attributes from all the matching
    +   * [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +   * [Product][google.cloud.retail.v2.Product]s or
    +   * [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +   * de-duplicated. Notice that rollup attributes will lead to extra query
    +   * latency. Maximum number of keys is 30.
        * For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
        * fulfillment type and a fulfillment ID must be provided in the format of
        * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123",
    @@ -806,6 +838,7 @@ public interface SearchRequestOrBuilder
        * * discount
        * * variantId
        * * 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.
        * * attributes.key, where key is any key in the
    @@ -970,4 +1003,43 @@ public interface SearchRequestOrBuilder
        * @return The searchMode.
        */
       com.google.cloud.retail.v2.SearchRequest.SearchMode getSearchMode();
    +
    +  /**
    +   *
    +   *
    +   * 
    +   * The specification for personalization.
    +   * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalization_spec = 32; + * + * + * @return Whether the personalizationSpec field is set. + */ + boolean hasPersonalizationSpec(); + /** + * + * + *
    +   * The specification for personalization.
    +   * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalization_spec = 32; + * + * + * @return The personalizationSpec. + */ + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpec getPersonalizationSpec(); + /** + * + * + *
    +   * The specification for personalization.
    +   * 
    + * + * .google.cloud.retail.v2.SearchRequest.PersonalizationSpec personalization_spec = 32; + * + */ + com.google.cloud.retail.v2.SearchRequest.PersonalizationSpecOrBuilder + getPersonalizationSpecOrBuilder(); } 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 867171e0..7dd0724c 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 @@ -45,6 +45,8 @@ private SearchResponse() { attributionToken_ = ""; nextPageToken_ = ""; redirectUri_ = ""; + appliedControls_ = com.google.protobuf.LazyStringArrayList.EMPTY; + invalidConditionBoostSpecs_ = java.util.Collections.emptyList(); } @java.lang.Override @@ -154,6 +156,31 @@ private SearchResponse( redirectUri_ = s; break; } + case 98: + { + java.lang.String s = input.readStringRequireUtf8(); + if (!((mutable_bitField0_ & 0x00000004) != 0)) { + appliedControls_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000004; + } + appliedControls_.add(s); + break; + } + case 114: + { + if (!((mutable_bitField0_ & 0x00000008) != 0)) { + invalidConditionBoostSpecs_ = + new java.util.ArrayList< + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec>(); + mutable_bitField0_ |= 0x00000008; + } + invalidConditionBoostSpecs_.add( + input.readMessage( + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec + .parser(), + extensionRegistry)); + break; + } default: { if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { @@ -174,6 +201,13 @@ private SearchResponse( if (((mutable_bitField0_ & 0x00000002) != 0)) { facets_ = java.util.Collections.unmodifiableList(facets_); } + if (((mutable_bitField0_ & 0x00000004) != 0)) { + appliedControls_ = appliedControls_.getUnmodifiableView(); + } + if (((mutable_bitField0_ & 0x00000008) != 0)) { + invalidConditionBoostSpecs_ = + java.util.Collections.unmodifiableList(invalidConditionBoostSpecs_); + } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } @@ -6494,6 +6528,165 @@ public com.google.protobuf.ByteString getRedirectUriBytes() { } } + public static final int APPLIED_CONTROLS_FIELD_NUMBER = 12; + private com.google.protobuf.LazyStringList appliedControls_; + /** + * + * + *
    +   * The fully qualified resource name of applied
    +   * [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +   * 
    + * + * repeated string applied_controls = 12; + * + * @return A list containing the appliedControls. + */ + public com.google.protobuf.ProtocolStringList getAppliedControlsList() { + return appliedControls_; + } + /** + * + * + *
    +   * The fully qualified resource name of applied
    +   * [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +   * 
    + * + * repeated string applied_controls = 12; + * + * @return The count of appliedControls. + */ + public int getAppliedControlsCount() { + return appliedControls_.size(); + } + /** + * + * + *
    +   * The fully qualified resource name of applied
    +   * [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +   * 
    + * + * repeated string applied_controls = 12; + * + * @param index The index of the element to return. + * @return The appliedControls at the given index. + */ + public java.lang.String getAppliedControls(int index) { + return appliedControls_.get(index); + } + /** + * + * + *
    +   * The fully qualified resource name of applied
    +   * [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +   * 
    + * + * repeated string applied_controls = 12; + * + * @param index The index of the value to return. + * @return The bytes of the appliedControls at the given index. + */ + public com.google.protobuf.ByteString getAppliedControlsBytes(int index) { + return appliedControls_.getByteString(index); + } + + public static final int INVALID_CONDITION_BOOST_SPECS_FIELD_NUMBER = 14; + private java.util.List + invalidConditionBoostSpecs_; + /** + * + * + *
    +   * The invalid
    +   * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +   * that are not applied during serving.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + @java.lang.Override + public java.util.List + getInvalidConditionBoostSpecsList() { + return invalidConditionBoostSpecs_; + } + /** + * + * + *
    +   * The invalid
    +   * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +   * that are not applied during serving.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + @java.lang.Override + public java.util.List< + ? extends com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpecOrBuilder> + getInvalidConditionBoostSpecsOrBuilderList() { + return invalidConditionBoostSpecs_; + } + /** + * + * + *
    +   * The invalid
    +   * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +   * that are not applied during serving.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + @java.lang.Override + public int getInvalidConditionBoostSpecsCount() { + return invalidConditionBoostSpecs_.size(); + } + /** + * + * + *
    +   * The invalid
    +   * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +   * that are not applied during serving.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + @java.lang.Override + public com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec + getInvalidConditionBoostSpecs(int index) { + return invalidConditionBoostSpecs_.get(index); + } + /** + * + * + *
    +   * The invalid
    +   * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +   * that are not applied during serving.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + @java.lang.Override + public com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpecOrBuilder + getInvalidConditionBoostSpecsOrBuilder(int index) { + return invalidConditionBoostSpecs_.get(index); + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -6532,6 +6725,12 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(redirectUri_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 10, redirectUri_); } + for (int i = 0; i < appliedControls_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 12, appliedControls_.getRaw(i)); + } + for (int i = 0; i < invalidConditionBoostSpecs_.size(); i++) { + output.writeMessage(14, invalidConditionBoostSpecs_.get(i)); + } unknownFields.writeTo(output); } @@ -6565,6 +6764,19 @@ public int getSerializedSize() { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(redirectUri_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, redirectUri_); } + { + int dataSize = 0; + for (int i = 0; i < appliedControls_.size(); i++) { + dataSize += computeStringSizeNoTag(appliedControls_.getRaw(i)); + } + size += dataSize; + size += 1 * getAppliedControlsList().size(); + } + for (int i = 0; i < invalidConditionBoostSpecs_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 14, invalidConditionBoostSpecs_.get(i)); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -6592,6 +6804,9 @@ public boolean equals(final java.lang.Object obj) { if (!getQueryExpansionInfo().equals(other.getQueryExpansionInfo())) return false; } if (!getRedirectUri().equals(other.getRedirectUri())) return false; + if (!getAppliedControlsList().equals(other.getAppliedControlsList())) return false; + if (!getInvalidConditionBoostSpecsList().equals(other.getInvalidConditionBoostSpecsList())) + return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -6625,6 +6840,14 @@ public int hashCode() { } hash = (37 * hash) + REDIRECT_URI_FIELD_NUMBER; hash = (53 * hash) + getRedirectUri().hashCode(); + if (getAppliedControlsCount() > 0) { + hash = (37 * hash) + APPLIED_CONTROLS_FIELD_NUMBER; + hash = (53 * hash) + getAppliedControlsList().hashCode(); + } + if (getInvalidConditionBoostSpecsCount() > 0) { + hash = (37 * hash) + INVALID_CONDITION_BOOST_SPECS_FIELD_NUMBER; + hash = (53 * hash) + getInvalidConditionBoostSpecsList().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -6768,6 +6991,7 @@ private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { getResultsFieldBuilder(); getFacetsFieldBuilder(); + getInvalidConditionBoostSpecsFieldBuilder(); } } @@ -6802,6 +7026,14 @@ public Builder clear() { } redirectUri_ = ""; + appliedControls_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000004); + if (invalidConditionBoostSpecsBuilder_ == null) { + invalidConditionBoostSpecs_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + } else { + invalidConditionBoostSpecsBuilder_.clear(); + } return this; } @@ -6858,6 +7090,21 @@ public com.google.cloud.retail.v2.SearchResponse buildPartial() { result.queryExpansionInfo_ = queryExpansionInfoBuilder_.build(); } result.redirectUri_ = redirectUri_; + if (((bitField0_ & 0x00000004) != 0)) { + appliedControls_ = appliedControls_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.appliedControls_ = appliedControls_; + if (invalidConditionBoostSpecsBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0)) { + invalidConditionBoostSpecs_ = + java.util.Collections.unmodifiableList(invalidConditionBoostSpecs_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.invalidConditionBoostSpecs_ = invalidConditionBoostSpecs_; + } else { + result.invalidConditionBoostSpecs_ = invalidConditionBoostSpecsBuilder_.build(); + } onBuilt(); return result; } @@ -6983,6 +7230,43 @@ public Builder mergeFrom(com.google.cloud.retail.v2.SearchResponse other) { redirectUri_ = other.redirectUri_; onChanged(); } + if (!other.appliedControls_.isEmpty()) { + if (appliedControls_.isEmpty()) { + appliedControls_ = other.appliedControls_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureAppliedControlsIsMutable(); + appliedControls_.addAll(other.appliedControls_); + } + onChanged(); + } + if (invalidConditionBoostSpecsBuilder_ == null) { + if (!other.invalidConditionBoostSpecs_.isEmpty()) { + if (invalidConditionBoostSpecs_.isEmpty()) { + invalidConditionBoostSpecs_ = other.invalidConditionBoostSpecs_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureInvalidConditionBoostSpecsIsMutable(); + invalidConditionBoostSpecs_.addAll(other.invalidConditionBoostSpecs_); + } + onChanged(); + } + } else { + if (!other.invalidConditionBoostSpecs_.isEmpty()) { + if (invalidConditionBoostSpecsBuilder_.isEmpty()) { + invalidConditionBoostSpecsBuilder_.dispose(); + invalidConditionBoostSpecsBuilder_ = null; + invalidConditionBoostSpecs_ = other.invalidConditionBoostSpecs_; + bitField0_ = (bitField0_ & ~0x00000008); + invalidConditionBoostSpecsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getInvalidConditionBoostSpecsFieldBuilder() + : null; + } else { + invalidConditionBoostSpecsBuilder_.addAllMessages(other.invalidConditionBoostSpecs_); + } + } + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -8456,6 +8740,635 @@ public Builder setRedirectUriBytes(com.google.protobuf.ByteString value) { return this; } + private com.google.protobuf.LazyStringList appliedControls_ = + com.google.protobuf.LazyStringArrayList.EMPTY; + + private void ensureAppliedControlsIsMutable() { + if (!((bitField0_ & 0x00000004) != 0)) { + appliedControls_ = new com.google.protobuf.LazyStringArrayList(appliedControls_); + bitField0_ |= 0x00000004; + } + } + /** + * + * + *
    +     * The fully qualified resource name of applied
    +     * [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +     * 
    + * + * repeated string applied_controls = 12; + * + * @return A list containing the appliedControls. + */ + public com.google.protobuf.ProtocolStringList getAppliedControlsList() { + return appliedControls_.getUnmodifiableView(); + } + /** + * + * + *
    +     * The fully qualified resource name of applied
    +     * [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +     * 
    + * + * repeated string applied_controls = 12; + * + * @return The count of appliedControls. + */ + public int getAppliedControlsCount() { + return appliedControls_.size(); + } + /** + * + * + *
    +     * The fully qualified resource name of applied
    +     * [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +     * 
    + * + * repeated string applied_controls = 12; + * + * @param index The index of the element to return. + * @return The appliedControls at the given index. + */ + public java.lang.String getAppliedControls(int index) { + return appliedControls_.get(index); + } + /** + * + * + *
    +     * The fully qualified resource name of applied
    +     * [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +     * 
    + * + * repeated string applied_controls = 12; + * + * @param index The index of the value to return. + * @return The bytes of the appliedControls at the given index. + */ + public com.google.protobuf.ByteString getAppliedControlsBytes(int index) { + return appliedControls_.getByteString(index); + } + /** + * + * + *
    +     * The fully qualified resource name of applied
    +     * [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +     * 
    + * + * repeated string applied_controls = 12; + * + * @param index The index to set the value at. + * @param value The appliedControls to set. + * @return This builder for chaining. + */ + public Builder setAppliedControls(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAppliedControlsIsMutable(); + appliedControls_.set(index, value); + onChanged(); + return this; + } + /** + * + * + *
    +     * The fully qualified resource name of applied
    +     * [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +     * 
    + * + * repeated string applied_controls = 12; + * + * @param value The appliedControls to add. + * @return This builder for chaining. + */ + public Builder addAppliedControls(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAppliedControlsIsMutable(); + appliedControls_.add(value); + onChanged(); + return this; + } + /** + * + * + *
    +     * The fully qualified resource name of applied
    +     * [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +     * 
    + * + * repeated string applied_controls = 12; + * + * @param values The appliedControls to add. + * @return This builder for chaining. + */ + public Builder addAllAppliedControls(java.lang.Iterable values) { + ensureAppliedControlsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, appliedControls_); + onChanged(); + return this; + } + /** + * + * + *
    +     * The fully qualified resource name of applied
    +     * [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +     * 
    + * + * repeated string applied_controls = 12; + * + * @return This builder for chaining. + */ + public Builder clearAppliedControls() { + appliedControls_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * + * + *
    +     * The fully qualified resource name of applied
    +     * [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +     * 
    + * + * repeated string applied_controls = 12; + * + * @param value The bytes of the appliedControls to add. + * @return This builder for chaining. + */ + public Builder addAppliedControlsBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureAppliedControlsIsMutable(); + appliedControls_.add(value); + onChanged(); + return this; + } + + private java.util.List + invalidConditionBoostSpecs_ = java.util.Collections.emptyList(); + + private void ensureInvalidConditionBoostSpecsIsMutable() { + if (!((bitField0_ & 0x00000008) != 0)) { + invalidConditionBoostSpecs_ = + new java.util.ArrayList< + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec>( + invalidConditionBoostSpecs_); + bitField0_ |= 0x00000008; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec, + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec.Builder, + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpecOrBuilder> + invalidConditionBoostSpecsBuilder_; + + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public java.util.List + getInvalidConditionBoostSpecsList() { + if (invalidConditionBoostSpecsBuilder_ == null) { + return java.util.Collections.unmodifiableList(invalidConditionBoostSpecs_); + } else { + return invalidConditionBoostSpecsBuilder_.getMessageList(); + } + } + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public int getInvalidConditionBoostSpecsCount() { + if (invalidConditionBoostSpecsBuilder_ == null) { + return invalidConditionBoostSpecs_.size(); + } else { + return invalidConditionBoostSpecsBuilder_.getCount(); + } + } + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec + getInvalidConditionBoostSpecs(int index) { + if (invalidConditionBoostSpecsBuilder_ == null) { + return invalidConditionBoostSpecs_.get(index); + } else { + return invalidConditionBoostSpecsBuilder_.getMessage(index); + } + } + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public Builder setInvalidConditionBoostSpecs( + int index, com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec value) { + if (invalidConditionBoostSpecsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureInvalidConditionBoostSpecsIsMutable(); + invalidConditionBoostSpecs_.set(index, value); + onChanged(); + } else { + invalidConditionBoostSpecsBuilder_.setMessage(index, value); + } + return this; + } + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public Builder setInvalidConditionBoostSpecs( + int index, + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec.Builder + builderForValue) { + if (invalidConditionBoostSpecsBuilder_ == null) { + ensureInvalidConditionBoostSpecsIsMutable(); + invalidConditionBoostSpecs_.set(index, builderForValue.build()); + onChanged(); + } else { + invalidConditionBoostSpecsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public Builder addInvalidConditionBoostSpecs( + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec value) { + if (invalidConditionBoostSpecsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureInvalidConditionBoostSpecsIsMutable(); + invalidConditionBoostSpecs_.add(value); + onChanged(); + } else { + invalidConditionBoostSpecsBuilder_.addMessage(value); + } + return this; + } + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public Builder addInvalidConditionBoostSpecs( + int index, com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec value) { + if (invalidConditionBoostSpecsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureInvalidConditionBoostSpecsIsMutable(); + invalidConditionBoostSpecs_.add(index, value); + onChanged(); + } else { + invalidConditionBoostSpecsBuilder_.addMessage(index, value); + } + return this; + } + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public Builder addInvalidConditionBoostSpecs( + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec.Builder + builderForValue) { + if (invalidConditionBoostSpecsBuilder_ == null) { + ensureInvalidConditionBoostSpecsIsMutable(); + invalidConditionBoostSpecs_.add(builderForValue.build()); + onChanged(); + } else { + invalidConditionBoostSpecsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public Builder addInvalidConditionBoostSpecs( + int index, + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec.Builder + builderForValue) { + if (invalidConditionBoostSpecsBuilder_ == null) { + ensureInvalidConditionBoostSpecsIsMutable(); + invalidConditionBoostSpecs_.add(index, builderForValue.build()); + onChanged(); + } else { + invalidConditionBoostSpecsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public Builder addAllInvalidConditionBoostSpecs( + java.lang.Iterable< + ? extends com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec> + values) { + if (invalidConditionBoostSpecsBuilder_ == null) { + ensureInvalidConditionBoostSpecsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, invalidConditionBoostSpecs_); + onChanged(); + } else { + invalidConditionBoostSpecsBuilder_.addAllMessages(values); + } + return this; + } + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public Builder clearInvalidConditionBoostSpecs() { + if (invalidConditionBoostSpecsBuilder_ == null) { + invalidConditionBoostSpecs_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + } else { + invalidConditionBoostSpecsBuilder_.clear(); + } + return this; + } + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public Builder removeInvalidConditionBoostSpecs(int index) { + if (invalidConditionBoostSpecsBuilder_ == null) { + ensureInvalidConditionBoostSpecsIsMutable(); + invalidConditionBoostSpecs_.remove(index); + onChanged(); + } else { + invalidConditionBoostSpecsBuilder_.remove(index); + } + return this; + } + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec.Builder + getInvalidConditionBoostSpecsBuilder(int index) { + return getInvalidConditionBoostSpecsFieldBuilder().getBuilder(index); + } + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpecOrBuilder + getInvalidConditionBoostSpecsOrBuilder(int index) { + if (invalidConditionBoostSpecsBuilder_ == null) { + return invalidConditionBoostSpecs_.get(index); + } else { + return invalidConditionBoostSpecsBuilder_.getMessageOrBuilder(index); + } + } + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public java.util.List< + ? extends + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpecOrBuilder> + getInvalidConditionBoostSpecsOrBuilderList() { + if (invalidConditionBoostSpecsBuilder_ != null) { + return invalidConditionBoostSpecsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(invalidConditionBoostSpecs_); + } + } + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec.Builder + addInvalidConditionBoostSpecsBuilder() { + return getInvalidConditionBoostSpecsFieldBuilder() + .addBuilder( + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec + .getDefaultInstance()); + } + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec.Builder + addInvalidConditionBoostSpecsBuilder(int index) { + return getInvalidConditionBoostSpecsFieldBuilder() + .addBuilder( + index, + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec + .getDefaultInstance()); + } + /** + * + * + *
    +     * The invalid
    +     * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +     * that are not applied during serving.
    +     * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + public java.util.List< + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec.Builder> + getInvalidConditionBoostSpecsBuilderList() { + return getInvalidConditionBoostSpecsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec, + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec.Builder, + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpecOrBuilder> + getInvalidConditionBoostSpecsFieldBuilder() { + if (invalidConditionBoostSpecsBuilder_ == null) { + invalidConditionBoostSpecsBuilder_ = + new com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec, + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec.Builder, + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpecOrBuilder>( + invalidConditionBoostSpecs_, + ((bitField0_ & 0x00000008) != 0), + getParentForChildren(), + isClean()); + invalidConditionBoostSpecs_ = null; + } + return invalidConditionBoostSpecsBuilder_; + } + @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/SearchResponseOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SearchResponseOrBuilder.java index 4ebff591..db9ef8a5 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 @@ -300,4 +300,135 @@ public interface SearchResponseOrBuilder * @return The bytes for redirectUri. */ com.google.protobuf.ByteString getRedirectUriBytes(); + + /** + * + * + *
    +   * The fully qualified resource name of applied
    +   * [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +   * 
    + * + * repeated string applied_controls = 12; + * + * @return A list containing the appliedControls. + */ + java.util.List getAppliedControlsList(); + /** + * + * + *
    +   * The fully qualified resource name of applied
    +   * [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +   * 
    + * + * repeated string applied_controls = 12; + * + * @return The count of appliedControls. + */ + int getAppliedControlsCount(); + /** + * + * + *
    +   * The fully qualified resource name of applied
    +   * [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +   * 
    + * + * repeated string applied_controls = 12; + * + * @param index The index of the element to return. + * @return The appliedControls at the given index. + */ + java.lang.String getAppliedControls(int index); + /** + * + * + *
    +   * The fully qualified resource name of applied
    +   * [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +   * 
    + * + * repeated string applied_controls = 12; + * + * @param index The index of the value to return. + * @return The bytes of the appliedControls at the given index. + */ + com.google.protobuf.ByteString getAppliedControlsBytes(int index); + + /** + * + * + *
    +   * The invalid
    +   * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +   * that are not applied during serving.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + java.util.List + getInvalidConditionBoostSpecsList(); + /** + * + * + *
    +   * The invalid
    +   * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +   * that are not applied during serving.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec + getInvalidConditionBoostSpecs(int index); + /** + * + * + *
    +   * The invalid
    +   * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +   * that are not applied during serving.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + int getInvalidConditionBoostSpecsCount(); + /** + * + * + *
    +   * The invalid
    +   * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +   * that are not applied during serving.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + java.util.List< + ? extends com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpecOrBuilder> + getInvalidConditionBoostSpecsOrBuilderList(); + /** + * + * + *
    +   * The invalid
    +   * [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +   * that are not applied during serving.
    +   * 
    + * + * + * repeated .google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec invalid_condition_boost_specs = 14; + * + */ + com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpecOrBuilder + getInvalidConditionBoostSpecsOrBuilder(int index); } 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 0fa794b2..5afae950 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 @@ -55,6 +55,10 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r internal_static_google_cloud_retail_v2_SearchRequest_QueryExpansionSpec_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_google_cloud_retail_v2_SearchRequest_QueryExpansionSpec_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + 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_SearchResponse_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable @@ -100,7 +104,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\"\255\r\n\rSearchRequest\022\026\n\tplacement\030\001 \001(\t" + + "oto\"\356\017\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" @@ -109,82 +113,93 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + " \001(\005\022\016\n\006filter\030\n \001(\t\022\030\n\020canonical_filter" + "\030\034 \001(\t\022\020\n\010order_by\030\013 \001(\t\022D\n\013facet_specs\030" + "\014 \003(\0132/.google.cloud.retail.v2.SearchReq" - + "uest.FacetSpec\022R\n\022dynamic_facet_spec\030\025 \001" + + "uest.FacetSpec\022V\n\022dynamic_facet_spec\030\025 \001" + "(\01326.google.cloud.retail.v2.SearchReques" - + "t.DynamicFacetSpec\022C\n\nboost_spec\030\r \001(\0132/" - + ".google.cloud.retail.v2.SearchRequest.Bo" - + "ostSpec\022V\n\024query_expansion_spec\030\016 \001(\01328." - + "google.cloud.retail.v2.SearchRequest.Que" - + "ryExpansionSpec\022\033\n\023variant_rollup_keys\030\021" - + " \003(\t\022\027\n\017page_categories\030\027 \003(\t\022E\n\013search_" - + "mode\030\037 \001(\01620.google.cloud.retail.v2.Sear" - + "chRequest.SearchMode\032\337\002\n\tFacetSpec\022P\n\tfa" - + "cet_key\030\001 \001(\01328.google.cloud.retail.v2.S" - + "earchRequest.FacetSpec.FacetKeyB\003\340A\002\022\r\n\005" - + "limit\030\002 \001(\005\022\034\n\024excluded_filter_keys\030\003 \003(" - + "\t\022\037\n\027enable_dynamic_position\030\004 \001(\010\032\261\001\n\010F" - + "acetKey\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\010order_by\030\004 \001(\t\022" - + "\r\n\005query\030\005 \001(\t\032\226\001\n\020DynamicFacetSpec\022I\n\004m" - + "ode\030\001 \001(\0162;.google.cloud.retail.v2.Searc" - + "hRequest.DynamicFacetSpec.Mode\"7\n\004Mode\022\024" - + "\n\020MODE_UNSPECIFIED\020\000\022\014\n\010DISABLED\020\001\022\013\n\007EN" - + "ABLED\020\002\032\246\001\n\tBoostSpec\022a\n\025condition_boost" - + "_specs\030\001 \003(\0132B.google.cloud.retail.v2.Se" - + "archRequest.BoostSpec.ConditionBoostSpec" - + "\0326\n\022ConditionBoostSpec\022\021\n\tcondition\030\001 \001(" - + "\t\022\r\n\005boost\030\002 \001(\002\032\313\001\n\022QueryExpansionSpec\022" - + "U\n\tcondition\030\001 \001(\0162B.google.cloud.retail" - + ".v2.SearchRequest.QueryExpansionSpec.Con" - + "dition\022\036\n\026pin_unexpanded_results\030\002 \001(\010\">" - + "\n\tCondition\022\031\n\025CONDITION_UNSPECIFIED\020\000\022\014" - + "\n\010DISABLED\020\001\022\010\n\004AUTO\020\003\"[\n\nSearchMode\022\033\n\027" - + "SEARCH_MODE_UNSPECIFIED\020\000\022\027\n\023PRODUCT_SEA" - + "RCH_ONLY\020\001\022\027\n\023FACETED_SEARCH_ONLY\020\002\"\224\t\n\016" - + "SearchResponse\022D\n\007results\030\001 \003(\01323.google" - + ".cloud.retail.v2.SearchResponse.SearchRe" - + "sult\022<\n\006facets\030\002 \003(\0132,.google.cloud.reta" - + "il.v2.SearchResponse.Facet\022\022\n\ntotal_size" - + "\030\003 \001(\005\022\027\n\017corrected_query\030\004 \001(\t\022\031\n\021attri" - + "bution_token\030\005 \001(\t\022\027\n\017next_page_token\030\006 " - + "\001(\t\022W\n\024query_expansion_info\030\007 \001(\01329.goog" - + "le.cloud.retail.v2.SearchResponse.QueryE" - + "xpansionInfo\022\024\n\014redirect_uri\030\n \001(\t\032\370\003\n\014S" - + "earchResult\022\n\n\002id\030\001 \001(\t\0220\n\007product\030\002 \001(\013" - + "2\037.google.cloud.retail.v2.Product\022\036\n\026mat" - + "ching_variant_count\030\003 \001(\005\022o\n\027matching_va" - + "riant_fields\030\004 \003(\0132N.google.cloud.retail" - + ".v2.SearchResponse.SearchResult.Matching" - + "VariantFieldsEntry\022k\n\025variant_rollup_val" - + "ues\030\005 \003(\0132L.google.cloud.retail.v2.Searc" - + "hResponse.SearchResult.VariantRollupValu" - + "esEntry\032X\n\032MatchingVariantFieldsEntry\022\013\n" - + "\003key\030\001 \001(\t\022)\n\005value\030\002 \001(\0132\032.google.proto" - + "buf.FieldMask:\0028\001\032R\n\030VariantRollupValues" - + "Entry\022\013\n\003key\030\001 \001(\t\022%\n\005value\030\002 \001(\0132\026.goog" - + "le.protobuf.Value:\0028\001\032\347\001\n\005Facet\022\013\n\003key\030\001" - + " \001(\t\022G\n\006values\030\002 \003(\01327.google.cloud.reta" - + "il.v2.SearchResponse.Facet.FacetValue\022\025\n" - + "\rdynamic_facet\030\003 \001(\010\032q\n\nFacetValue\022\017\n\005va" - + "lue\030\001 \001(\tH\000\0224\n\010interval\030\002 \001(\0132 .google.c" - + "loud.retail.v2.IntervalH\000\022\r\n\005count\030\003 \001(\003" - + "B\r\n\013facet_value\032I\n\022QueryExpansionInfo\022\026\n" - + "\016expanded_query\030\001 \001(\010\022\033\n\023pinned_result_c" - + "ount\030\002 \001(\0032\206\002\n\rSearchService\022\251\001\n\006Search\022" - + "%.google.cloud.retail.v2.SearchRequest\032&" - + ".google.cloud.retail.v2.SearchResponse\"P" - + "\202\323\344\223\002J\"E/v2/{placement=projects/*/locati" - + "ons/*/catalogs/*/placements/*}:search:\001*" - + "\032I\312A\025retail.googleapis.com\322A.https://www" - + ".googleapis.com/auth/cloud-platformB\307\001\n\032" - + "com.google.cloud.retail.v2B\022SearchServic" - + "eProtoP\001Z\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 * * string branch_id = 2 [(.google.api.resource_reference) = { ... } @@ -212,6 +220,9 @@ public java.lang.String getBranchId() { * The final component of the resource name of a branch. * This field must be one of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT * error is returned. + * If there are no sufficient active products in the targeted branch and + * [force][google.cloud.retail.v2.SetDefaultBranchRequest.force] is not set, a + * FAILED_PRECONDITION error is returned. *
    * * string branch_id = 2 [(.google.api.resource_reference) = { ... } @@ -288,6 +299,26 @@ public com.google.protobuf.ByteString getNoteBytes() { } } + public static final int FORCE_FIELD_NUMBER = 4; + private boolean force_; + /** + * + * + *
    +   * If set to true, it permits switching to a branch with
    +   * [branch_id][google.cloud.retail.v2.SetDefaultBranchRequest.branch_id] even
    +   * if it has no sufficient active products.
    +   * 
    + * + * bool force = 4; + * + * @return The force. + */ + @java.lang.Override + public boolean getForce() { + return force_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -311,6 +342,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(note_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, note_); } + if (force_ != false) { + output.writeBool(4, force_); + } unknownFields.writeTo(output); } @@ -329,6 +363,9 @@ public int getSerializedSize() { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(note_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, note_); } + if (force_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, force_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -348,6 +385,7 @@ public boolean equals(final java.lang.Object obj) { if (!getCatalog().equals(other.getCatalog())) return false; if (!getBranchId().equals(other.getBranchId())) return false; if (!getNote().equals(other.getNote())) return false; + if (getForce() != other.getForce()) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -365,6 +403,8 @@ public int hashCode() { hash = (53 * hash) + getBranchId().hashCode(); hash = (37 * hash) + NOTE_FIELD_NUMBER; hash = (53 * hash) + getNote().hashCode(); + hash = (37 * hash) + FORCE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getForce()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -516,6 +556,8 @@ public Builder clear() { note_ = ""; + force_ = false; + return this; } @@ -546,6 +588,7 @@ public com.google.cloud.retail.v2.SetDefaultBranchRequest buildPartial() { result.catalog_ = catalog_; result.branchId_ = branchId_; result.note_ = note_; + result.force_ = force_; onBuilt(); return result; } @@ -608,6 +651,9 @@ public Builder mergeFrom(com.google.cloud.retail.v2.SetDefaultBranchRequest othe note_ = other.note_; onChanged(); } + if (other.getForce() != false) { + setForce(other.getForce()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -757,6 +803,9 @@ public Builder setCatalogBytes(com.google.protobuf.ByteString value) { * The final component of the resource name of a branch. * This field must be one of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT * error is returned. + * If there are no sufficient active products in the targeted branch and + * [force][google.cloud.retail.v2.SetDefaultBranchRequest.force] is not set, a + * FAILED_PRECONDITION error is returned. *
    * * string branch_id = 2 [(.google.api.resource_reference) = { ... } @@ -781,6 +830,9 @@ public java.lang.String getBranchId() { * The final component of the resource name of a branch. * This field must be one of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT * error is returned. + * If there are no sufficient active products in the targeted branch and + * [force][google.cloud.retail.v2.SetDefaultBranchRequest.force] is not set, a + * FAILED_PRECONDITION error is returned. *
    * * string branch_id = 2 [(.google.api.resource_reference) = { ... } @@ -805,6 +857,9 @@ public com.google.protobuf.ByteString getBranchIdBytes() { * The final component of the resource name of a branch. * This field must be one of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT * error is returned. + * If there are no sufficient active products in the targeted branch and + * [force][google.cloud.retail.v2.SetDefaultBranchRequest.force] is not set, a + * FAILED_PRECONDITION error is returned. *
    * * string branch_id = 2 [(.google.api.resource_reference) = { ... } @@ -828,6 +883,9 @@ public Builder setBranchId(java.lang.String value) { * The final component of the resource name of a branch. * This field must be one of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT * error is returned. + * If there are no sufficient active products in the targeted branch and + * [force][google.cloud.retail.v2.SetDefaultBranchRequest.force] is not set, a + * FAILED_PRECONDITION error is returned. *
    * * string branch_id = 2 [(.google.api.resource_reference) = { ... } @@ -847,6 +905,9 @@ public Builder clearBranchId() { * The final component of the resource name of a branch. * This field must be one of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT * error is returned. + * If there are no sufficient active products in the targeted branch and + * [force][google.cloud.retail.v2.SetDefaultBranchRequest.force] is not set, a + * FAILED_PRECONDITION error is returned. *
    * * string branch_id = 2 [(.google.api.resource_reference) = { ... } @@ -991,6 +1052,64 @@ public Builder setNoteBytes(com.google.protobuf.ByteString value) { return this; } + private boolean force_; + /** + * + * + *
    +     * If set to true, it permits switching to a branch with
    +     * [branch_id][google.cloud.retail.v2.SetDefaultBranchRequest.branch_id] even
    +     * if it has no sufficient active products.
    +     * 
    + * + * bool force = 4; + * + * @return The force. + */ + @java.lang.Override + public boolean getForce() { + return force_; + } + /** + * + * + *
    +     * If set to true, it permits switching to a branch with
    +     * [branch_id][google.cloud.retail.v2.SetDefaultBranchRequest.branch_id] even
    +     * if it has no sufficient active products.
    +     * 
    + * + * bool force = 4; + * + * @param value The force to set. + * @return This builder for chaining. + */ + public Builder setForce(boolean value) { + + force_ = value; + onChanged(); + return this; + } + /** + * + * + *
    +     * If set to true, it permits switching to a branch with
    +     * [branch_id][google.cloud.retail.v2.SetDefaultBranchRequest.branch_id] even
    +     * if it has no sufficient active products.
    +     * 
    + * + * bool force = 4; + * + * @return This builder for chaining. + */ + public Builder clearForce() { + + force_ = false; + onChanged(); + return this; + } + @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/SetDefaultBranchRequestOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SetDefaultBranchRequestOrBuilder.java index 20d0926a..a8928671 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SetDefaultBranchRequestOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SetDefaultBranchRequestOrBuilder.java @@ -57,6 +57,9 @@ public interface SetDefaultBranchRequestOrBuilder * The final component of the resource name of a branch. * This field must be one of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT * error is returned. + * If there are no sufficient active products in the targeted branch and + * [force][google.cloud.retail.v2.SetDefaultBranchRequest.force] is not set, a + * FAILED_PRECONDITION error is returned. *
    * * string branch_id = 2 [(.google.api.resource_reference) = { ... } @@ -71,6 +74,9 @@ public interface SetDefaultBranchRequestOrBuilder * The final component of the resource name of a branch. * This field must be one of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT * error is returned. + * If there are no sufficient active products in the targeted branch and + * [force][google.cloud.retail.v2.SetDefaultBranchRequest.force] is not set, a + * FAILED_PRECONDITION error is returned. *
    * * string branch_id = 2 [(.google.api.resource_reference) = { ... } @@ -111,4 +117,19 @@ public interface SetDefaultBranchRequestOrBuilder * @return The bytes for note. */ com.google.protobuf.ByteString getNoteBytes(); + + /** + * + * + *
    +   * If set to true, it permits switching to a branch with
    +   * [branch_id][google.cloud.retail.v2.SetDefaultBranchRequest.branch_id] even
    +   * if it has no sufficient active products.
    +   * 
    + * + * bool force = 4; + * + * @return The force. + */ + boolean getForce(); } diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SetInventoryRequest.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SetInventoryRequest.java index 7677ec32..5d5351d4 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SetInventoryRequest.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SetInventoryRequest.java @@ -180,6 +180,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { * while respecting the last update time for each inventory field, using the * provided or default value for * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time]. + * The caller can replace place IDs for a subset of fulfillment types in the + * following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types and corresponding place IDs + * to update in [SetInventoryRequest.inventory.fulfillment_info][] + * The caller can clear all place IDs from a subset of fulfillment types in + * the following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types to clear in + * [SetInventoryRequest.inventory.fulfillment_info][] + * * Checks that only the desired fulfillment info types have empty + * [SetInventoryRequest.inventory.fulfillment_info.place_ids][] * The last update time is recorded for the following inventory fields: * * [Product.price_info][google.cloud.retail.v2.Product.price_info] * * [Product.availability][google.cloud.retail.v2.Product.availability] @@ -224,6 +238,20 @@ public boolean hasInventory() { * while respecting the last update time for each inventory field, using the * provided or default value for * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time]. + * The caller can replace place IDs for a subset of fulfillment types in the + * following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types and corresponding place IDs + * to update in [SetInventoryRequest.inventory.fulfillment_info][] + * The caller can clear all place IDs from a subset of fulfillment types in + * the following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types to clear in + * [SetInventoryRequest.inventory.fulfillment_info][] + * * Checks that only the desired fulfillment info types have empty + * [SetInventoryRequest.inventory.fulfillment_info.place_ids][] * The last update time is recorded for the following inventory fields: * * [Product.price_info][google.cloud.retail.v2.Product.price_info] * * [Product.availability][google.cloud.retail.v2.Product.availability] @@ -270,6 +298,20 @@ public com.google.cloud.retail.v2.Product getInventory() { * while respecting the last update time for each inventory field, using the * provided or default value for * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time]. + * The caller can replace place IDs for a subset of fulfillment types in the + * following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types and corresponding place IDs + * to update in [SetInventoryRequest.inventory.fulfillment_info][] + * The caller can clear all place IDs from a subset of fulfillment types in + * the following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types to clear in + * [SetInventoryRequest.inventory.fulfillment_info][] + * * Checks that only the desired fulfillment info types have empty + * [SetInventoryRequest.inventory.fulfillment_info.place_ids][] * The last update time is recorded for the following inventory fields: * * [Product.price_info][google.cloud.retail.v2.Product.price_info] * * [Product.availability][google.cloud.retail.v2.Product.availability] @@ -294,8 +336,8 @@ public com.google.cloud.retail.v2.ProductOrBuilder getInventoryOrBuilder() { * *
        * Indicates which inventory fields in the provided
    -   * [Product][google.cloud.retail.v2.Product] to update. If not set or set with
    -   * empty paths, all inventory fields will be updated.
    +   * [Product][google.cloud.retail.v2.Product] to update.
    +   * At least one field must be provided.
        * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
        * is returned and the entire update will be ignored.
        * 
    @@ -313,8 +355,8 @@ public boolean hasSetMask() { * *
        * Indicates which inventory fields in the provided
    -   * [Product][google.cloud.retail.v2.Product] to update. If not set or set with
    -   * empty paths, all inventory fields will be updated.
    +   * [Product][google.cloud.retail.v2.Product] to update.
    +   * At least one field must be provided.
        * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
        * is returned and the entire update will be ignored.
        * 
    @@ -332,8 +374,8 @@ public com.google.protobuf.FieldMask getSetMask() { * *
        * Indicates which inventory fields in the provided
    -   * [Product][google.cloud.retail.v2.Product] to update. If not set or set with
    -   * empty paths, all inventory fields will be updated.
    +   * [Product][google.cloud.retail.v2.Product] to update.
    +   * At least one field must be provided.
        * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
        * is returned and the entire update will be ignored.
        * 
    @@ -851,6 +893,20 @@ public Builder mergeFrom( * while respecting the last update time for each inventory field, using the * provided or default value for * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time]. + * The caller can replace place IDs for a subset of fulfillment types in the + * following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types and corresponding place IDs + * to update in [SetInventoryRequest.inventory.fulfillment_info][] + * The caller can clear all place IDs from a subset of fulfillment types in + * the following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types to clear in + * [SetInventoryRequest.inventory.fulfillment_info][] + * * Checks that only the desired fulfillment info types have empty + * [SetInventoryRequest.inventory.fulfillment_info.place_ids][] * The last update time is recorded for the following inventory fields: * * [Product.price_info][google.cloud.retail.v2.Product.price_info] * * [Product.availability][google.cloud.retail.v2.Product.availability] @@ -895,6 +951,20 @@ public boolean hasInventory() { * while respecting the last update time for each inventory field, using the * provided or default value for * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time]. + * The caller can replace place IDs for a subset of fulfillment types in the + * following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types and corresponding place IDs + * to update in [SetInventoryRequest.inventory.fulfillment_info][] + * The caller can clear all place IDs from a subset of fulfillment types in + * the following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types to clear in + * [SetInventoryRequest.inventory.fulfillment_info][] + * * Checks that only the desired fulfillment info types have empty + * [SetInventoryRequest.inventory.fulfillment_info.place_ids][] * The last update time is recorded for the following inventory fields: * * [Product.price_info][google.cloud.retail.v2.Product.price_info] * * [Product.availability][google.cloud.retail.v2.Product.availability] @@ -945,6 +1015,20 @@ public com.google.cloud.retail.v2.Product getInventory() { * while respecting the last update time for each inventory field, using the * provided or default value for * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time]. + * The caller can replace place IDs for a subset of fulfillment types in the + * following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types and corresponding place IDs + * to update in [SetInventoryRequest.inventory.fulfillment_info][] + * The caller can clear all place IDs from a subset of fulfillment types in + * the following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types to clear in + * [SetInventoryRequest.inventory.fulfillment_info][] + * * Checks that only the desired fulfillment info types have empty + * [SetInventoryRequest.inventory.fulfillment_info.place_ids][] * The last update time is recorded for the following inventory fields: * * [Product.price_info][google.cloud.retail.v2.Product.price_info] * * [Product.availability][google.cloud.retail.v2.Product.availability] @@ -997,6 +1081,20 @@ public Builder setInventory(com.google.cloud.retail.v2.Product value) { * while respecting the last update time for each inventory field, using the * provided or default value for * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time]. + * The caller can replace place IDs for a subset of fulfillment types in the + * following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types and corresponding place IDs + * to update in [SetInventoryRequest.inventory.fulfillment_info][] + * The caller can clear all place IDs from a subset of fulfillment types in + * the following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types to clear in + * [SetInventoryRequest.inventory.fulfillment_info][] + * * Checks that only the desired fulfillment info types have empty + * [SetInventoryRequest.inventory.fulfillment_info.place_ids][] * The last update time is recorded for the following inventory fields: * * [Product.price_info][google.cloud.retail.v2.Product.price_info] * * [Product.availability][google.cloud.retail.v2.Product.availability] @@ -1046,6 +1144,20 @@ public Builder setInventory(com.google.cloud.retail.v2.Product.Builder builderFo * while respecting the last update time for each inventory field, using the * provided or default value for * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time]. + * The caller can replace place IDs for a subset of fulfillment types in the + * following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types and corresponding place IDs + * to update in [SetInventoryRequest.inventory.fulfillment_info][] + * The caller can clear all place IDs from a subset of fulfillment types in + * the following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types to clear in + * [SetInventoryRequest.inventory.fulfillment_info][] + * * Checks that only the desired fulfillment info types have empty + * [SetInventoryRequest.inventory.fulfillment_info.place_ids][] * The last update time is recorded for the following inventory fields: * * [Product.price_info][google.cloud.retail.v2.Product.price_info] * * [Product.availability][google.cloud.retail.v2.Product.availability] @@ -1102,6 +1214,20 @@ public Builder mergeInventory(com.google.cloud.retail.v2.Product value) { * while respecting the last update time for each inventory field, using the * provided or default value for * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time]. + * The caller can replace place IDs for a subset of fulfillment types in the + * following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types and corresponding place IDs + * to update in [SetInventoryRequest.inventory.fulfillment_info][] + * The caller can clear all place IDs from a subset of fulfillment types in + * the following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types to clear in + * [SetInventoryRequest.inventory.fulfillment_info][] + * * Checks that only the desired fulfillment info types have empty + * [SetInventoryRequest.inventory.fulfillment_info.place_ids][] * The last update time is recorded for the following inventory fields: * * [Product.price_info][google.cloud.retail.v2.Product.price_info] * * [Product.availability][google.cloud.retail.v2.Product.availability] @@ -1152,6 +1278,20 @@ public Builder clearInventory() { * while respecting the last update time for each inventory field, using the * provided or default value for * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time]. + * The caller can replace place IDs for a subset of fulfillment types in the + * following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types and corresponding place IDs + * to update in [SetInventoryRequest.inventory.fulfillment_info][] + * The caller can clear all place IDs from a subset of fulfillment types in + * the following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types to clear in + * [SetInventoryRequest.inventory.fulfillment_info][] + * * Checks that only the desired fulfillment info types have empty + * [SetInventoryRequest.inventory.fulfillment_info.place_ids][] * The last update time is recorded for the following inventory fields: * * [Product.price_info][google.cloud.retail.v2.Product.price_info] * * [Product.availability][google.cloud.retail.v2.Product.availability] @@ -1196,6 +1336,20 @@ public com.google.cloud.retail.v2.Product.Builder getInventoryBuilder() { * while respecting the last update time for each inventory field, using the * provided or default value for * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time]. + * The caller can replace place IDs for a subset of fulfillment types in the + * following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types and corresponding place IDs + * to update in [SetInventoryRequest.inventory.fulfillment_info][] + * The caller can clear all place IDs from a subset of fulfillment types in + * the following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types to clear in + * [SetInventoryRequest.inventory.fulfillment_info][] + * * Checks that only the desired fulfillment info types have empty + * [SetInventoryRequest.inventory.fulfillment_info.place_ids][] * The last update time is recorded for the following inventory fields: * * [Product.price_info][google.cloud.retail.v2.Product.price_info] * * [Product.availability][google.cloud.retail.v2.Product.availability] @@ -1244,6 +1398,20 @@ public com.google.cloud.retail.v2.ProductOrBuilder getInventoryOrBuilder() { * while respecting the last update time for each inventory field, using the * provided or default value for * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time]. + * The caller can replace place IDs for a subset of fulfillment types in the + * following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types and corresponding place IDs + * to update in [SetInventoryRequest.inventory.fulfillment_info][] + * The caller can clear all place IDs from a subset of fulfillment types in + * the following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types to clear in + * [SetInventoryRequest.inventory.fulfillment_info][] + * * Checks that only the desired fulfillment info types have empty + * [SetInventoryRequest.inventory.fulfillment_info.place_ids][] * The last update time is recorded for the following inventory fields: * * [Product.price_info][google.cloud.retail.v2.Product.price_info] * * [Product.availability][google.cloud.retail.v2.Product.availability] @@ -1285,8 +1453,8 @@ public com.google.cloud.retail.v2.ProductOrBuilder getInventoryOrBuilder() { * *
          * Indicates which inventory fields in the provided
    -     * [Product][google.cloud.retail.v2.Product] to update. If not set or set with
    -     * empty paths, all inventory fields will be updated.
    +     * [Product][google.cloud.retail.v2.Product] to update.
    +     * At least one field must be provided.
          * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
          * is returned and the entire update will be ignored.
          * 
    @@ -1303,8 +1471,8 @@ public boolean hasSetMask() { * *
          * Indicates which inventory fields in the provided
    -     * [Product][google.cloud.retail.v2.Product] to update. If not set or set with
    -     * empty paths, all inventory fields will be updated.
    +     * [Product][google.cloud.retail.v2.Product] to update.
    +     * At least one field must be provided.
          * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
          * is returned and the entire update will be ignored.
          * 
    @@ -1325,8 +1493,8 @@ public com.google.protobuf.FieldMask getSetMask() { * *
          * Indicates which inventory fields in the provided
    -     * [Product][google.cloud.retail.v2.Product] to update. If not set or set with
    -     * empty paths, all inventory fields will be updated.
    +     * [Product][google.cloud.retail.v2.Product] to update.
    +     * At least one field must be provided.
          * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
          * is returned and the entire update will be ignored.
          * 
    @@ -1351,8 +1519,8 @@ public Builder setSetMask(com.google.protobuf.FieldMask value) { * *
          * Indicates which inventory fields in the provided
    -     * [Product][google.cloud.retail.v2.Product] to update. If not set or set with
    -     * empty paths, all inventory fields will be updated.
    +     * [Product][google.cloud.retail.v2.Product] to update.
    +     * At least one field must be provided.
          * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
          * is returned and the entire update will be ignored.
          * 
    @@ -1374,8 +1542,8 @@ public Builder setSetMask(com.google.protobuf.FieldMask.Builder builderForValue) * *
          * Indicates which inventory fields in the provided
    -     * [Product][google.cloud.retail.v2.Product] to update. If not set or set with
    -     * empty paths, all inventory fields will be updated.
    +     * [Product][google.cloud.retail.v2.Product] to update.
    +     * At least one field must be provided.
          * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
          * is returned and the entire update will be ignored.
          * 
    @@ -1402,8 +1570,8 @@ public Builder mergeSetMask(com.google.protobuf.FieldMask value) { * *
          * Indicates which inventory fields in the provided
    -     * [Product][google.cloud.retail.v2.Product] to update. If not set or set with
    -     * empty paths, all inventory fields will be updated.
    +     * [Product][google.cloud.retail.v2.Product] to update.
    +     * At least one field must be provided.
          * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
          * is returned and the entire update will be ignored.
          * 
    @@ -1426,8 +1594,8 @@ public Builder clearSetMask() { * *
          * Indicates which inventory fields in the provided
    -     * [Product][google.cloud.retail.v2.Product] to update. If not set or set with
    -     * empty paths, all inventory fields will be updated.
    +     * [Product][google.cloud.retail.v2.Product] to update.
    +     * At least one field must be provided.
          * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
          * is returned and the entire update will be ignored.
          * 
    @@ -1444,8 +1612,8 @@ public com.google.protobuf.FieldMask.Builder getSetMaskBuilder() { * *
          * Indicates which inventory fields in the provided
    -     * [Product][google.cloud.retail.v2.Product] to update. If not set or set with
    -     * empty paths, all inventory fields will be updated.
    +     * [Product][google.cloud.retail.v2.Product] to update.
    +     * At least one field must be provided.
          * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
          * is returned and the entire update will be ignored.
          * 
    @@ -1464,8 +1632,8 @@ public com.google.protobuf.FieldMaskOrBuilder getSetMaskOrBuilder() { * *
          * Indicates which inventory fields in the provided
    -     * [Product][google.cloud.retail.v2.Product] to update. If not set or set with
    -     * empty paths, all inventory fields will be updated.
    +     * [Product][google.cloud.retail.v2.Product] to update.
    +     * At least one field must be provided.
          * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
          * is returned and the entire update will be ignored.
          * 
    diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SetInventoryRequestOrBuilder.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SetInventoryRequestOrBuilder.java index de733245..9ecc0f3a 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SetInventoryRequestOrBuilder.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/SetInventoryRequestOrBuilder.java @@ -49,6 +49,20 @@ public interface SetInventoryRequestOrBuilder * while respecting the last update time for each inventory field, using the * provided or default value for * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time]. + * The caller can replace place IDs for a subset of fulfillment types in the + * following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types and corresponding place IDs + * to update in [SetInventoryRequest.inventory.fulfillment_info][] + * The caller can clear all place IDs from a subset of fulfillment types in + * the following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types to clear in + * [SetInventoryRequest.inventory.fulfillment_info][] + * * Checks that only the desired fulfillment info types have empty + * [SetInventoryRequest.inventory.fulfillment_info.place_ids][] * The last update time is recorded for the following inventory fields: * * [Product.price_info][google.cloud.retail.v2.Product.price_info] * * [Product.availability][google.cloud.retail.v2.Product.availability] @@ -90,6 +104,20 @@ public interface SetInventoryRequestOrBuilder * while respecting the last update time for each inventory field, using the * provided or default value for * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time]. + * The caller can replace place IDs for a subset of fulfillment types in the + * following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types and corresponding place IDs + * to update in [SetInventoryRequest.inventory.fulfillment_info][] + * The caller can clear all place IDs from a subset of fulfillment types in + * the following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types to clear in + * [SetInventoryRequest.inventory.fulfillment_info][] + * * Checks that only the desired fulfillment info types have empty + * [SetInventoryRequest.inventory.fulfillment_info.place_ids][] * The last update time is recorded for the following inventory fields: * * [Product.price_info][google.cloud.retail.v2.Product.price_info] * * [Product.availability][google.cloud.retail.v2.Product.availability] @@ -131,6 +159,20 @@ public interface SetInventoryRequestOrBuilder * while respecting the last update time for each inventory field, using the * provided or default value for * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time]. + * The caller can replace place IDs for a subset of fulfillment types in the + * following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types and corresponding place IDs + * to update in [SetInventoryRequest.inventory.fulfillment_info][] + * The caller can clear all place IDs from a subset of fulfillment types in + * the following ways: + * * Adds "fulfillment_info" in + * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask] + * * Specifies only the desired fulfillment types to clear in + * [SetInventoryRequest.inventory.fulfillment_info][] + * * Checks that only the desired fulfillment info types have empty + * [SetInventoryRequest.inventory.fulfillment_info.place_ids][] * The last update time is recorded for the following inventory fields: * * [Product.price_info][google.cloud.retail.v2.Product.price_info] * * [Product.availability][google.cloud.retail.v2.Product.availability] @@ -150,8 +192,8 @@ public interface SetInventoryRequestOrBuilder * *
        * Indicates which inventory fields in the provided
    -   * [Product][google.cloud.retail.v2.Product] to update. If not set or set with
    -   * empty paths, all inventory fields will be updated.
    +   * [Product][google.cloud.retail.v2.Product] to update.
    +   * At least one field must be provided.
        * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
        * is returned and the entire update will be ignored.
        * 
    @@ -166,8 +208,8 @@ public interface SetInventoryRequestOrBuilder * *
        * Indicates which inventory fields in the provided
    -   * [Product][google.cloud.retail.v2.Product] to update. If not set or set with
    -   * empty paths, all inventory fields will be updated.
    +   * [Product][google.cloud.retail.v2.Product] to update.
    +   * At least one field must be provided.
        * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
        * is returned and the entire update will be ignored.
        * 
    @@ -182,8 +224,8 @@ public interface SetInventoryRequestOrBuilder * *
        * Indicates which inventory fields in the provided
    -   * [Product][google.cloud.retail.v2.Product] to update. If not set or set with
    -   * empty paths, all inventory fields will be updated.
    +   * [Product][google.cloud.retail.v2.Product] to update.
    +   * At least one field must be provided.
        * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
        * is returned and the entire update will be ignored.
        * 
    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 a7a0a4de..91df2b82 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 @@ -343,7 +343,6 @@ protected com.google.protobuf.MapField internalGetMapField(int number) { * * `add-to-cart`: Products being added to cart. * * `category-page-view`: Special pages such as sale or promotion pages * viewed. - * * `completion`: Completion query result showed/clicked. * * `detail-page-view`: Products detail page viewed. * * `home-page-view`: Homepage viewed. * * `promotion-offered`: Promotion is offered to a user. @@ -377,7 +376,6 @@ public java.lang.String getEventType() { * * `add-to-cart`: Products being added to cart. * * `category-page-view`: Special pages such as sale or promotion pages * viewed. - * * `completion`: Completion query result showed/clicked. * * `detail-page-view`: Products detail page viewed. * * `home-page-view`: Homepage viewed. * * `promotion-offered`: Promotion is offered to a user. @@ -757,6 +755,7 @@ public com.google.protobuf.ByteString getAttributionTokenBytes() { * * `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 @@ -781,6 +780,7 @@ public java.util.List getProductDetail * * `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 @@ -806,6 +806,7 @@ public java.util.List getProductDetail * * `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 @@ -830,6 +831,7 @@ public int getProductDetailsCount() { * * `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,6 +856,7 @@ public com.google.cloud.retail.v2.ProductDetail getProductDetails(int index) { * * `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 @@ -876,10 +879,9 @@ public com.google.cloud.retail.v2.ProductDetailOrBuilder getProductDetailsOrBuil * * *
    -   * The main completion details related to the event.
    -   * In a `completion` event, this field represents the completions returned to
    -   * the end user and the clicked completion by the end user. In a `search`
    -   * event, it represents the search event happens after clicking completion.
    +   * The main auto-completion details related to the event.
    +   * This field should be set for `search` event when autocomplete function is
    +   * enabled and the user clicks a suggestion for search.
        * 
    * * .google.cloud.retail.v2.CompletionDetail completion_detail = 22; @@ -894,10 +896,9 @@ public boolean hasCompletionDetail() { * * *
    -   * The main completion details related to the event.
    -   * In a `completion` event, this field represents the completions returned to
    -   * the end user and the clicked completion by the end user. In a `search`
    -   * event, it represents the search event happens after clicking completion.
    +   * The main auto-completion details related to the event.
    +   * This field should be set for `search` event when autocomplete function is
    +   * enabled and the user clicks a suggestion for search.
        * 
    * * .google.cloud.retail.v2.CompletionDetail completion_detail = 22; @@ -914,10 +915,9 @@ public com.google.cloud.retail.v2.CompletionDetail getCompletionDetail() { * * *
    -   * The main completion details related to the event.
    -   * In a `completion` event, this field represents the completions returned to
    -   * the end user and the clicked completion by the end user. In a `search`
    -   * event, it represents the search event happens after clicking completion.
    +   * The main auto-completion details related to the event.
    +   * This field should be set for `search` event when autocomplete function is
    +   * enabled and the user clicks a suggestion for search.
        * 
    * * .google.cloud.retail.v2.CompletionDetail completion_detail = 22; @@ -962,12 +962,24 @@ public int getAttributesCount() { * *
        * Extra user event features to include in the recommendation model.
    -   * The key must be a UTF-8 encoded string with a length limit of 5,000
    -   * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    -   * For product recommendation, an example of extra user information is
    -   * traffic_channel, i.e. how user arrives at the site. Users can arrive
    -   * at the site by coming to the site directly, or coming through Google
    -   * search, and etc.
    +   * If you provide custom attributes for ingested user events, also include
    +   * them in the user events that you associate with prediction requests. Custom
    +   * attribute formatting must be consistent between imported events and events
    +   * provided with prediction requests. This lets the Retail API use
    +   * those custom attributes when training models and serving predictions, which
    +   * helps improve recommendation quality.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * The key must be a UTF-8 encoded string with a length limit of 5,000
    +   *   characters.
    +   * * For text attributes, at most 400 values are allowed. Empty values are not
    +   *   allowed. Each value must be a UTF-8 encoded string with a length limit of
    +   *   256 characters.
    +   * * For number attributes, at most 400 values are allowed.
    +   * For product recommendations, an example of extra user information is
    +   * traffic_channel, which is how a user arrives at the site. Users can arrive
    +   * at the site by coming to the site directly, coming through Google
    +   * search, or in other ways.
        * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 7; @@ -991,12 +1003,24 @@ public boolean containsAttributes(java.lang.String key) { * *
        * Extra user event features to include in the recommendation model.
    -   * The key must be a UTF-8 encoded string with a length limit of 5,000
    -   * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    -   * For product recommendation, an example of extra user information is
    -   * traffic_channel, i.e. how user arrives at the site. Users can arrive
    -   * at the site by coming to the site directly, or coming through Google
    -   * search, and etc.
    +   * If you provide custom attributes for ingested user events, also include
    +   * them in the user events that you associate with prediction requests. Custom
    +   * attribute formatting must be consistent between imported events and events
    +   * provided with prediction requests. This lets the Retail API use
    +   * those custom attributes when training models and serving predictions, which
    +   * helps improve recommendation quality.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * The key must be a UTF-8 encoded string with a length limit of 5,000
    +   *   characters.
    +   * * For text attributes, at most 400 values are allowed. Empty values are not
    +   *   allowed. Each value must be a UTF-8 encoded string with a length limit of
    +   *   256 characters.
    +   * * For number attributes, at most 400 values are allowed.
    +   * For product recommendations, an example of extra user information is
    +   * traffic_channel, which is how a user arrives at the site. Users can arrive
    +   * at the site by coming to the site directly, coming through Google
    +   * search, or in other ways.
        * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 7; @@ -1011,12 +1035,24 @@ public boolean containsAttributes(java.lang.String key) { * *
        * Extra user event features to include in the recommendation model.
    -   * The key must be a UTF-8 encoded string with a length limit of 5,000
    -   * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    -   * For product recommendation, an example of extra user information is
    -   * traffic_channel, i.e. how user arrives at the site. Users can arrive
    -   * at the site by coming to the site directly, or coming through Google
    -   * search, and etc.
    +   * If you provide custom attributes for ingested user events, also include
    +   * them in the user events that you associate with prediction requests. Custom
    +   * attribute formatting must be consistent between imported events and events
    +   * provided with prediction requests. This lets the Retail API use
    +   * those custom attributes when training models and serving predictions, which
    +   * helps improve recommendation quality.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * The key must be a UTF-8 encoded string with a length limit of 5,000
    +   *   characters.
    +   * * For text attributes, at most 400 values are allowed. Empty values are not
    +   *   allowed. Each value must be a UTF-8 encoded string with a length limit of
    +   *   256 characters.
    +   * * For number attributes, at most 400 values are allowed.
    +   * For product recommendations, an example of extra user information is
    +   * traffic_channel, which is how a user arrives at the site. Users can arrive
    +   * at the site by coming to the site directly, coming through Google
    +   * search, or in other ways.
        * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 7; @@ -1036,12 +1072,24 @@ public com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * *
        * Extra user event features to include in the recommendation model.
    -   * The key must be a UTF-8 encoded string with a length limit of 5,000
    -   * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    -   * For product recommendation, an example of extra user information is
    -   * traffic_channel, i.e. how user arrives at the site. Users can arrive
    -   * at the site by coming to the site directly, or coming through Google
    -   * search, and etc.
    +   * If you provide custom attributes for ingested user events, also include
    +   * them in the user events that you associate with prediction requests. Custom
    +   * attribute formatting must be consistent between imported events and events
    +   * provided with prediction requests. This lets the Retail API use
    +   * those custom attributes when training models and serving predictions, which
    +   * helps improve recommendation quality.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * The key must be a UTF-8 encoded string with a length limit of 5,000
    +   *   characters.
    +   * * For text attributes, at most 400 values are allowed. Empty values are not
    +   *   allowed. Each value must be a UTF-8 encoded string with a length limit of
    +   *   256 characters.
    +   * * For number attributes, at most 400 values are allowed.
    +   * For product recommendations, an example of extra user information is
    +   * traffic_channel, which is how a user arrives at the site. Users can arrive
    +   * at the site by coming to the site directly, coming through Google
    +   * search, or in other ways.
        * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 7; @@ -2477,7 +2525,6 @@ public Builder mergeFrom( * * `add-to-cart`: Products being added to cart. * * `category-page-view`: Special pages such as sale or promotion pages * viewed. - * * `completion`: Completion query result showed/clicked. * * `detail-page-view`: Products detail page viewed. * * `home-page-view`: Homepage viewed. * * `promotion-offered`: Promotion is offered to a user. @@ -2510,7 +2557,6 @@ public java.lang.String getEventType() { * * `add-to-cart`: Products being added to cart. * * `category-page-view`: Special pages such as sale or promotion pages * viewed. - * * `completion`: Completion query result showed/clicked. * * `detail-page-view`: Products detail page viewed. * * `home-page-view`: Homepage viewed. * * `promotion-offered`: Promotion is offered to a user. @@ -2543,7 +2589,6 @@ public com.google.protobuf.ByteString getEventTypeBytes() { * * `add-to-cart`: Products being added to cart. * * `category-page-view`: Special pages such as sale or promotion pages * viewed. - * * `completion`: Completion query result showed/clicked. * * `detail-page-view`: Products detail page viewed. * * `home-page-view`: Homepage viewed. * * `promotion-offered`: Promotion is offered to a user. @@ -2575,7 +2620,6 @@ public Builder setEventType(java.lang.String value) { * * `add-to-cart`: Products being added to cart. * * `category-page-view`: Special pages such as sale or promotion pages * viewed. - * * `completion`: Completion query result showed/clicked. * * `detail-page-view`: Products detail page viewed. * * `home-page-view`: Homepage viewed. * * `promotion-offered`: Promotion is offered to a user. @@ -2603,7 +2647,6 @@ public Builder clearEventType() { * * `add-to-cart`: Products being added to cart. * * `category-page-view`: Special pages such as sale or promotion pages * viewed. - * * `completion`: Completion query result showed/clicked. * * `detail-page-view`: Products detail page viewed. * * `home-page-view`: Homepage viewed. * * `promotion-offered`: Promotion is offered to a user. @@ -3540,6 +3583,7 @@ private void ensureProductDetailsIsMutable() { * * `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 @@ -3567,6 +3611,7 @@ public java.util.List getProductDetail * * `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 @@ -3594,6 +3639,7 @@ public int getProductDetailsCount() { * * `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 @@ -3621,6 +3667,7 @@ public com.google.cloud.retail.v2.ProductDetail getProductDetails(int index) { * * `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 @@ -3654,6 +3701,7 @@ public Builder setProductDetails(int index, com.google.cloud.retail.v2.ProductDe * * `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 @@ -3685,6 +3733,7 @@ public Builder setProductDetails( * * `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 @@ -3718,6 +3767,7 @@ public Builder addProductDetails(com.google.cloud.retail.v2.ProductDetail value) * * `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 @@ -3751,6 +3801,7 @@ public Builder addProductDetails(int index, com.google.cloud.retail.v2.ProductDe * * `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 @@ -3782,6 +3833,7 @@ public Builder addProductDetails( * * `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 @@ -3813,6 +3865,7 @@ public Builder addProductDetails( * * `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 @@ -3844,6 +3897,7 @@ public Builder addAllProductDetails( * * `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 @@ -3874,6 +3928,7 @@ public Builder clearProductDetails() { * * `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 @@ -3904,6 +3959,7 @@ public Builder removeProductDetails(int index) { * * `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 @@ -3927,6 +3983,7 @@ public com.google.cloud.retail.v2.ProductDetail.Builder getProductDetailsBuilder * * `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 @@ -3954,6 +4011,7 @@ public com.google.cloud.retail.v2.ProductDetailOrBuilder getProductDetailsOrBuil * * `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 @@ -3982,6 +4040,7 @@ public com.google.cloud.retail.v2.ProductDetailOrBuilder getProductDetailsOrBuil * * `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 @@ -4006,6 +4065,7 @@ public com.google.cloud.retail.v2.ProductDetail.Builder addProductDetailsBuilder * * `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 @@ -4030,6 +4090,7 @@ public com.google.cloud.retail.v2.ProductDetail.Builder addProductDetailsBuilder * * `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 @@ -4076,10 +4137,9 @@ public com.google.cloud.retail.v2.ProductDetail.Builder addProductDetailsBuilder * * *
    -     * The main completion details related to the event.
    -     * In a `completion` event, this field represents the completions returned to
    -     * the end user and the clicked completion by the end user. In a `search`
    -     * event, it represents the search event happens after clicking completion.
    +     * The main auto-completion details related to the event.
    +     * This field should be set for `search` event when autocomplete function is
    +     * enabled and the user clicks a suggestion for search.
          * 
    * * .google.cloud.retail.v2.CompletionDetail completion_detail = 22; @@ -4093,10 +4153,9 @@ public boolean hasCompletionDetail() { * * *
    -     * The main completion details related to the event.
    -     * In a `completion` event, this field represents the completions returned to
    -     * the end user and the clicked completion by the end user. In a `search`
    -     * event, it represents the search event happens after clicking completion.
    +     * The main auto-completion details related to the event.
    +     * This field should be set for `search` event when autocomplete function is
    +     * enabled and the user clicks a suggestion for search.
          * 
    * * .google.cloud.retail.v2.CompletionDetail completion_detail = 22; @@ -4116,10 +4175,9 @@ public com.google.cloud.retail.v2.CompletionDetail getCompletionDetail() { * * *
    -     * The main completion details related to the event.
    -     * In a `completion` event, this field represents the completions returned to
    -     * the end user and the clicked completion by the end user. In a `search`
    -     * event, it represents the search event happens after clicking completion.
    +     * The main auto-completion details related to the event.
    +     * This field should be set for `search` event when autocomplete function is
    +     * enabled and the user clicks a suggestion for search.
          * 
    * * .google.cloud.retail.v2.CompletionDetail completion_detail = 22; @@ -4141,10 +4199,9 @@ public Builder setCompletionDetail(com.google.cloud.retail.v2.CompletionDetail v * * *
    -     * The main completion details related to the event.
    -     * In a `completion` event, this field represents the completions returned to
    -     * the end user and the clicked completion by the end user. In a `search`
    -     * event, it represents the search event happens after clicking completion.
    +     * The main auto-completion details related to the event.
    +     * This field should be set for `search` event when autocomplete function is
    +     * enabled and the user clicks a suggestion for search.
          * 
    * * .google.cloud.retail.v2.CompletionDetail completion_detail = 22; @@ -4164,10 +4221,9 @@ public Builder setCompletionDetail( * * *
    -     * The main completion details related to the event.
    -     * In a `completion` event, this field represents the completions returned to
    -     * the end user and the clicked completion by the end user. In a `search`
    -     * event, it represents the search event happens after clicking completion.
    +     * The main auto-completion details related to the event.
    +     * This field should be set for `search` event when autocomplete function is
    +     * enabled and the user clicks a suggestion for search.
          * 
    * * .google.cloud.retail.v2.CompletionDetail completion_detail = 22; @@ -4193,10 +4249,9 @@ public Builder mergeCompletionDetail(com.google.cloud.retail.v2.CompletionDetail * * *
    -     * The main completion details related to the event.
    -     * In a `completion` event, this field represents the completions returned to
    -     * the end user and the clicked completion by the end user. In a `search`
    -     * event, it represents the search event happens after clicking completion.
    +     * The main auto-completion details related to the event.
    +     * This field should be set for `search` event when autocomplete function is
    +     * enabled and the user clicks a suggestion for search.
          * 
    * * .google.cloud.retail.v2.CompletionDetail completion_detail = 22; @@ -4216,10 +4271,9 @@ public Builder clearCompletionDetail() { * * *
    -     * The main completion details related to the event.
    -     * In a `completion` event, this field represents the completions returned to
    -     * the end user and the clicked completion by the end user. In a `search`
    -     * event, it represents the search event happens after clicking completion.
    +     * The main auto-completion details related to the event.
    +     * This field should be set for `search` event when autocomplete function is
    +     * enabled and the user clicks a suggestion for search.
          * 
    * * .google.cloud.retail.v2.CompletionDetail completion_detail = 22; @@ -4233,10 +4287,9 @@ public com.google.cloud.retail.v2.CompletionDetail.Builder getCompletionDetailBu * * *
    -     * The main completion details related to the event.
    -     * In a `completion` event, this field represents the completions returned to
    -     * the end user and the clicked completion by the end user. In a `search`
    -     * event, it represents the search event happens after clicking completion.
    +     * The main auto-completion details related to the event.
    +     * This field should be set for `search` event when autocomplete function is
    +     * enabled and the user clicks a suggestion for search.
          * 
    * * .google.cloud.retail.v2.CompletionDetail completion_detail = 22; @@ -4254,10 +4307,9 @@ public com.google.cloud.retail.v2.CompletionDetailOrBuilder getCompletionDetailO * * *
    -     * The main completion details related to the event.
    -     * In a `completion` event, this field represents the completions returned to
    -     * the end user and the clicked completion by the end user. In a `search`
    -     * event, it represents the search event happens after clicking completion.
    +     * The main auto-completion details related to the event.
    +     * This field should be set for `search` event when autocomplete function is
    +     * enabled and the user clicks a suggestion for search.
          * 
    * * .google.cloud.retail.v2.CompletionDetail completion_detail = 22; @@ -4316,12 +4368,24 @@ public int getAttributesCount() { * *
          * Extra user event features to include in the recommendation model.
    -     * The key must be a UTF-8 encoded string with a length limit of 5,000
    -     * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    -     * For product recommendation, an example of extra user information is
    -     * traffic_channel, i.e. how user arrives at the site. Users can arrive
    -     * at the site by coming to the site directly, or coming through Google
    -     * search, and etc.
    +     * If you provide custom attributes for ingested user events, also include
    +     * them in the user events that you associate with prediction requests. Custom
    +     * attribute formatting must be consistent between imported events and events
    +     * provided with prediction requests. This lets the Retail API use
    +     * those custom attributes when training models and serving predictions, which
    +     * helps improve recommendation quality.
    +     * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +     * error is returned:
    +     * * The key must be a UTF-8 encoded string with a length limit of 5,000
    +     *   characters.
    +     * * For text attributes, at most 400 values are allowed. Empty values are not
    +     *   allowed. Each value must be a UTF-8 encoded string with a length limit of
    +     *   256 characters.
    +     * * For number attributes, at most 400 values are allowed.
    +     * For product recommendations, an example of extra user information is
    +     * traffic_channel, which is how a user arrives at the site. Users can arrive
    +     * at the site by coming to the site directly, coming through Google
    +     * search, or in other ways.
          * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 7; @@ -4345,12 +4409,24 @@ public boolean containsAttributes(java.lang.String key) { * *
          * Extra user event features to include in the recommendation model.
    -     * The key must be a UTF-8 encoded string with a length limit of 5,000
    -     * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    -     * For product recommendation, an example of extra user information is
    -     * traffic_channel, i.e. how user arrives at the site. Users can arrive
    -     * at the site by coming to the site directly, or coming through Google
    -     * search, and etc.
    +     * If you provide custom attributes for ingested user events, also include
    +     * them in the user events that you associate with prediction requests. Custom
    +     * attribute formatting must be consistent between imported events and events
    +     * provided with prediction requests. This lets the Retail API use
    +     * those custom attributes when training models and serving predictions, which
    +     * helps improve recommendation quality.
    +     * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +     * error is returned:
    +     * * The key must be a UTF-8 encoded string with a length limit of 5,000
    +     *   characters.
    +     * * For text attributes, at most 400 values are allowed. Empty values are not
    +     *   allowed. Each value must be a UTF-8 encoded string with a length limit of
    +     *   256 characters.
    +     * * For number attributes, at most 400 values are allowed.
    +     * For product recommendations, an example of extra user information is
    +     * traffic_channel, which is how a user arrives at the site. Users can arrive
    +     * at the site by coming to the site directly, coming through Google
    +     * search, or in other ways.
          * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 7; @@ -4365,12 +4441,24 @@ public boolean containsAttributes(java.lang.String key) { * *
          * Extra user event features to include in the recommendation model.
    -     * The key must be a UTF-8 encoded string with a length limit of 5,000
    -     * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    -     * For product recommendation, an example of extra user information is
    -     * traffic_channel, i.e. how user arrives at the site. Users can arrive
    -     * at the site by coming to the site directly, or coming through Google
    -     * search, and etc.
    +     * If you provide custom attributes for ingested user events, also include
    +     * them in the user events that you associate with prediction requests. Custom
    +     * attribute formatting must be consistent between imported events and events
    +     * provided with prediction requests. This lets the Retail API use
    +     * those custom attributes when training models and serving predictions, which
    +     * helps improve recommendation quality.
    +     * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +     * error is returned:
    +     * * The key must be a UTF-8 encoded string with a length limit of 5,000
    +     *   characters.
    +     * * For text attributes, at most 400 values are allowed. Empty values are not
    +     *   allowed. Each value must be a UTF-8 encoded string with a length limit of
    +     *   256 characters.
    +     * * For number attributes, at most 400 values are allowed.
    +     * For product recommendations, an example of extra user information is
    +     * traffic_channel, which is how a user arrives at the site. Users can arrive
    +     * at the site by coming to the site directly, coming through Google
    +     * search, or in other ways.
          * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 7; @@ -4390,12 +4478,24 @@ public com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * *
          * Extra user event features to include in the recommendation model.
    -     * The key must be a UTF-8 encoded string with a length limit of 5,000
    -     * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    -     * For product recommendation, an example of extra user information is
    -     * traffic_channel, i.e. how user arrives at the site. Users can arrive
    -     * at the site by coming to the site directly, or coming through Google
    -     * search, and etc.
    +     * If you provide custom attributes for ingested user events, also include
    +     * them in the user events that you associate with prediction requests. Custom
    +     * attribute formatting must be consistent between imported events and events
    +     * provided with prediction requests. This lets the Retail API use
    +     * those custom attributes when training models and serving predictions, which
    +     * helps improve recommendation quality.
    +     * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +     * error is returned:
    +     * * The key must be a UTF-8 encoded string with a length limit of 5,000
    +     *   characters.
    +     * * For text attributes, at most 400 values are allowed. Empty values are not
    +     *   allowed. Each value must be a UTF-8 encoded string with a length limit of
    +     *   256 characters.
    +     * * For number attributes, at most 400 values are allowed.
    +     * For product recommendations, an example of extra user information is
    +     * traffic_channel, which is how a user arrives at the site. Users can arrive
    +     * at the site by coming to the site directly, coming through Google
    +     * search, or in other ways.
          * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 7; @@ -4422,12 +4522,24 @@ public Builder clearAttributes() { * *
          * Extra user event features to include in the recommendation model.
    -     * The key must be a UTF-8 encoded string with a length limit of 5,000
    -     * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    -     * For product recommendation, an example of extra user information is
    -     * traffic_channel, i.e. how user arrives at the site. Users can arrive
    -     * at the site by coming to the site directly, or coming through Google
    -     * search, and etc.
    +     * If you provide custom attributes for ingested user events, also include
    +     * them in the user events that you associate with prediction requests. Custom
    +     * attribute formatting must be consistent between imported events and events
    +     * provided with prediction requests. This lets the Retail API use
    +     * those custom attributes when training models and serving predictions, which
    +     * helps improve recommendation quality.
    +     * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +     * error is returned:
    +     * * The key must be a UTF-8 encoded string with a length limit of 5,000
    +     *   characters.
    +     * * For text attributes, at most 400 values are allowed. Empty values are not
    +     *   allowed. Each value must be a UTF-8 encoded string with a length limit of
    +     *   256 characters.
    +     * * For number attributes, at most 400 values are allowed.
    +     * For product recommendations, an example of extra user information is
    +     * traffic_channel, which is how a user arrives at the site. Users can arrive
    +     * at the site by coming to the site directly, coming through Google
    +     * search, or in other ways.
          * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 7; @@ -4450,12 +4562,24 @@ public Builder removeAttributes(java.lang.String key) { * *
          * Extra user event features to include in the recommendation model.
    -     * The key must be a UTF-8 encoded string with a length limit of 5,000
    -     * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    -     * For product recommendation, an example of extra user information is
    -     * traffic_channel, i.e. how user arrives at the site. Users can arrive
    -     * at the site by coming to the site directly, or coming through Google
    -     * search, and etc.
    +     * If you provide custom attributes for ingested user events, also include
    +     * them in the user events that you associate with prediction requests. Custom
    +     * attribute formatting must be consistent between imported events and events
    +     * provided with prediction requests. This lets the Retail API use
    +     * those custom attributes when training models and serving predictions, which
    +     * helps improve recommendation quality.
    +     * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +     * error is returned:
    +     * * The key must be a UTF-8 encoded string with a length limit of 5,000
    +     *   characters.
    +     * * For text attributes, at most 400 values are allowed. Empty values are not
    +     *   allowed. Each value must be a UTF-8 encoded string with a length limit of
    +     *   256 characters.
    +     * * For number attributes, at most 400 values are allowed.
    +     * For product recommendations, an example of extra user information is
    +     * traffic_channel, which is how a user arrives at the site. Users can arrive
    +     * at the site by coming to the site directly, coming through Google
    +     * search, or in other ways.
          * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 7; @@ -4476,12 +4600,24 @@ public Builder putAttributes( * *
          * Extra user event features to include in the recommendation model.
    -     * The key must be a UTF-8 encoded string with a length limit of 5,000
    -     * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    -     * For product recommendation, an example of extra user information is
    -     * traffic_channel, i.e. how user arrives at the site. Users can arrive
    -     * at the site by coming to the site directly, or coming through Google
    -     * search, and etc.
    +     * If you provide custom attributes for ingested user events, also include
    +     * them in the user events that you associate with prediction requests. Custom
    +     * attribute formatting must be consistent between imported events and events
    +     * provided with prediction requests. This lets the Retail API use
    +     * those custom attributes when training models and serving predictions, which
    +     * helps improve recommendation quality.
    +     * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +     * error is returned:
    +     * * The key must be a UTF-8 encoded string with a length limit of 5,000
    +     *   characters.
    +     * * For text attributes, at most 400 values are allowed. Empty values are not
    +     *   allowed. Each value must be a UTF-8 encoded string with a length limit of
    +     *   256 characters.
    +     * * For number attributes, at most 400 values are allowed.
    +     * For product recommendations, an example of extra user information is
    +     * traffic_channel, which is how a user arrives at the site. Users can arrive
    +     * at the site by coming to the site directly, coming through Google
    +     * search, or in other ways.
          * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 7; 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 53508c92..a3b9d903 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 @@ -31,7 +31,6 @@ public interface UserEventOrBuilder * * `add-to-cart`: Products being added to cart. * * `category-page-view`: Special pages such as sale or promotion pages * viewed. - * * `completion`: Completion query result showed/clicked. * * `detail-page-view`: Products detail page viewed. * * `home-page-view`: Homepage viewed. * * `promotion-offered`: Promotion is offered to a user. @@ -54,7 +53,6 @@ public interface UserEventOrBuilder * * `add-to-cart`: Products being added to cart. * * `category-page-view`: Special pages such as sale or promotion pages * viewed. - * * `completion`: Completion query result showed/clicked. * * `detail-page-view`: Products detail page viewed. * * `home-page-view`: Homepage viewed. * * `promotion-offered`: Promotion is offered to a user. @@ -328,6 +326,7 @@ public interface UserEventOrBuilder * * `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 @@ -349,6 +348,7 @@ public interface UserEventOrBuilder * * `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 @@ -370,6 +370,7 @@ public interface UserEventOrBuilder * * `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 @@ -391,6 +392,7 @@ public interface UserEventOrBuilder * * `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 @@ -413,6 +415,7 @@ public interface UserEventOrBuilder * * `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 @@ -430,10 +433,9 @@ public interface UserEventOrBuilder * * *
    -   * The main completion details related to the event.
    -   * In a `completion` event, this field represents the completions returned to
    -   * the end user and the clicked completion by the end user. In a `search`
    -   * event, it represents the search event happens after clicking completion.
    +   * The main auto-completion details related to the event.
    +   * This field should be set for `search` event when autocomplete function is
    +   * enabled and the user clicks a suggestion for search.
        * 
    * * .google.cloud.retail.v2.CompletionDetail completion_detail = 22; @@ -445,10 +447,9 @@ public interface UserEventOrBuilder * * *
    -   * The main completion details related to the event.
    -   * In a `completion` event, this field represents the completions returned to
    -   * the end user and the clicked completion by the end user. In a `search`
    -   * event, it represents the search event happens after clicking completion.
    +   * The main auto-completion details related to the event.
    +   * This field should be set for `search` event when autocomplete function is
    +   * enabled and the user clicks a suggestion for search.
        * 
    * * .google.cloud.retail.v2.CompletionDetail completion_detail = 22; @@ -460,10 +461,9 @@ public interface UserEventOrBuilder * * *
    -   * The main completion details related to the event.
    -   * In a `completion` event, this field represents the completions returned to
    -   * the end user and the clicked completion by the end user. In a `search`
    -   * event, it represents the search event happens after clicking completion.
    +   * The main auto-completion details related to the event.
    +   * This field should be set for `search` event when autocomplete function is
    +   * enabled and the user clicks a suggestion for search.
        * 
    * * .google.cloud.retail.v2.CompletionDetail completion_detail = 22; @@ -475,12 +475,24 @@ public interface UserEventOrBuilder * *
        * Extra user event features to include in the recommendation model.
    -   * The key must be a UTF-8 encoded string with a length limit of 5,000
    -   * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    -   * For product recommendation, an example of extra user information is
    -   * traffic_channel, i.e. how user arrives at the site. Users can arrive
    -   * at the site by coming to the site directly, or coming through Google
    -   * search, and etc.
    +   * If you provide custom attributes for ingested user events, also include
    +   * them in the user events that you associate with prediction requests. Custom
    +   * attribute formatting must be consistent between imported events and events
    +   * provided with prediction requests. This lets the Retail API use
    +   * those custom attributes when training models and serving predictions, which
    +   * helps improve recommendation quality.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * The key must be a UTF-8 encoded string with a length limit of 5,000
    +   *   characters.
    +   * * For text attributes, at most 400 values are allowed. Empty values are not
    +   *   allowed. Each value must be a UTF-8 encoded string with a length limit of
    +   *   256 characters.
    +   * * For number attributes, at most 400 values are allowed.
    +   * For product recommendations, an example of extra user information is
    +   * traffic_channel, which is how a user arrives at the site. Users can arrive
    +   * at the site by coming to the site directly, coming through Google
    +   * search, or in other ways.
        * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 7; @@ -491,12 +503,24 @@ public interface UserEventOrBuilder * *
        * Extra user event features to include in the recommendation model.
    -   * The key must be a UTF-8 encoded string with a length limit of 5,000
    -   * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    -   * For product recommendation, an example of extra user information is
    -   * traffic_channel, i.e. how user arrives at the site. Users can arrive
    -   * at the site by coming to the site directly, or coming through Google
    -   * search, and etc.
    +   * If you provide custom attributes for ingested user events, also include
    +   * them in the user events that you associate with prediction requests. Custom
    +   * attribute formatting must be consistent between imported events and events
    +   * provided with prediction requests. This lets the Retail API use
    +   * those custom attributes when training models and serving predictions, which
    +   * helps improve recommendation quality.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * The key must be a UTF-8 encoded string with a length limit of 5,000
    +   *   characters.
    +   * * For text attributes, at most 400 values are allowed. Empty values are not
    +   *   allowed. Each value must be a UTF-8 encoded string with a length limit of
    +   *   256 characters.
    +   * * For number attributes, at most 400 values are allowed.
    +   * For product recommendations, an example of extra user information is
    +   * traffic_channel, which is how a user arrives at the site. Users can arrive
    +   * at the site by coming to the site directly, coming through Google
    +   * search, or in other ways.
        * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 7; @@ -510,12 +534,24 @@ public interface UserEventOrBuilder * *
        * Extra user event features to include in the recommendation model.
    -   * The key must be a UTF-8 encoded string with a length limit of 5,000
    -   * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    -   * For product recommendation, an example of extra user information is
    -   * traffic_channel, i.e. how user arrives at the site. Users can arrive
    -   * at the site by coming to the site directly, or coming through Google
    -   * search, and etc.
    +   * If you provide custom attributes for ingested user events, also include
    +   * them in the user events that you associate with prediction requests. Custom
    +   * attribute formatting must be consistent between imported events and events
    +   * provided with prediction requests. This lets the Retail API use
    +   * those custom attributes when training models and serving predictions, which
    +   * helps improve recommendation quality.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * The key must be a UTF-8 encoded string with a length limit of 5,000
    +   *   characters.
    +   * * For text attributes, at most 400 values are allowed. Empty values are not
    +   *   allowed. Each value must be a UTF-8 encoded string with a length limit of
    +   *   256 characters.
    +   * * For number attributes, at most 400 values are allowed.
    +   * For product recommendations, an example of extra user information is
    +   * traffic_channel, which is how a user arrives at the site. Users can arrive
    +   * at the site by coming to the site directly, coming through Google
    +   * search, or in other ways.
        * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 7; @@ -526,12 +562,24 @@ public interface UserEventOrBuilder * *
        * Extra user event features to include in the recommendation model.
    -   * The key must be a UTF-8 encoded string with a length limit of 5,000
    -   * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    -   * For product recommendation, an example of extra user information is
    -   * traffic_channel, i.e. how user arrives at the site. Users can arrive
    -   * at the site by coming to the site directly, or coming through Google
    -   * search, and etc.
    +   * If you provide custom attributes for ingested user events, also include
    +   * them in the user events that you associate with prediction requests. Custom
    +   * attribute formatting must be consistent between imported events and events
    +   * provided with prediction requests. This lets the Retail API use
    +   * those custom attributes when training models and serving predictions, which
    +   * helps improve recommendation quality.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * The key must be a UTF-8 encoded string with a length limit of 5,000
    +   *   characters.
    +   * * For text attributes, at most 400 values are allowed. Empty values are not
    +   *   allowed. Each value must be a UTF-8 encoded string with a length limit of
    +   *   256 characters.
    +   * * For number attributes, at most 400 values are allowed.
    +   * For product recommendations, an example of extra user information is
    +   * traffic_channel, which is how a user arrives at the site. Users can arrive
    +   * at the site by coming to the site directly, coming through Google
    +   * search, or in other ways.
        * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 7; @@ -543,12 +591,24 @@ com.google.cloud.retail.v2.CustomAttribute getAttributesOrDefault( * *
        * Extra user event features to include in the recommendation model.
    -   * The key must be a UTF-8 encoded string with a length limit of 5,000
    -   * characters. Otherwise, an INVALID_ARGUMENT error is returned.
    -   * For product recommendation, an example of extra user information is
    -   * traffic_channel, i.e. how user arrives at the site. Users can arrive
    -   * at the site by coming to the site directly, or coming through Google
    -   * search, and etc.
    +   * If you provide custom attributes for ingested user events, also include
    +   * them in the user events that you associate with prediction requests. Custom
    +   * attribute formatting must be consistent between imported events and events
    +   * provided with prediction requests. This lets the Retail API use
    +   * those custom attributes when training models and serving predictions, which
    +   * helps improve recommendation quality.
    +   * This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +   * error is returned:
    +   * * The key must be a UTF-8 encoded string with a length limit of 5,000
    +   *   characters.
    +   * * For text attributes, at most 400 values are allowed. Empty values are not
    +   *   allowed. Each value must be a UTF-8 encoded string with a length limit of
    +   *   256 characters.
    +   * * For number attributes, at most 400 values are allowed.
    +   * For product recommendations, an example of extra user information is
    +   * traffic_channel, which is how a user arrives at the site. Users can arrive
    +   * at the site by coming to the site directly, coming through Google
    +   * search, or in other ways.
        * 
    * * map<string, .google.cloud.retail.v2.CustomAttribute> attributes = 7; diff --git a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserEventServiceProto.java b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserEventServiceProto.java index e3df490c..66c3bdb0 100644 --- a/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserEventServiceProto.java +++ b/proto-google-cloud-retail-v2/src/main/java/com/google/cloud/retail/v2/UserEventServiceProto.java @@ -60,61 +60,62 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "ice.proto\022\026google.cloud.retail.v2\032\034googl" + "e/api/annotations.proto\032\027google/api/clie" + "nt.proto\032\037google/api/field_behavior.prot" - + "o\032\031google/api/httpbody.proto\032*google/clo" - + "ud/retail/v2/import_config.proto\032)google" - + "/cloud/retail/v2/purge_config.proto\032\'goo" - + "gle/cloud/retail/v2/user_event.proto\032#go" - + "ogle/longrunning/operations.proto\"h\n\025Wri" - + "teUserEventRequest\022\023\n\006parent\030\001 \001(\tB\003\340A\002\022" - + ":\n\nuser_event\030\002 \001(\0132!.google.cloud.retai" - + "l.v2.UserEventB\003\340A\002\"a\n\027CollectUserEventR" - + "equest\022\023\n\006parent\030\001 \001(\tB\003\340A\002\022\027\n\nuser_even" - + "t\030\002 \001(\tB\003\340A\002\022\013\n\003uri\030\003 \001(\t\022\013\n\003ets\030\004 \001(\003\"\376" - + "\001\n\027RejoinUserEventsRequest\022\023\n\006parent\030\001 \001" - + "(\tB\003\340A\002\022e\n\027user_event_rejoin_scope\030\002 \001(\016" - + "2D.google.cloud.retail.v2.RejoinUserEven" - + "tsRequest.UserEventRejoinScope\"g\n\024UserEv" - + "entRejoinScope\022\'\n#USER_EVENT_REJOIN_SCOP" - + "E_UNSPECIFIED\020\000\022\021\n\rJOINED_EVENTS\020\001\022\023\n\017UN" - + "JOINED_EVENTS\020\002\">\n\030RejoinUserEventsRespo" - + "nse\022\"\n\032rejoined_user_events_count\030\001 \001(\003\"" - + "\032\n\030RejoinUserEventsMetadata2\277\t\n\020UserEven" - + "tService\022\267\001\n\016WriteUserEvent\022-.google.clo" - + "ud.retail.v2.WriteUserEventRequest\032!.goo" - + "gle.cloud.retail.v2.UserEvent\"S\202\323\344\223\002M\"?/" - + "v2/{parent=projects/*/locations/*/catalo" - + "gs/*}/userEvents:write:\nuser_event\022\244\001\n\020C" - + "ollectUserEvent\022/.google.cloud.retail.v2" - + ".CollectUserEventRequest\032\024.google.api.Ht" - + "tpBody\"I\202\323\344\223\002C\022A/v2/{parent=projects/*/l" - + "ocations/*/catalogs/*}/userEvents:collec" - + "t\022\206\002\n\017PurgeUserEvents\022..google.cloud.ret" - + "ail.v2.PurgeUserEventsRequest\032\035.google.l" - + "ongrunning.Operation\"\243\001\202\323\344\223\002D\"?/v2/{pare" - + "nt=projects/*/locations/*/catalogs/*}/us" - + "erEvents:purge:\001*\312AV\n.google.cloud.retai" - + "l.v2.PurgeUserEventsResponse\022$google.clo" - + "ud.retail.v2.PurgeMetadata\022\213\002\n\020ImportUse" - + "rEvents\022/.google.cloud.retail.v2.ImportU" + + "o\032\031google/api/httpbody.proto\032\031google/api" + + "/resource.proto\032*google/cloud/retail/v2/" + + "import_config.proto\032)google/cloud/retail" + + "/v2/purge_config.proto\032\'google/cloud/ret" + + "ail/v2/user_event.proto\032#google/longrunn" + + "ing/operations.proto\"h\n\025WriteUserEventRe" + + "quest\022\023\n\006parent\030\001 \001(\tB\003\340A\002\022:\n\nuser_event" + + "\030\002 \001(\0132!.google.cloud.retail.v2.UserEven" + + "tB\003\340A\002\"a\n\027CollectUserEventRequest\022\023\n\006par" + + "ent\030\001 \001(\tB\003\340A\002\022\027\n\nuser_event\030\002 \001(\tB\003\340A\002\022" + + "\013\n\003uri\030\003 \001(\t\022\013\n\003ets\030\004 \001(\003\"\376\001\n\027RejoinUser" + + "EventsRequest\022\023\n\006parent\030\001 \001(\tB\003\340A\002\022e\n\027us" + + "er_event_rejoin_scope\030\002 \001(\0162D.google.clo" + + "ud.retail.v2.RejoinUserEventsRequest.Use" + + "rEventRejoinScope\"g\n\024UserEventRejoinScop" + + "e\022\'\n#USER_EVENT_REJOIN_SCOPE_UNSPECIFIED" + + "\020\000\022\021\n\rJOINED_EVENTS\020\001\022\023\n\017UNJOINED_EVENTS" + + "\020\002\">\n\030RejoinUserEventsResponse\022\"\n\032rejoin" + + "ed_user_events_count\030\001 \001(\003\"\032\n\030RejoinUser" + + "EventsMetadata2\277\t\n\020UserEventService\022\267\001\n\016" + + "WriteUserEvent\022-.google.cloud.retail.v2." + + "WriteUserEventRequest\032!.google.cloud.ret" + + "ail.v2.UserEvent\"S\202\323\344\223\002M\"?/v2/{parent=pr" + + "ojects/*/locations/*/catalogs/*}/userEve" + + "nts:write:\nuser_event\022\244\001\n\020CollectUserEve" + + "nt\022/.google.cloud.retail.v2.CollectUserE" + + "ventRequest\032\024.google.api.HttpBody\"I\202\323\344\223\002" + + "C\022A/v2/{parent=projects/*/locations/*/ca" + + "talogs/*}/userEvents:collect\022\206\002\n\017PurgeUs" + + "erEvents\022..google.cloud.retail.v2.PurgeU" + "serEventsRequest\032\035.google.longrunning.Op" - + "eration\"\246\001\202\323\344\223\002E\"@/v2/{parent=projects/*" - + "/locations/*/catalogs/*}/userEvents:impo" - + "rt:\001*\312AX\n/google.cloud.retail.v2.ImportU" - + "serEventsResponse\022%google.cloud.retail.v" - + "2.ImportMetadata\022\347\001\n\020RejoinUserEvents\022/." - + "google.cloud.retail.v2.RejoinUserEventsR" - + "equest\032\035.google.longrunning.Operation\"\202\001" - + "\202\323\344\223\002E\"@/v2/{parent=projects/*/locations" - + "/*/catalogs/*}/userEvents:rejoin:\001*\312A4\n\030" - + "RejoinUserEventsResponse\022\030RejoinUserEven" - + "tsMetadata\032I\312A\025retail.googleapis.com\322A.h" - + "ttps://www.googleapis.com/auth/cloud-pla" - + "tformB\312\001\n\032com.google.cloud.retail.v2B\025Us" - + "erEventServiceProtoP\001Z * Highly recommended for logged-in users. Unique identifier for logged-in * user, such as a user name. + * Always use a hashed value for this ID. * The field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. *
    @@ -166,6 +167,7 @@ public java.lang.String getUserId() { *
        * Highly recommended for logged-in users. Unique identifier for logged-in
        * user, such as a user name.
    +   * Always use a hashed value for this ID.
        * The field must be a UTF-8 encoded string with a length limit of 128
        * characters. Otherwise, an INVALID_ARGUMENT error is returned.
        * 
    @@ -193,13 +195,15 @@ public com.google.protobuf.ByteString getUserIdBytes() { * * *
    -   * The end user's IP address. Required for getting
    -   * [SearchResponse.sponsored_results][google.cloud.retail.v2.SearchResponse.sponsored_results].
    -   * This field is used to extract location information for personalization.
    +   * The end user's IP address. This field is used to extract location
    +   * information for personalization.
        * This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6
        * address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * This should not be set when using the JavaScript tag in
    +   * This should not be set when:
    +   * * setting
    +   * [SearchRequest.user_info][google.cloud.retail.v2.SearchRequest.user_info].
    +   * * using the JavaScript tag in
        * [UserEventService.CollectUserEvent][google.cloud.retail.v2.UserEventService.CollectUserEvent]
        * or if
        * [direct_user_request][google.cloud.retail.v2.UserInfo.direct_user_request]
    @@ -226,13 +230,15 @@ public java.lang.String getIpAddress() {
        *
        *
        * 
    -   * The end user's IP address. Required for getting
    -   * [SearchResponse.sponsored_results][google.cloud.retail.v2.SearchResponse.sponsored_results].
    -   * This field is used to extract location information for personalization.
    +   * The end user's IP address. This field is used to extract location
    +   * information for personalization.
        * This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6
        * address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * This should not be set when using the JavaScript tag in
    +   * This should not be set when:
    +   * * setting
    +   * [SearchRequest.user_info][google.cloud.retail.v2.SearchRequest.user_info].
    +   * * using the JavaScript tag in
        * [UserEventService.CollectUserEvent][google.cloud.retail.v2.UserEventService.CollectUserEvent]
        * or if
        * [direct_user_request][google.cloud.retail.v2.UserInfo.direct_user_request]
    @@ -715,6 +721,7 @@ public Builder mergeFrom(
          * 
          * Highly recommended for logged-in users. Unique identifier for logged-in
          * user, such as a user name.
    +     * Always use a hashed value for this ID.
          * The field must be a UTF-8 encoded string with a length limit of 128
          * characters. Otherwise, an INVALID_ARGUMENT error is returned.
          * 
    @@ -740,6 +747,7 @@ public java.lang.String getUserId() { *
          * Highly recommended for logged-in users. Unique identifier for logged-in
          * user, such as a user name.
    +     * Always use a hashed value for this ID.
          * The field must be a UTF-8 encoded string with a length limit of 128
          * characters. Otherwise, an INVALID_ARGUMENT error is returned.
          * 
    @@ -765,6 +773,7 @@ public com.google.protobuf.ByteString getUserIdBytes() { *
          * Highly recommended for logged-in users. Unique identifier for logged-in
          * user, such as a user name.
    +     * Always use a hashed value for this ID.
          * The field must be a UTF-8 encoded string with a length limit of 128
          * characters. Otherwise, an INVALID_ARGUMENT error is returned.
          * 
    @@ -789,6 +798,7 @@ public Builder setUserId(java.lang.String value) { *
          * Highly recommended for logged-in users. Unique identifier for logged-in
          * user, such as a user name.
    +     * Always use a hashed value for this ID.
          * The field must be a UTF-8 encoded string with a length limit of 128
          * characters. Otherwise, an INVALID_ARGUMENT error is returned.
          * 
    @@ -809,6 +819,7 @@ public Builder clearUserId() { *
          * Highly recommended for logged-in users. Unique identifier for logged-in
          * user, such as a user name.
    +     * Always use a hashed value for this ID.
          * The field must be a UTF-8 encoded string with a length limit of 128
          * characters. Otherwise, an INVALID_ARGUMENT error is returned.
          * 
    @@ -834,13 +845,15 @@ public Builder setUserIdBytes(com.google.protobuf.ByteString value) { * * *
    -     * The end user's IP address. Required for getting
    -     * [SearchResponse.sponsored_results][google.cloud.retail.v2.SearchResponse.sponsored_results].
    -     * This field is used to extract location information for personalization.
    +     * The end user's IP address. This field is used to extract location
    +     * information for personalization.
          * This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6
          * address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * This should not be set when using the JavaScript tag in
    +     * This should not be set when:
    +     * * setting
    +     * [SearchRequest.user_info][google.cloud.retail.v2.SearchRequest.user_info].
    +     * * using the JavaScript tag in
          * [UserEventService.CollectUserEvent][google.cloud.retail.v2.UserEventService.CollectUserEvent]
          * or if
          * [direct_user_request][google.cloud.retail.v2.UserInfo.direct_user_request]
    @@ -866,13 +879,15 @@ public java.lang.String getIpAddress() {
          *
          *
          * 
    -     * The end user's IP address. Required for getting
    -     * [SearchResponse.sponsored_results][google.cloud.retail.v2.SearchResponse.sponsored_results].
    -     * This field is used to extract location information for personalization.
    +     * The end user's IP address. This field is used to extract location
    +     * information for personalization.
          * This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6
          * address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * This should not be set when using the JavaScript tag in
    +     * This should not be set when:
    +     * * setting
    +     * [SearchRequest.user_info][google.cloud.retail.v2.SearchRequest.user_info].
    +     * * using the JavaScript tag in
          * [UserEventService.CollectUserEvent][google.cloud.retail.v2.UserEventService.CollectUserEvent]
          * or if
          * [direct_user_request][google.cloud.retail.v2.UserInfo.direct_user_request]
    @@ -898,13 +913,15 @@ public com.google.protobuf.ByteString getIpAddressBytes() {
          *
          *
          * 
    -     * The end user's IP address. Required for getting
    -     * [SearchResponse.sponsored_results][google.cloud.retail.v2.SearchResponse.sponsored_results].
    -     * This field is used to extract location information for personalization.
    +     * The end user's IP address. This field is used to extract location
    +     * information for personalization.
          * This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6
          * address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * This should not be set when using the JavaScript tag in
    +     * This should not be set when:
    +     * * setting
    +     * [SearchRequest.user_info][google.cloud.retail.v2.SearchRequest.user_info].
    +     * * using the JavaScript tag in
          * [UserEventService.CollectUserEvent][google.cloud.retail.v2.UserEventService.CollectUserEvent]
          * or if
          * [direct_user_request][google.cloud.retail.v2.UserInfo.direct_user_request]
    @@ -929,13 +946,15 @@ public Builder setIpAddress(java.lang.String value) {
          *
          *
          * 
    -     * The end user's IP address. Required for getting
    -     * [SearchResponse.sponsored_results][google.cloud.retail.v2.SearchResponse.sponsored_results].
    -     * This field is used to extract location information for personalization.
    +     * The end user's IP address. This field is used to extract location
    +     * information for personalization.
          * This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6
          * address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * This should not be set when using the JavaScript tag in
    +     * This should not be set when:
    +     * * setting
    +     * [SearchRequest.user_info][google.cloud.retail.v2.SearchRequest.user_info].
    +     * * using the JavaScript tag in
          * [UserEventService.CollectUserEvent][google.cloud.retail.v2.UserEventService.CollectUserEvent]
          * or if
          * [direct_user_request][google.cloud.retail.v2.UserInfo.direct_user_request]
    @@ -956,13 +975,15 @@ public Builder clearIpAddress() {
          *
          *
          * 
    -     * The end user's IP address. Required for getting
    -     * [SearchResponse.sponsored_results][google.cloud.retail.v2.SearchResponse.sponsored_results].
    -     * This field is used to extract location information for personalization.
    +     * The end user's IP address. This field is used to extract location
    +     * information for personalization.
          * This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6
          * address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an
          * INVALID_ARGUMENT error is returned.
    -     * This should not be set when using the JavaScript tag in
    +     * This should not be set when:
    +     * * setting
    +     * [SearchRequest.user_info][google.cloud.retail.v2.SearchRequest.user_info].
    +     * * using the JavaScript tag in
          * [UserEventService.CollectUserEvent][google.cloud.retail.v2.UserEventService.CollectUserEvent]
          * or if
          * [direct_user_request][google.cloud.retail.v2.UserInfo.direct_user_request]
    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 440e013c..cae44c7d 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
    @@ -29,6 +29,7 @@ public interface UserInfoOrBuilder
        * 
        * Highly recommended for logged-in users. Unique identifier for logged-in
        * user, such as a user name.
    +   * Always use a hashed value for this ID.
        * The field must be a UTF-8 encoded string with a length limit of 128
        * characters. Otherwise, an INVALID_ARGUMENT error is returned.
        * 
    @@ -44,6 +45,7 @@ public interface UserInfoOrBuilder *
        * Highly recommended for logged-in users. Unique identifier for logged-in
        * user, such as a user name.
    +   * Always use a hashed value for this ID.
        * The field must be a UTF-8 encoded string with a length limit of 128
        * characters. Otherwise, an INVALID_ARGUMENT error is returned.
        * 
    @@ -58,13 +60,15 @@ public interface UserInfoOrBuilder * * *
    -   * The end user's IP address. Required for getting
    -   * [SearchResponse.sponsored_results][google.cloud.retail.v2.SearchResponse.sponsored_results].
    -   * This field is used to extract location information for personalization.
    +   * The end user's IP address. This field is used to extract location
    +   * information for personalization.
        * This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6
        * address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * This should not be set when using the JavaScript tag in
    +   * This should not be set when:
    +   * * setting
    +   * [SearchRequest.user_info][google.cloud.retail.v2.SearchRequest.user_info].
    +   * * using the JavaScript tag in
        * [UserEventService.CollectUserEvent][google.cloud.retail.v2.UserEventService.CollectUserEvent]
        * or if
        * [direct_user_request][google.cloud.retail.v2.UserInfo.direct_user_request]
    @@ -80,13 +84,15 @@ public interface UserInfoOrBuilder
        *
        *
        * 
    -   * The end user's IP address. Required for getting
    -   * [SearchResponse.sponsored_results][google.cloud.retail.v2.SearchResponse.sponsored_results].
    -   * This field is used to extract location information for personalization.
    +   * The end user's IP address. This field is used to extract location
    +   * information for personalization.
        * This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6
        * address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an
        * INVALID_ARGUMENT error is returned.
    -   * This should not be set when using the JavaScript tag in
    +   * This should not be set when:
    +   * * setting
    +   * [SearchRequest.user_info][google.cloud.retail.v2.SearchRequest.user_info].
    +   * * using the JavaScript tag in
        * [UserEventService.CollectUserEvent][google.cloud.retail.v2.UserEventService.CollectUserEvent]
        * or if
        * [direct_user_request][google.cloud.retail.v2.UserInfo.direct_user_request]
    diff --git a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/catalog_service.proto b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/catalog_service.proto
    index 41523ac8..ec7a23a8 100644
    --- a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/catalog_service.proto
    +++ b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/catalog_service.proto
    @@ -91,10 +91,6 @@ service CatalogService {
       //   (if branch is not explicitly set).
       // * UserEventService will only join events with products from branch
       //   {newBranch}.
    -  //
    -  // This feature is only available for users who have Retail Search enabled.
    -  // Please submit a form [here](https://cloud.google.com/contact) to contact
    -  // cloud sales if you are interested in using Retail Search.
       rpc SetDefaultBranch(SetDefaultBranchRequest)
           returns (google.protobuf.Empty) {
         option (google.api.http) = {
    @@ -107,10 +103,6 @@ service CatalogService {
       // Get which branch is currently default branch set by
       // [CatalogService.SetDefaultBranch][google.cloud.retail.v2.CatalogService.SetDefaultBranch]
       // method under a specified parent catalog.
    -  //
    -  // This feature is only available for users who have Retail Search enabled.
    -  // Please submit a form [here](https://cloud.google.com/contact) to contact
    -  // cloud sales if you are interested in using Retail Search.
       rpc GetDefaultBranch(GetDefaultBranchRequest)
           returns (GetDefaultBranchResponse) {
         option (google.api.http) = {
    @@ -205,6 +197,10 @@ message SetDefaultBranchRequest {
       //
       // This field must be one of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT
       // error is returned.
    +  //
    +  // If there are no sufficient active products in the targeted branch and
    +  // [force][google.cloud.retail.v2.SetDefaultBranchRequest.force] is not set, a
    +  // FAILED_PRECONDITION error is returned.
       string branch_id = 2 [
         (google.api.resource_reference) = { type: "retail.googleapis.com/Branch" }
       ];
    @@ -216,6 +212,11 @@ message SetDefaultBranchRequest {
       // This field must be a UTF-8 encoded string with a length limit of 1,000
       // characters. Otherwise, an INVALID_ARGUMENT error is returned.
       string note = 3;
    +
    +  // If set to true, it permits switching to a branch with
    +  // [branch_id][google.cloud.retail.v2.SetDefaultBranchRequest.branch_id] even
    +  // if it has no sufficient active products.
    +  bool force = 4;
     }
     
     // Request message to show which branch is currently the default branch.
    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 9f0e1fc1..733b8cca 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
    @@ -99,9 +99,8 @@ message CustomAttribute {
       // The textual values of this custom attribute. For example, `["yellow",
       // "green"]` when the key is "color".
       //
    -  // At most 400 values are allowed. Empty values are not allowed. Each value
    -  // must be a UTF-8 encoded string with a length limit of 256 characters.
    -  // Otherwise, an INVALID_ARGUMENT error is returned.
    +  // Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is
    +  // returned.
       //
       // Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
       // [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
    @@ -111,15 +110,16 @@ message CustomAttribute {
       // The numerical values of this custom attribute. For example, `[2.3, 15.4]`
       // when the key is "lengths_cm".
       //
    -  // At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
    -  // returned.
    -  //
       // Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
       // [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
       // Otherwise, an INVALID_ARGUMENT error is returned.
       repeated double numbers = 2;
     
    -  // If true, custom attribute values are searchable by text queries in
    +  // This field will only be used when
    +  // [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
       // [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
       //
       // This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
    @@ -128,8 +128,11 @@ message CustomAttribute {
       // set. Otherwise, a INVALID_ARGUMENT error is returned.
       optional bool searchable = 3;
     
    -  // If true, custom attribute values are indexed, so that it can be filtered,
    -  // faceted or boosted in
    +  // This field will only be used when
    +  // [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
       // [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
       //
       // This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
    @@ -178,7 +181,10 @@ message FulfillmentInfo {
       repeated string place_ids = 2;
     }
     
    -// [Product][google.cloud.retail.v2.Product] thumbnail/detail image.
    +// [Product][google.cloud.retail.v2.Product] image. Recommendations AI and
    +// Retail Search do not use product images to improve prediction and search
    +// results. However, product images can be returned in results, and are shown in
    +// prediction or search previews in the console.
     message Image {
       // Required. URI of the image.
       //
    @@ -274,7 +280,7 @@ message PriceInfo {
       //
       // Google Merchant Center property
       // [price](https://support.google.com/merchants/answer/6324371). Schema.org
    -  // property [Offer.priceSpecification](https://schema.org/priceSpecification).
    +  // property [Offer.price](https://schema.org/price).
       float price = 2;
     
       // Price of the product without any discount. If zero, by default set to be
    @@ -364,19 +370,24 @@ message UserInfo {
       // Highly recommended for logged-in users. Unique identifier for logged-in
       // user, such as a user name.
       //
    +  // Always use a hashed value for this 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 user_id = 1;
     
    -  // The end user's IP address. Required for getting
    -  // [SearchResponse.sponsored_results][google.cloud.retail.v2.SearchResponse.sponsored_results].
    -  // This field is used to extract location information for personalization.
    +  // The end user's IP address. This field is used to extract location
    +  // information for personalization.
       //
       // This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6
       // address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an
       // INVALID_ARGUMENT error is returned.
       //
    -  // This should not be set when using the JavaScript tag in
    +  // This should not be set when:
    +  //
    +  // * setting
    +  // [SearchRequest.user_info][google.cloud.retail.v2.SearchRequest.user_info].
    +  // * using the JavaScript tag in
       // [UserEventService.CollectUserEvent][google.cloud.retail.v2.UserEventService.CollectUserEvent]
       // or if
       // [direct_user_request][google.cloud.retail.v2.UserInfo.direct_user_request]
    @@ -409,16 +420,60 @@ message UserInfo {
       bool direct_user_request = 4;
     }
     
    -// Promotion information.
    -message Promotion {
    -  // ID of the promotion. For example, "free gift".
    -  //
    -  // The value value must be a UTF-8 encoded string with a length limit of 128
    -  // characters, and match the pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example,
    -  // id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is
    -  // returned.
    +// The inventory information at a place (e.g. a store) identified
    +// by a place ID.
    +message LocalInventory {
    +  // The place ID for the current set of inventory information.
    +  string place_id = 1;
    +
    +  // Product price and cost information.
       //
       // Google Merchant Center property
    -  // [promotion](https://support.google.com/merchants/answer/7050148).
    -  string promotion_id = 1;
    +  // [price](https://support.google.com/merchants/answer/6324371).
    +  PriceInfo price_info = 2;
    +
    +  // Additional local inventory attributes, for example, store name, promotion
    +  // tags, etc.
    +  //
    +  // This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +  // error is returned:
    +  //
    +  // * At most 30 attributes are allowed.
    +  // * The key must be a UTF-8 encoded string with a length limit of 32
    +  //   characters.
    +  // * The key must match the pattern: `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example,
    +  //   key0LikeThis or KEY_1_LIKE_THIS.
    +  // * The attribute values must be of the same type (text or number).
    +  // * Only 1 value is allowed for each attribute.
    +  // * For text values, the length limit is 256 UTF-8 characters.
    +  // * The attribute does not support search. The `searchable` field should be
    +  //   unset or set to false.
    +  // * The max summed total bytes of custom attribute keys and values per
    +  //   product is 5MiB.
    +  map attributes = 3;
    +
    +  // Input only. Supported fulfillment types. Valid fulfillment type values
    +  // include commonly used types (such as pickup in store and same day
    +  // delivery), and custom types. Customers have to map custom types to their
    +  // display names before rendering UI.
    +  //
    +  // Supported values:
    +  //
    +  // * "pickup-in-store"
    +  // * "ship-to-store"
    +  // * "same-day-delivery"
    +  // * "next-day-delivery"
    +  // * "custom-type-1"
    +  // * "custom-type-2"
    +  // * "custom-type-3"
    +  // * "custom-type-4"
    +  // * "custom-type-5"
    +  //
    +  // If this field is set to an invalid value other than these, an
    +  // INVALID_ARGUMENT error is returned.
    +  //
    +  // All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is
    +  // returned.
    +  repeated string fulfillment_types = 4
    +      [(google.api.field_behavior) = INPUT_ONLY];
     }
    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 f17db9fa..5e7e9a6c 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
    @@ -36,8 +36,7 @@ option ruby_package = "Google::Cloud::Retail::V2";
     // Auto-completion service for retail.
     //
     // This feature is only available for users who have Retail Search enabled.
    -// Please submit a form [here](https://cloud.google.com/contact) to contact
    -// cloud sales if you are interested in using Retail Search.
    +// Please enable Retail Search on Cloud Console before using this feature.
     service CompletionService {
       option (google.api.default_host) = "retail.googleapis.com";
       option (google.api.oauth_scopes) =
    @@ -46,8 +45,7 @@ service CompletionService {
       // Completes the specified prefix with keyword suggestions.
       //
       // This feature is only available for users who have Retail Search enabled.
    -  // Please submit a form [here](https://cloud.google.com/contact) to contact
    -  // cloud sales if you are interested in using Retail Search.
    +  // Please enable Retail Search on Cloud Console before using this feature.
       rpc CompleteQuery(CompleteQueryRequest) returns (CompleteQueryResponse) {
         option (google.api.http) = {
           get: "/v2/{catalog=projects/*/locations/*/catalogs/*}:completeQuery"
    @@ -56,11 +54,13 @@ service CompletionService {
     
       // Bulk import of processed completion dataset.
       //
    -  // Request processing may be synchronous. Partial updating is not supported.
    +  // Request processing is asynchronous. Partial updating is not supported.
    +  //
    +  // The operation is successfully finished only after the imported suggestions
    +  // are indexed successfully and ready for serving. The process takes hours.
       //
       // This feature is only available for users who have Retail Search enabled.
    -  // Please submit a form [here](https://cloud.google.com/contact) to contact
    -  // cloud sales if you are interested in using Retail Search.
    +  // Please enable Retail Search on Cloud Console before using this feature.
       rpc ImportCompletionData(ImportCompletionDataRequest)
           returns (google.longrunning.Operation) {
         option (google.api.http) = {
    @@ -90,22 +90,21 @@ message CompleteQueryRequest {
       // The maximum number of allowed characters is 255.
       string query = 2 [(google.api.field_behavior) = 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.
    +  // Required field. 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.
       //
       // 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 = 7;
     
    -  // The list of languages of the query. This is
    -  // the BCP-47 language code, such as "en-US" or "sr-Latn".
    -  // For more information, see
    -  // [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
    -  //
    -  // The maximum number of allowed characters is 255.
    -  // Only "en-US" is currently supported.
    +  // The language filters applied to the output suggestions. If set, it should
    +  // contain the language of the query. If not set, suggestions are returned
    +  // without considering language restrictions. This is the BCP-47 language
    +  // code, such as "en-US" or "sr-Latn". For more information, see [Tags for
    +  // Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum
    +  // number of language codes is 3.
       repeated string language_codes = 3;
     
       // The device type context for completion suggestions.
    @@ -154,7 +153,11 @@ message CompleteQueryResponse {
         // The suggestion for the query.
         string suggestion = 1;
     
    -    // Additional custom attributes ingested through BigQuery.
    +    // 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.
         map attributes = 2;
       }
     
    @@ -169,9 +172,9 @@ message CompleteQueryResponse {
       repeated CompletionResult completion_results = 1;
     
       // A unique complete token. This should be included in the
    -  // [SearchRequest][google.cloud.retail.v2.SearchRequest] resulting from this
    -  // completion, which enables accurate attribution of complete model
    -  // performance.
    +  // [UserEvent.completion_detail][google.cloud.retail.v2.UserEvent.completion_detail]
    +  // for search events resulting from this completion, which enables accurate
    +  // attribution of complete model performance.
       string attribution_token = 2;
     
       // Matched recent searches of this user. The maximum number of recent searches
    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 770a93ea..74cec22a 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
    @@ -63,6 +63,14 @@ message GcsSource {
       // [UserEvent][google.cloud.retail.v2.UserEvent] per line.
       // * `user_event_ga360`: Using
       //   https://support.google.com/analytics/answer/3437719.
    +  //
    +  // Supported values for control imports:
    +  //
    +  // * 'control' (default): One JSON [Control][] per line.
    +  //
    +  // Supported values for catalog attribute imports:
    +  //
    +  // * 'catalog_attribute' (default): One CSV [CatalogAttribute][] per line.
       string data_schema = 2;
     }
     
    @@ -111,8 +119,19 @@ message BigQuerySource {
       //
       // * `user_event` (default): One JSON
       // [UserEvent][google.cloud.retail.v2.UserEvent] per line.
    -  // * `user_event_ga360`: Using
    +  // * `user_event_ga360`:
    +  //   The schema is available here:
       //   https://support.google.com/analytics/answer/3437719.
    +  // * `user_event_ga4`: This feature is in private preview. Please contact the
    +  //   support team for importing Google Analytics 4 events.
    +  //   The schema is available here:
    +  //   https://support.google.com/analytics/answer/7029846.
    +  //
    +  // Supported values for auto-completion imports:
    +  //
    +  // * `suggestions` (default): One JSON completion suggestion per line.
    +  // * `denylist`:  One JSON deny suggestion per line.
    +  // * `allowlist`:  One JSON allow suggestion per line.
       string data_schema = 4;
     }
     
    @@ -134,9 +153,9 @@ message UserEventInlineSource {
     message ImportErrorsConfig {
       // Required. Errors destination.
       oneof destination {
    -    // Google Cloud Storage path for import errors. This must be an empty,
    -    // existing Cloud Storage bucket. Import errors will be written to a file in
    -    // this bucket, one per line, as a JSON-encoded
    +    // Google Cloud Storage prefix for import errors. This must be an empty,
    +    // existing Cloud Storage directory. Import errors will be written to
    +    // sharded files in this directory, one per line, as a JSON-encoded
         // `google.rpc.Status` message.
         string gcs_prefix = 1;
       }
    @@ -156,16 +175,14 @@ message ImportProductsRequest {
         // Calculates diff and replaces the entire product dataset. Existing
         // products may be deleted if they are not present in the source location.
         //
    -    // Can only be while using
    -    // [BigQuerySource][google.cloud.retail.v2.BigQuerySource].
    +    // Can only be set while using
    +    // [BigQuerySource][google.cloud.retail.v2.BigQuerySource]. And the BigQuery
    +    // dataset must be created in the data location "us (multiple regions in
    +    // United States)", otherwise a PERMISSION_DENIED error is thrown.
         //
         // Add the IAM permission "BigQuery Data Viewer" for
         // cloud-retail-customer-data-access@system.gserviceaccount.com before
         // using this feature otherwise an error is thrown.
    -    //
    -    // This feature is only available for users who have Retail Search enabled.
    -    // Please submit a form [here](https://cloud.google.com/contact) to contact
    -    // cloud sales if you are interested in using Retail Search.
         FULL = 2;
       }
     
    @@ -179,16 +196,8 @@ message ImportProductsRequest {
         (google.api.resource_reference) = { type: "retail.googleapis.com/Branch" }
       ];
     
    -  // Unique identifier provided by client, within the ancestor
    -  // dataset scope. Ensures idempotency and used for request deduplication.
    -  // Server-generated if unspecified. Up to 128 characters long and must match
    -  // the pattern: `[a-zA-Z0-9_]+`. This is returned as [Operation.name][] in
    -  // [ImportMetadata][google.cloud.retail.v2.ImportMetadata].
    -  //
    -  // Only supported when
    -  // [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode]
    -  // is set to `FULL`.
    -  string request_id = 6;
    +  // Deprecated. This field has no effect.
    +  string request_id = 6 [deprecated = true];
     
       // Required. The desired input location of the data.
       ProductInputConfig input_config = 2 [(google.api.field_behavior) = REQUIRED];
    @@ -326,9 +335,8 @@ message ImportMetadata {
       // Count of entries that encountered errors while processing.
       int64 failure_count = 4;
     
    -  // Id of the request / operation. This is parroting back the requestId
    -  // that was passed in the request.
    -  string request_id = 5;
    +  // Deprecated. This field is never set.
    +  string request_id = 5 [deprecated = true];
     
       // Pub/Sub topic for receiving notification. If this field is set,
       // when the import is finished, a notification will be sent to
    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 da588a03..061db142 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
    @@ -97,9 +97,12 @@ message PredictRequest {
       //  * filterOutOfStockItems  tag=(-"promotional")
       //  * filterOutOfStockItems
       //
    -  // If your filter blocks all prediction results, nothing will be returned. If
    -  // you want generic (unfiltered) popular products to be returned instead, set
    -  // `strictFiltering` to false in `PredictRequest.params`.
    +  // If your filter blocks all prediction results, the API will return generic
    +  // (unfiltered) popular products. If you only want results strictly matching
    +  // the filters, set `strictFiltering` to True in `PredictRequest.params` to
    +  // receive empty results instead.
    +  // Note that the API will never return items with storageStatus of "EXPIRED"
    +  // or "DELETED" regardless of filter choices.
       string filter = 5;
     
       // Use validate only mode for this prediction query. If set to true, a
    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 3bec3b06..ea861fb6 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
    @@ -19,6 +19,7 @@ package google.cloud.retail.v2;
     import "google/api/field_behavior.proto";
     import "google/api/resource.proto";
     import "google/cloud/retail/v2/common.proto";
    +import "google/cloud/retail/v2/promotion.proto";
     import "google/protobuf/duration.proto";
     import "google/protobuf/field_mask.proto";
     import "google/protobuf/timestamp.proto";
    @@ -119,7 +120,7 @@ message Product {
         // [publish_time][google.cloud.retail.v2.Product.publish_time], otherwise an
         // INVALID_ARGUMENT error is thrown.
         //
    -    // Google Merchant Center property
    +    // Corresponding properties: Google Merchant Center property
         // [expiration_date](https://support.google.com/merchants/answer/6324499).
         google.protobuf.Timestamp expire_time = 16;
     
    @@ -156,9 +157,9 @@ message Product {
       // This field must be a UTF-8 encoded string with a length limit of 128
       // characters. Otherwise, an INVALID_ARGUMENT error is returned.
       //
    -  // Google Merchant Center property
    +  // Corresponding properties: Google Merchant Center property
       // [id](https://support.google.com/merchants/answer/6324405). Schema.org
    -  // Property [Product.sku](https://schema.org/sku).
    +  // property [Product.sku](https://schema.org/sku).
       string id = 2 [(google.api.field_behavior) = IMMUTABLE];
     
       // Immutable. The type of the product. Default to
    @@ -180,21 +181,23 @@ message Product {
       // [Product][google.cloud.retail.v2.Product]. Otherwise, an INVALID_ARGUMENT
       // error is returned.
       //
    -  // Google Merchant Center Property
    +  // Corresponding properties: Google Merchant Center property
       // [item_group_id](https://support.google.com/merchants/answer/6324507).
    -  // Schema.org Property
    +  // Schema.org property
       // [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID).
    -  //
    -  // This field must be enabled before it can be used. [Learn
    -  // more](/recommendations-ai/docs/catalog#item-group-id).
       string primary_product_id = 4;
     
       // The [id][google.cloud.retail.v2.Product.id] of the collection members when
       // [type][google.cloud.retail.v2.Product.type] is
       // [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION].
       //
    -  // Should not set it for other types. A maximum of 1000 values are allowed.
    -  // Otherwise, an INVALID_ARGUMENT error is return.
    +  // Non-existent product ids are allowed.
    +  // The [type][google.cloud.retail.v2.Product.type] of the members must be
    +  // either [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] or
    +  // [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] otherwise and
    +  // INVALID_ARGUMENT error is thrown. Should not set it for other types. A
    +  // maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is
    +  // return.
       repeated string collection_member_ids = 5;
     
       // The Global Trade Item Number (GTIN) of the product.
    @@ -205,13 +208,13 @@ message Product {
       // This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is
       // returned.
       //
    -  // Google Merchant Center property
    +  // Corresponding properties: Google Merchant Center property
       // [gtin](https://support.google.com/merchants/answer/6324461).
       // Schema.org property
    -  // [Product.isbn](https://schema.org/isbn) or
    -  // [Product.gtin8](https://schema.org/gtin8) or
    -  // [Product.gtin12](https://schema.org/gtin12) or
    -  // [Product.gtin13](https://schema.org/gtin13) or
    +  // [Product.isbn](https://schema.org/isbn),
    +  // [Product.gtin8](https://schema.org/gtin8),
    +  // [Product.gtin12](https://schema.org/gtin12),
    +  // [Product.gtin13](https://schema.org/gtin13), or
       // [Product.gtin14](https://schema.org/gtin14).
       //
       // If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.
    @@ -245,7 +248,7 @@ message Product {
       // Each value must be a UTF-8 encoded string with a length limit of 5,000
       // characters. Otherwise, an INVALID_ARGUMENT error is returned.
       //
    -  // Google Merchant Center property
    +  // Corresponding properties: Google Merchant Center property
       // [google_product_category][mc_google_product_category]. Schema.org property
       // [Product.category] (https://schema.org/category).
       //
    @@ -258,7 +261,7 @@ message Product {
       // This field must be a UTF-8 encoded string with a length limit of 1,000
       // characters. Otherwise, an INVALID_ARGUMENT error is returned.
       //
    -  // Google Merchant Center property
    +  // Corresponding properties: Google Merchant Center property
       // [title](https://support.google.com/merchants/answer/6324415). Schema.org
       // property [Product.name](https://schema.org/name).
       string title = 8 [(google.api.field_behavior) = REQUIRED];
    @@ -269,7 +272,7 @@ message Product {
       // string with a length limit of 1,000 characters. Otherwise, an
       // INVALID_ARGUMENT error is returned.
       //
    -  // Google Merchant Center property
    +  // Corresponding properties: Google Merchant Center property
       // [brand](https://support.google.com/merchants/answer/6324351). Schema.org
       // property [Product.brand](https://schema.org/brand).
       repeated string brands = 9;
    @@ -279,13 +282,13 @@ message Product {
       // This field must be a UTF-8 encoded string with a length limit of 5,000
       // characters. Otherwise, an INVALID_ARGUMENT error is returned.
       //
    -  // Google Merchant Center property
    +  // Corresponding properties: Google Merchant Center property
       // [description](https://support.google.com/merchants/answer/6324468).
    -  // schema.org property [Product.description](https://schema.org/description).
    +  // Schema.org property [Product.description](https://schema.org/description).
       string description = 10;
     
       // Language of the title/description and other string attributes. Use language
    -  // tags defined by [BCP 47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt].
    +  // tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
       //
       // For product prediction, this field is ignored and the model automatically
       // detects the text language. The [Product][google.cloud.retail.v2.Product]
    @@ -319,7 +322,12 @@ message Product {
       // * The key must be a UTF-8 encoded string with a length limit of 128
       //   characters.
       // * For indexable attribute, the key must match the pattern:
    -  //   `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, key0LikeThis or KEY_1_LIKE_THIS.
    +  //   `[a-zA-Z0-9][a-zA-Z0-9_]*`. For example, `key0LikeThis` or
    +  //   `KEY_1_LIKE_THIS`.
    +  // * For text attributes, at most 400 values are allowed. Empty values are not
    +  //   allowed. Each value must be a non-empty UTF-8 encoded string with a
    +  //   length limit of 256 characters.
    +  // * For number attributes, at most 400 values are allowed.
       map attributes = 12;
     
       // Custom tags associated with the product.
    @@ -333,13 +341,13 @@ message Product {
       // tag as part of the
       // [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter].
       //
    -  // Google Merchant Center property
    +  // Corresponding properties: Google Merchant Center property
       // [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
       repeated string tags = 13;
     
       // Product price and cost information.
       //
    -  // Google Merchant Center property
    +  // Corresponding properties: Google Merchant Center property
       // [price](https://support.google.com/merchants/answer/6324371).
       PriceInfo price_info = 14;
     
    @@ -355,9 +363,9 @@ message Product {
       // Default to
       // [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK].
       //
    -  // Google Merchant Center Property
    +  // Corresponding properties: Google Merchant Center property
       // [availability](https://support.google.com/merchants/answer/6324448).
    -  // Schema.org Property [Offer.availability](https://schema.org/availability).
    +  // Schema.org property [Offer.availability](https://schema.org/availability).
       Availability availability = 19;
     
       // The available quantity of the item.
    @@ -379,17 +387,17 @@ message Product {
       // This field must be a UTF-8 encoded string with a length limit of 5,000
       // characters. Otherwise, an INVALID_ARGUMENT error is returned.
       //
    -  // Google Merchant Center property
    +  // Corresponding properties: Google Merchant Center property
       // [link](https://support.google.com/merchants/answer/6324416). Schema.org
       // property [Offer.url](https://schema.org/url).
       string uri = 22;
     
    -  // Product images for the product.Highly recommended to put the main image
    -  // to the first.
    +  // Product images for the product. We highly recommend putting the main
    +  // image first.
       //
       // A maximum of 300 images are allowed.
       //
    -  // Google Merchant Center property
    +  // Corresponding properties: Google Merchant Center property
       // [image_link](https://support.google.com/merchants/answer/6324350).
       // Schema.org property [Product.image](https://schema.org/image).
       repeated Image images = 23;
    @@ -400,7 +408,7 @@ message Product {
     
       // The color of the product.
       //
    -  // Google Merchant Center property
    +  // Corresponding properties: Google Merchant Center property
       // [color](https://support.google.com/merchants/answer/6324487). Schema.org
       // property [Product.color](https://schema.org/color).
       ColorInfo color_info = 25;
    @@ -418,9 +426,9 @@ message Product {
       // encoded string with a length limit of 128 characters. Otherwise, an
       // INVALID_ARGUMENT error is returned.
       //
    -  // Google Merchant Center property
    +  // Corresponding properties: Google Merchant Center property
       // [size](https://support.google.com/merchants/answer/6324492),
    -  // [size_type](https://support.google.com/merchants/answer/6324497) and
    +  // [size_type](https://support.google.com/merchants/answer/6324497), and
       // [size_system](https://support.google.com/merchants/answer/6324502).
       // Schema.org property [Product.size](https://schema.org/size).
       repeated string sizes = 26;
    @@ -428,10 +436,10 @@ message Product {
       // The material of the product. For example, "leather", "wooden".
       //
       // A maximum of 20 values are allowed. Each value must be a UTF-8 encoded
    -  // string with a length limit of 128 characters. Otherwise, an
    +  // string with a length limit of 200 characters. Otherwise, an
       // INVALID_ARGUMENT error is returned.
       //
    -  // Google Merchant Center property
    +  // Corresponding properties: Google Merchant Center property
       // [material](https://support.google.com/merchants/answer/6324410). Schema.org
       // property [Product.material](https://schema.org/material).
       repeated string materials = 27;
    @@ -444,7 +452,7 @@ message Product {
       // encoded string with a length limit of 128 characters. Otherwise, an
       // INVALID_ARGUMENT error is returned.
       //
    -  // Google Merchant Center property
    +  // Corresponding properties: Google Merchant Center property
       // [pattern](https://support.google.com/merchants/answer/6324483). Schema.org
       // property [Product.pattern](https://schema.org/pattern).
       repeated string patterns = 28;
    @@ -452,19 +460,21 @@ message Product {
       // The condition of the product. Strongly encouraged to use the standard
       // values: "new", "refurbished", "used".
       //
    -  // A maximum of 5 values are allowed per
    +  // A maximum of 1 value is allowed per
       // [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8
       // encoded string with a length limit of 128 characters. Otherwise, an
       // INVALID_ARGUMENT error is returned.
       //
    -  // Google Merchant Center property
    +  // Corresponding properties: Google Merchant Center property
       // [condition](https://support.google.com/merchants/answer/6324469).
       // Schema.org property
       // [Offer.itemCondition](https://schema.org/itemCondition).
       repeated string conditions = 29;
     
       // The promotions applied to the product. A maximum of 10 values are allowed
    -  // per [Product][google.cloud.retail.v2.Product].
    +  // per [Product][google.cloud.retail.v2.Product]. Only
    +  // [Promotion.promotion_id][google.cloud.retail.v2.Promotion.promotion_id]
    +  // will be used, other fields will be ignored if set.
       repeated Promotion promotions = 34;
     
       // The timestamp when the product is published by the retailer for the first
    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 ca157d89..71319834 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
    @@ -20,6 +20,7 @@ import "google/api/annotations.proto";
     import "google/api/client.proto";
     import "google/api/field_behavior.proto";
     import "google/api/resource.proto";
    +import "google/cloud/retail/v2/common.proto";
     import "google/cloud/retail/v2/import_config.proto";
     import "google/cloud/retail/v2/product.proto";
     import "google/longrunning/operations.proto";
    @@ -132,7 +133,8 @@ service ProductService {
       // [CreateProductRequest.product][google.cloud.retail.v2.CreateProductRequest.product],
       // then any pre-existing inventory information for this product will be used.
       //
    -  // If no inventory fields are set in [UpdateProductRequest.set_mask][],
    +  // If no inventory fields are set in
    +  // [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask],
       // then any existing inventory information will be preserved.
       //
       // Pre-existing inventory information can only be updated with
    @@ -142,8 +144,7 @@ service ProductService {
       // [RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces].
       //
       // This feature is only available for users who have Retail Search enabled.
    -  // Please submit a form [here](https://cloud.google.com/contact) to contact
    -  // cloud sales if you are interested in using Retail Search.
    +  // Please enable Retail Search on Cloud Console before using this feature.
       rpc SetInventory(SetInventoryRequest) returns (google.longrunning.Operation) {
         option (google.api.http) = {
           post: "/v2/{inventory.name=projects/*/locations/*/catalogs/*/branches/*/products/**}:setInventory"
    @@ -169,8 +170,7 @@ service ProductService {
       // [ListProducts][google.cloud.retail.v2.ProductService.ListProducts].
       //
       // This feature is only available for users who have Retail Search enabled.
    -  // Please submit a form [here](https://cloud.google.com/contact) to contact
    -  // cloud sales if you are interested in using Retail Search.
    +  // Please enable Retail Search on Cloud Console before using this feature.
       rpc AddFulfillmentPlaces(AddFulfillmentPlacesRequest)
           returns (google.longrunning.Operation) {
         option (google.api.http) = {
    @@ -197,8 +197,7 @@ service ProductService {
       // [ListProducts][google.cloud.retail.v2.ProductService.ListProducts].
       //
       // This feature is only available for users who have Retail Search enabled.
    -  // Please submit a form [here](https://cloud.google.com/contact) to contact
    -  // cloud sales if you are interested in using Retail Search.
    +  // Please enable Retail Search on Cloud Console before using this feature.
       rpc RemoveFulfillmentPlaces(RemoveFulfillmentPlacesRequest)
           returns (google.longrunning.Operation) {
         option (google.api.http) = {
    @@ -211,6 +210,70 @@ service ProductService {
           metadata_type: "google.cloud.retail.v2.RemoveFulfillmentPlacesMetadata"
         };
       }
    +
    +  // Updates local inventory information for a
    +  // [Product][google.cloud.retail.v2.Product] at a list of places, while
    +  // respecting the last update timestamps of each inventory field.
    +  //
    +  // This process is asynchronous and does not require the
    +  // [Product][google.cloud.retail.v2.Product] to exist before updating
    +  // inventory information. If the request is valid, the update will be enqueued
    +  // and processed downstream. As a consequence, when a response is returned,
    +  // updates are not immediately manifested in the
    +  // [Product][google.cloud.retail.v2.Product] queried by
    +  // [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or
    +  // [ListProducts][google.cloud.retail.v2.ProductService.ListProducts].
    +  //
    +  // Local inventory information can only be modified using this method.
    +  // [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and
    +  // [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no
    +  // effect on local inventories.
    +  //
    +  // This feature is only available for users who have Retail Search enabled.
    +  // Please enable Retail Search on Cloud Console before using this feature.
    +  rpc AddLocalInventories(AddLocalInventoriesRequest)
    +      returns (google.longrunning.Operation) {
    +    option (google.api.http) = {
    +      post: "/v2/{product=projects/*/locations/*/catalogs/*/branches/*/products/**}:addLocalInventories"
    +      body: "*"
    +    };
    +    option (google.api.method_signature) = "product";
    +    option (google.longrunning.operation_info) = {
    +      response_type: "google.cloud.retail.v2.AddLocalInventoriesResponse"
    +      metadata_type: "google.cloud.retail.v2.AddLocalInventoriesMetadata"
    +    };
    +  }
    +
    +  // Remove local inventory information for a
    +  // [Product][google.cloud.retail.v2.Product] at a list of places at a removal
    +  // timestamp.
    +  //
    +  // This process is asynchronous. If the request is valid, the removal will be
    +  // enqueued and processed downstream. As a consequence, when a response is
    +  // returned, removals are not immediately manifested in the
    +  // [Product][google.cloud.retail.v2.Product] queried by
    +  // [GetProduct][google.cloud.retail.v2.ProductService.GetProduct] or
    +  // [ListProducts][google.cloud.retail.v2.ProductService.ListProducts].
    +  //
    +  // Local inventory information can only be removed using this method.
    +  // [CreateProduct][google.cloud.retail.v2.ProductService.CreateProduct] and
    +  // [UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct] has no
    +  // effect on local inventories.
    +  //
    +  // This feature is only available for users who have Retail Search enabled.
    +  // Please enable Retail Search on Cloud Console before using this feature.
    +  rpc RemoveLocalInventories(RemoveLocalInventoriesRequest)
    +      returns (google.longrunning.Operation) {
    +    option (google.api.http) = {
    +      post: "/v2/{product=projects/*/locations/*/catalogs/*/branches/*/products/**}:removeLocalInventories"
    +      body: "*"
    +    };
    +    option (google.api.method_signature) = "product";
    +    option (google.longrunning.operation_info) = {
    +      response_type: "google.cloud.retail.v2.RemoveLocalInventoriesResponse"
    +      metadata_type: "google.cloud.retail.v2.RemoveLocalInventoriesMetadata"
    +    };
    +  }
     }
     
     // Request message for [CreateProduct][] method.
    @@ -448,6 +511,24 @@ message SetInventoryRequest {
       // provided or default value for
       // [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time].
       //
    +  // The caller can replace place IDs for a subset of fulfillment types in the
    +  // following ways:
    +  //
    +  // * Adds "fulfillment_info" in
    +  // [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
    +  // * Specifies only the desired fulfillment types and corresponding place IDs
    +  // to update in [SetInventoryRequest.inventory.fulfillment_info][]
    +  //
    +  // The caller can clear all place IDs from a subset of fulfillment types in
    +  // the following ways:
    +  //
    +  // * Adds "fulfillment_info" in
    +  // [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
    +  // * Specifies only the desired fulfillment types to clear in
    +  // [SetInventoryRequest.inventory.fulfillment_info][]
    +  // * Checks that only the desired fulfillment info types have empty
    +  // [SetInventoryRequest.inventory.fulfillment_info.place_ids][]
    +  //
       // The last update time is recorded for the following inventory fields:
       // * [Product.price_info][google.cloud.retail.v2.Product.price_info]
       // * [Product.availability][google.cloud.retail.v2.Product.availability]
    @@ -459,8 +540,9 @@ message SetInventoryRequest {
       Product inventory = 1 [(google.api.field_behavior) = REQUIRED];
     
       // Indicates which inventory fields in the provided
    -  // [Product][google.cloud.retail.v2.Product] to update. If not set or set with
    -  // empty paths, all inventory fields will be updated.
    +  // [Product][google.cloud.retail.v2.Product] to update.
    +  //
    +  // At least one field must be provided.
       //
       // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
       // is returned and the entire update will be ignored.
    @@ -566,6 +648,108 @@ message AddFulfillmentPlacesMetadata {}
     // method.
     message AddFulfillmentPlacesResponse {}
     
    +// Request message for [AddLocalInventories][] method.
    +message AddLocalInventoriesRequest {
    +  // Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +  // such as
    +  // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +  //
    +  // If the caller does not have permission to access the
    +  // [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +  // exists, a PERMISSION_DENIED error is returned.
    +  string product = 1 [
    +    (google.api.field_behavior) = REQUIRED,
    +    (google.api.resource_reference) = { type: "retail.googleapis.com/Product" }
    +  ];
    +
    +  // Required. A list of inventory information at difference places. Each place
    +  // is identified by its place ID. At most 3000 inventories are allowed per
    +  // request.
    +  repeated LocalInventory local_inventories = 2
    +      [(google.api.field_behavior) = REQUIRED];
    +
    +  // Indicates which inventory fields in the provided list of
    +  // [LocalInventory][google.cloud.retail.v2.LocalInventory] to update. The
    +  // field is updated to the provided value.
    +  //
    +  // If a field is set while the place does not have a previous local inventory,
    +  // the local inventory at that store is created.
    +  //
    +  // If a field is set while the value of that field is not provided, the
    +  // original field value, if it exists, is deleted.
    +  //
    +  // If the mask is not set or set with empty paths, all inventory fields will
    +  // be updated.
    +  //
    +  // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
    +  // is returned and the entire update will be ignored.
    +  google.protobuf.FieldMask add_mask = 4;
    +
    +  // The time when the inventory updates are issued. Used to prevent
    +  // out-of-order updates on local inventory fields. If not provided, the
    +  // internal system time will be used.
    +  google.protobuf.Timestamp add_time = 5;
    +
    +  // If set to true, and the [Product][google.cloud.retail.v2.Product] is not
    +  // found, the local inventory will still be processed and retained for at most
    +  // 1 day and processed once the [Product][google.cloud.retail.v2.Product] is
    +  // created. If set to false, a NOT_FOUND error is returned if the
    +  // [Product][google.cloud.retail.v2.Product] is not found.
    +  bool allow_missing = 6;
    +}
    +
    +// Metadata related to the progress of the AddLocalInventories operation.
    +// Currently empty because there is no meaningful metadata populated from the
    +// [AddLocalInventories][] method.
    +message AddLocalInventoriesMetadata {}
    +
    +// Response of the [AddLocalInventories][] API.  Currently empty because
    +// there is no meaningful response populated from the [AddLocalInventories][]
    +// method.
    +message AddLocalInventoriesResponse {}
    +
    +// Request message for [RemoveLocalInventories][] method.
    +message RemoveLocalInventoriesRequest {
    +  // Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    +  // such as
    +  // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
    +  //
    +  // If the caller does not have permission to access the
    +  // [Product][google.cloud.retail.v2.Product], regardless of whether or not it
    +  // exists, a PERMISSION_DENIED error is returned.
    +  string product = 1 [
    +    (google.api.field_behavior) = REQUIRED,
    +    (google.api.resource_reference) = { type: "retail.googleapis.com/Product" }
    +  ];
    +
    +  // Required. A list of place IDs to have their inventory deleted.
    +  // At most 3000 place IDs are allowed per request.
    +  repeated string place_ids = 2 [(google.api.field_behavior) = REQUIRED];
    +
    +  // The time when the inventory deletions are issued. Used to prevent
    +  // out-of-order updates and deletions on local inventory fields. If not
    +  // provided, the internal system time will be used.
    +  google.protobuf.Timestamp remove_time = 5;
    +
    +  // If set to true, and the [Product][google.cloud.retail.v2.Product] is not
    +  // found, the local inventory removal request will still be processed and
    +  // retained for at most 1 day and processed once the
    +  // [Product][google.cloud.retail.v2.Product] is created. If set to false, a
    +  // NOT_FOUND error is returned if the
    +  // [Product][google.cloud.retail.v2.Product] is not found.
    +  bool allow_missing = 3;
    +}
    +
    +// Metadata related to the progress of the RemoveLocalInventories operation.
    +// Currently empty because there is no meaningful metadata populated from the
    +// [RemoveLocalInventories][] method.
    +message RemoveLocalInventoriesMetadata {}
    +
    +// Response of the [RemoveLocalInventories][] API.  Currently empty because
    +// there is no meaningful response populated from the [RemoveLocalInventories][]
    +// method.
    +message RemoveLocalInventoriesResponse {}
    +
     // Request message for [RemoveFulfillmentPlaces][] method.
     message RemoveFulfillmentPlacesRequest {
       // Required. Full resource name of [Product][google.cloud.retail.v2.Product],
    diff --git a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/promotion.proto b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/promotion.proto
    new file mode 100644
    index 00000000..9ba32347
    --- /dev/null
    +++ b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/promotion.proto
    @@ -0,0 +1,40 @@
    +// Copyright 2021 Google LLC
    +//
    +// Licensed under the Apache License, Version 2.0 (the "License");
    +// you may not use this file except in compliance with the License.
    +// You may obtain a copy of the License at
    +//
    +//     http://www.apache.org/licenses/LICENSE-2.0
    +//
    +// Unless required by applicable law or agreed to in writing, software
    +// distributed under the License is distributed on an "AS IS" BASIS,
    +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +// See the License for the specific language governing permissions and
    +// limitations under the License.
    +
    +syntax = "proto3";
    +
    +package google.cloud.retail.v2;
    +
    +option csharp_namespace = "Google.Cloud.Retail.V2";
    +option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2;retail";
    +option java_multiple_files = true;
    +option java_outer_classname = "PromotionProto";
    +option java_package = "com.google.cloud.retail.v2";
    +option objc_class_prefix = "RETAIL";
    +option php_namespace = "Google\\Cloud\\Retail\\V2";
    +option ruby_package = "Google::Cloud::Retail::V2";
    +
    +// Promotion information.
    +message Promotion {
    +  // ID of the promotion. For example, "free gift".
    +  //
    +  // The value must be a UTF-8 encoded string with a length limit of 128
    +  // characters, and match the pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example,
    +  // id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is
    +  // returned.
    +  //
    +  // Google Merchant Center property
    +  // [promotion](https://support.google.com/merchants/answer/7050148).
    +  string promotion_id = 1;
    +}
    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 b87d3177..6c8d54c7 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
    @@ -17,6 +17,7 @@ syntax = "proto3";
     package google.cloud.retail.v2;
     
     import "google/api/field_behavior.proto";
    +import "google/api/resource.proto";
     
     option csharp_namespace = "Google.Cloud.Retail.V2";
     option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2;retail";
    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 8bd23133..ec8750ae 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
    @@ -37,8 +37,7 @@ option ruby_package = "Google::Cloud::Retail::V2";
     // Service for search.
     //
     // This feature is only available for users who have Retail Search enabled.
    -// Please submit a form [here](https://cloud.google.com/contact) to contact
    -// cloud sales if you are interested in using Retail Search.
    +// Please enable Retail Search on Cloud Console before using this feature.
     service SearchService {
       option (google.api.default_host) = "retail.googleapis.com";
       option (google.api.oauth_scopes) =
    @@ -47,8 +46,7 @@ service SearchService {
       // Performs a search.
       //
       // This feature is only available for users who have Retail Search enabled.
    -  // Please submit a form [here](https://cloud.google.com/contact) to contact
    -  // cloud sales if you are interested in using Retail Search.
    +  // Please enable Retail Search on Cloud Console before using this feature.
       rpc Search(SearchRequest) returns (SearchResponse) {
         option (google.api.http) = {
           post: "/v2/{placement=projects/*/locations/*/catalogs/*/placements/*}:search"
    @@ -103,6 +101,7 @@ message SearchRequest {
           //     * "ratingCount"
           //     * "attributes.key"
           //     * "inventory(place_id,price)"
    +      //     * "inventory(place_id,original_price)"
           //     * "inventory(place_id,attributes.key)"
           string key = 1 [(google.api.field_behavior) = REQUIRED];
     
    @@ -320,6 +319,14 @@ message SearchRequest {
         // applied and combined in a non-linear way. Maximum number of
         // specifications is 10.
         repeated ConditionBoostSpec condition_boost_specs = 1;
    +
    +    // Whether to skip boostspec validation. If this field is set to true,
    +    // invalid
    +    // [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +    // will be ignored and valid
    +    // [BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +    // will still be applied.
    +    optional bool skip_boost_spec_validation = 2;
       }
     
       // Specification to determine under which conditions query expansion should
    @@ -350,6 +357,26 @@ message SearchRequest {
         bool pin_unexpanded_results = 2;
       }
     
    +  // The specification for personalization.
    +  message PersonalizationSpec {
    +    // The personalization mode of each search request.
    +    enum Mode {
    +      // Default value. Defaults to
    +      // [Mode.AUTO][google.cloud.retail.v2.SearchRequest.PersonalizationSpec.Mode.AUTO].
    +      MODE_UNSPECIFIED = 0;
    +
    +      // Let CRS decide whether to use personalization.
    +      AUTO = 1;
    +
    +      // Disable personalization.
    +      DISABLED = 2;
    +    }
    +
    +    // Defaults to
    +    // [Mode.AUTO][google.cloud.retail.v2.SearchRequest.PersonalizationSpec.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
    @@ -380,7 +407,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];
    @@ -402,6 +429,9 @@ message SearchRequest {
       // 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];
    @@ -445,6 +475,9 @@ message SearchRequest {
       // If this field is unrecognizable, an INVALID_ARGUMENT is returned.
       string filter = 10;
     
    +  // The default filter that is applied when a user performs a search without
    +  // checking any filters on the search page.
    +  //
       // The filter applied to every search request when quality improvement such as
       // query expansion is needed. For example, if a query does not have enough
       // results, an expanded query with
    @@ -471,12 +504,12 @@ message SearchRequest {
       // is returned.
       repeated FacetSpec facet_specs = 12;
     
    +  // Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic
    +  // to enable dynamic facets. Do not set this field.
    +  //
       // The specification for dynamically generated facets. Notice that only
       // textual facets can be dynamically generated.
    -  //
    -  // This feature requires additional allowlisting. Contact Retail Search
    -  // support team if you are interested in using dynamic facet feature.
    -  DynamicFacetSpec dynamic_facet_spec = 21;
    +  DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true];
     
       // Boost specification to boost certain products. See more details at this
       // [user guide](https://cloud.google.com/retail/docs/boosting).
    @@ -495,12 +528,15 @@ message SearchRequest {
     
       // The keys to fetch and rollup the matching
       // [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -  // [Product][google.cloud.retail.v2.Product]s attributes. The attributes from
    -  // all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -  // [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated.
    -  // Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    -  // [Product][google.cloud.retail.v2.Product]s attributes will lead to extra
    -  // query latency. Maximum number of keys is 10.
    +  // [Product][google.cloud.retail.v2.Product]s attributes,
    +  // [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or
    +  // [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The
    +  // attributes from all the matching
    +  // [variant][google.cloud.retail.v2.Product.Type.VARIANT]
    +  // [Product][google.cloud.retail.v2.Product]s or
    +  // [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and
    +  // de-duplicated. Notice that rollup attributes will lead to extra query
    +  // latency. Maximum number of keys is 30.
       //
       // For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a
       // fulfillment type and a fulfillment ID must be provided in the format of
    @@ -515,6 +551,7 @@ message SearchRequest {
       // * discount
       // * variantId
       // * 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.
       // * attributes.key, where key is any key in the
    @@ -577,6 +614,9 @@ message SearchRequest {
       // The search mode of the search request. If not specified, a single search
       // request triggers both product search and faceted search.
       SearchMode search_mode = 31;
    +
    +  // The specification for personalization.
    +  PersonalizationSpec personalization_spec = 32;
     }
     
     // Response message for
    @@ -733,4 +773,14 @@ message SearchResponse {
       // [attribution_token][google.cloud.retail.v2.SearchResponse.attribution_token]
       // will be set in the response.
       string redirect_uri = 10;
    +
    +  // The fully qualified resource name of applied
    +  // [controls](https://cloud.google.com/retail/docs/serving-control-rules).
    +  repeated string applied_controls = 12;
    +
    +  // The invalid
    +  // [SearchRequest.BoostSpec.condition_boost_specs][google.cloud.retail.v2.SearchRequest.BoostSpec.condition_boost_specs]
    +  // that are not applied during serving.
    +  repeated SearchRequest.BoostSpec.ConditionBoostSpec
    +      invalid_condition_boost_specs = 14;
     }
    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 c0023cf2..8e21f8aa 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
    @@ -39,7 +39,6 @@ message UserEvent {
       // * `add-to-cart`: Products being added to cart.
       // * `category-page-view`: Special pages such as sale or promotion pages
       //   viewed.
    -  // * `completion`: Completion query result showed/clicked.
       // * `detail-page-view`: Products detail page viewed.
       // * `home-page-view`: Homepage viewed.
       // * `promotion-offered`: Promotion is offered to a user.
    @@ -117,6 +116,7 @@ message UserEvent {
       // * `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
    @@ -127,22 +127,35 @@ message UserEvent {
       // desired. The end user may have not finished browsing the whole page yet.
       repeated ProductDetail product_details = 6;
     
    -  // The main completion details related to the event.
    +  // The main auto-completion details related to the event.
       //
    -  // In a `completion` event, this field represents the completions returned to
    -  // the end user and the clicked completion by the end user. In a `search`
    -  // event, it represents the search event happens after clicking completion.
    +  // This field should be set for `search` event when autocomplete function is
    +  // enabled and the user clicks a suggestion for search.
       CompletionDetail completion_detail = 22;
     
       // Extra user event features to include in the recommendation model.
       //
    -  // The key must be a UTF-8 encoded string with a length limit of 5,000
    -  // characters. Otherwise, an INVALID_ARGUMENT error is returned.
    -  //
    -  // For product recommendation, an example of extra user information is
    -  // traffic_channel, i.e. how user arrives at the site. Users can arrive
    -  // at the site by coming to the site directly, or coming through Google
    -  // search, and etc.
    +  // If you provide custom attributes for ingested user events, also include
    +  // them in the user events that you associate with prediction requests. Custom
    +  // attribute formatting must be consistent between imported events and events
    +  // provided with prediction requests. This lets the Retail API use
    +  // those custom attributes when training models and serving predictions, which
    +  // helps improve recommendation quality.
    +  //
    +  // This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT
    +  // error is returned:
    +  //
    +  // * The key must be a UTF-8 encoded string with a length limit of 5,000
    +  //   characters.
    +  // * For text attributes, at most 400 values are allowed. Empty values are not
    +  //   allowed. Each value must be a UTF-8 encoded string with a length limit of
    +  //   256 characters.
    +  // * For number attributes, at most 400 values are allowed.
    +  //
    +  // For product recommendations, an example of extra user information is
    +  // traffic_channel, which is how a user arrives at the site. Users can arrive
    +  // at the site by coming to the site directly, coming through Google
    +  // search, or in other ways.
       map attributes = 7;
     
       // The ID or name of the associated shopping cart. This ID is used
    diff --git a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/user_event_service.proto b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/user_event_service.proto
    index 2d48a511..4446906a 100644
    --- a/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/user_event_service.proto
    +++ b/proto-google-cloud-retail-v2/src/main/proto/google/cloud/retail/v2/user_event_service.proto
    @@ -20,6 +20,7 @@ import "google/api/annotations.proto";
     import "google/api/client.proto";
     import "google/api/field_behavior.proto";
     import "google/api/httpbody.proto";
    +import "google/api/resource.proto";
     import "google/cloud/retail/v2/import_config.proto";
     import "google/cloud/retail/v2/purge_config.proto";
     import "google/cloud/retail/v2/user_event.proto";
    @@ -94,13 +95,14 @@ service UserEventService {
         };
       }
     
    -  // Triggers a user event rejoin operation with latest product catalog. Events
    +  // Starts a user event rejoin operation with latest product catalog. Events
       // will not be annotated with detailed product information if product is
       // missing from the catalog at the time the user event is ingested, and these
       // events are stored as unjoined events with a limited usage on training and
    -  // serving. This API can be used to trigger a 'join' operation on specified
    +  // serving. This method can be used to start a join operation on specified
       // events with latest version of product catalog. It can also be used to
    -  // correct events joined with wrong product catalog.
    +  // correct events joined with the wrong product catalog. A rejoin operation
    +  // can take hours or days to complete.
       rpc RejoinUserEvents(RejoinUserEventsRequest)
           returns (google.longrunning.Operation) {
         option (google.api.http) = {