public final UnaryCallable<ListProductsRequest, ListProductsResponse> listProductsCallable() {
    return stub.listProductsCallable();
  }
Lists products in an unspecified order.

<p>Possible errors:

<ul>
  <li>Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1.
</ul>

<p>Sample code:

<pre>{@code
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in
// https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
try (ProductSearchClient productSearchClient = ProductSearchClient.create()) {
  ListProductsRequest request =
      ListProductsRequest.newBuilder()
          .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
          .setPageSize(883849137)
          .setPageToken("pageToken873572522")
          .build();
  while (true) {
    ListProductsResponse response = productSearchClient.listProductsCallable().call(request);
    for (Product element : response.getProductsList()) {
      // doThingsWith(element);
    }
    String nextPageToken = response.getNextPageToken();
    if (!Strings.isNullOrEmpty(nextPageToken)) {
      request = request.toBuilder().setPageToken(nextPageToken).build();
    } else {
      break;
    }
  }
}
}</pre>
java-vision/google-cloud-vision/src/main/java/com/google/cloud/vision/v1p4beta1/ProductSearchClient.java