code: public final Product createProduct(String parent, Product product, String productId) {
  
      CreateProductRequest request =
          CreateProductRequest.newBuilder()
              .setParent(parent)
              .setProduct(product)
              .setProductId(productId)
              .build();
      return createProduct(request);
    }
docs: Creates and returns a new product resource.
  
  <p>Possible errors:
  
  <p>&#42; Returns INVALID_ARGUMENT if display_name is missing or longer than 4096 characters.
  &#42; Returns INVALID_ARGUMENT if description is longer than 4096 characters. &#42; Returns
  INVALID_ARGUMENT if product_category is missing or invalid.
  
  <p>Sample code:
  
  <pre><code>
  try (ProductSearchClient productSearchClient = ProductSearchClient.create()) {
  LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
  Product product = Product.newBuilder().build();
  String productId = "";
  Product response = productSearchClient.createProduct(parent.toString(), product, productId);
  }
  </code></pre>
  
  @param parent The project in which the Product should be created.
  <p>Format is `projects/PROJECT_ID/locations/LOC_ID`.
  @param product The product to create.
  @param productId A user-supplied resource id for this Product. If set, the server will attempt
  to use this value as the resource id. If it is already in use, an error is returned with
  code ALREADY_EXISTS. Must be at most 128 characters long. It cannot contain the character
  `/`.
  @throws com.google.api.gax.rpc.ApiException if the remote call fails