From ee92e8cd50eab10eac7f6d1ab8d3fe4bab6f4359 Mon Sep 17 00:00:00 2001 From: mpeddada1 Date: Fri, 11 Jul 2025 19:27:08 +0000 Subject: [PATCH 1/2] feat: [merchantapi] new module for merchant-reports-v1alpha --- generation_config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/generation_config.yaml b/generation_config.yaml index fa03daedfe7b..49ad6ef517d3 100644 --- a/generation_config.yaml +++ b/generation_config.yaml @@ -2346,6 +2346,7 @@ libraries: distribution_name: com.google.shopping:google-shopping-merchant-reports GAPICs: - proto_path: google/shopping/merchant/reports/v1beta + - proto_path: google/shopping/merchant/reports/v1alpha - api_shortname: merchantapi name_pretty: Merchant API From 6b4d19310b364784b2e5bd4a6aa50aff8d673b90 Mon Sep 17 00:00:00 2001 From: cloud-java-bot Date: Fri, 11 Jul 2025 19:31:26 +0000 Subject: [PATCH 2/2] chore: generate libraries at Fri Jul 11 19:29:39 UTC 2025 --- .../pom.xml | 10 + .../google-shopping-merchant-reports/pom.xml | 9 + .../reports/v1alpha/ReportServiceClient.java | 426 + .../v1alpha/ReportServiceSettings.java | 219 + .../reports/v1alpha/gapic_metadata.json | 21 + .../reports/v1alpha/package-info.java | 46 + .../GrpcReportServiceCallableFactory.java | 115 + .../v1alpha/stub/GrpcReportServiceStub.java | 171 + .../HttpJsonReportServiceCallableFactory.java | 103 + .../stub/HttpJsonReportServiceStub.java | 212 + .../v1alpha/stub/ReportServiceStub.java | 48 + .../stub/ReportServiceStubSettings.java | 405 + .../reflect-config.json | 1892 ++ .../reports/v1alpha/MockReportService.java | 59 + .../v1alpha/MockReportServiceImpl.java | 80 + .../ReportServiceClientHttpJsonTest.java | 127 + .../v1alpha/ReportServiceClientTest.java | 124 + .../pom.xml | 45 + .../reports/v1alpha/ReportServiceGrpc.java | 439 + java-shopping-merchant-reports/pom.xml | 12 + .../clirr-ignored-differences.xml | 80 + .../pom.xml | 37 + .../reports/v1alpha/BestSellersBrandView.java | 2714 +++ .../BestSellersBrandViewOrBuilder.java | 468 + .../BestSellersProductClusterView.java | 5200 ++++++ ...estSellersProductClusterViewOrBuilder.java | 908 + .../CompetitiveVisibilityBenchmarkView.java | 1796 ++ ...itiveVisibilityBenchmarkViewOrBuilder.java | 277 + .../CompetitiveVisibilityCompetitorView.java | 2699 +++ ...tiveVisibilityCompetitorViewOrBuilder.java | 464 + .../CompetitiveVisibilityTopMerchantView.java | 2532 +++ ...iveVisibilityTopMerchantViewOrBuilder.java | 427 + .../reports/v1alpha/MarketingMethod.java | 605 + .../v1alpha/MarketingMethodOrBuilder.java | 25 + .../v1alpha/NonProductPerformanceView.java | 1491 ++ .../NonProductPerformanceViewOrBuilder.java | 195 + .../PriceCompetitivenessProductView.java | 4592 +++++ ...ceCompetitivenessProductViewOrBuilder.java | 736 + .../v1alpha/PriceInsightsProductView.java | 5165 ++++++ .../PriceInsightsProductViewOrBuilder.java | 809 + .../v1alpha/ProductPerformanceView.java | 6854 ++++++++ .../ProductPerformanceViewOrBuilder.java | 1164 ++ .../merchant/reports/v1alpha/ProductView.java | 14317 ++++++++++++++++ .../reports/v1alpha/ProductViewOrBuilder.java | 1316 ++ .../reports/v1alpha/RelativeDemand.java | 679 + .../v1alpha/RelativeDemandChangeType.java | 635 + .../RelativeDemandChangeTypeOrBuilder.java | 25 + .../v1alpha/RelativeDemandOrBuilder.java | 25 + .../reports/v1alpha/ReportGranularity.java | 607 + .../v1alpha/ReportGranularityOrBuilder.java | 25 + .../merchant/reports/v1alpha/ReportRow.java | 4742 +++++ .../reports/v1alpha/ReportRowOrBuilder.java | 610 + .../reports/v1alpha/ReportsProto.java | 1107 ++ .../reports/v1alpha/SearchRequest.java | 1170 ++ .../v1alpha/SearchRequestOrBuilder.java | 134 + .../reports/v1alpha/SearchResponse.java | 1169 ++ .../v1alpha/SearchResponseOrBuilder.java | 110 + .../reports/v1alpha/TrafficSource.java | 622 + .../v1alpha/TrafficSourceOrBuilder.java | 25 + .../YoutubeContentPerformanceView.java | 2926 ++++ ...outubeContentPerformanceViewOrBuilder.java | 414 + .../YoutubeCreatorPerformanceView.java | 2474 +++ ...outubeCreatorPerformanceViewOrBuilder.java | 336 + .../YoutubeProductPerformanceView.java | 2744 +++ ...outubeProductPerformanceViewOrBuilder.java | 388 + .../merchant/reports/v1alpha/reports.proto | 1398 ++ .../SyncCreateSetCredentialsProvider.java | 44 + .../create/SyncCreateSetEndpoint.java | 41 + .../SyncCreateUseHttpJsonTransport.java | 40 + .../reportservice/search/AsyncSearch.java | 53 + .../search/AsyncSearchPaged.java | 61 + .../reportservice/search/SyncSearch.java | 50 + .../search/SyncSearchString.java | 43 + .../search/SyncSearch.java | 55 + .../search/SyncSearch.java | 56 + versions.txt | 2 + 76 files changed, 82244 insertions(+) create mode 100644 java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceClient.java create mode 100644 java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceSettings.java create mode 100644 java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/gapic_metadata.json create mode 100644 java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/package-info.java create mode 100644 java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/GrpcReportServiceCallableFactory.java create mode 100644 java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/GrpcReportServiceStub.java create mode 100644 java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/HttpJsonReportServiceCallableFactory.java create mode 100644 java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/HttpJsonReportServiceStub.java create mode 100644 java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/ReportServiceStub.java create mode 100644 java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/ReportServiceStubSettings.java create mode 100644 java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/resources/META-INF/native-image/com.google.shopping.merchant.reports.v1alpha/reflect-config.json create mode 100644 java-shopping-merchant-reports/google-shopping-merchant-reports/src/test/java/com/google/shopping/merchant/reports/v1alpha/MockReportService.java create mode 100644 java-shopping-merchant-reports/google-shopping-merchant-reports/src/test/java/com/google/shopping/merchant/reports/v1alpha/MockReportServiceImpl.java create mode 100644 java-shopping-merchant-reports/google-shopping-merchant-reports/src/test/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceClientHttpJsonTest.java create mode 100644 java-shopping-merchant-reports/google-shopping-merchant-reports/src/test/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceClientTest.java create mode 100644 java-shopping-merchant-reports/grpc-google-shopping-merchant-reports-v1alpha/pom.xml create mode 100644 java-shopping-merchant-reports/grpc-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceGrpc.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/clirr-ignored-differences.xml create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/pom.xml create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersBrandView.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersBrandViewOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersProductClusterView.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersProductClusterViewOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityBenchmarkView.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityBenchmarkViewOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityCompetitorView.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityCompetitorViewOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityTopMerchantView.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityTopMerchantViewOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/MarketingMethod.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/MarketingMethodOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/NonProductPerformanceView.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/NonProductPerformanceViewOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceCompetitivenessProductView.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceCompetitivenessProductViewOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceInsightsProductView.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceInsightsProductViewOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductPerformanceView.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductPerformanceViewOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductView.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductViewOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemand.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemandChangeType.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemandChangeTypeOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemandOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportGranularity.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportGranularityOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportRow.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportRowOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportsProto.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchRequest.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchRequestOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchResponse.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchResponseOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/TrafficSource.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/TrafficSourceOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeContentPerformanceView.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeContentPerformanceViewOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeCreatorPerformanceView.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeCreatorPerformanceViewOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeProductPerformanceView.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeProductPerformanceViewOrBuilder.java create mode 100644 java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/proto/google/shopping/merchant/reports/v1alpha/reports.proto create mode 100644 java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateSetCredentialsProvider.java create mode 100644 java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateSetEndpoint.java create mode 100644 java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateUseHttpJsonTransport.java create mode 100644 java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/AsyncSearch.java create mode 100644 java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/AsyncSearchPaged.java create mode 100644 java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/SyncSearch.java create mode 100644 java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/SyncSearchString.java create mode 100644 java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservicesettings/search/SyncSearch.java create mode 100644 java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/stub/reportservicestubsettings/search/SyncSearch.java diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports-bom/pom.xml b/java-shopping-merchant-reports/google-shopping-merchant-reports-bom/pom.xml index ead404baa8c7..80d219ad5a02 100644 --- a/java-shopping-merchant-reports/google-shopping-merchant-reports-bom/pom.xml +++ b/java-shopping-merchant-reports/google-shopping-merchant-reports-bom/pom.xml @@ -34,11 +34,21 @@ grpc-google-shopping-merchant-reports-v1beta 0.44.0-SNAPSHOT + + com.google.shopping.api.grpc + grpc-google-shopping-merchant-reports-v1alpha + 0.44.0-SNAPSHOT + com.google.shopping.api.grpc proto-google-shopping-merchant-reports-v1beta 0.44.0-SNAPSHOT + + com.google.shopping.api.grpc + proto-google-shopping-merchant-reports-v1alpha + 0.44.0-SNAPSHOT + diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports/pom.xml b/java-shopping-merchant-reports/google-shopping-merchant-reports/pom.xml index d07d2737534e..3ca1768b5f5a 100644 --- a/java-shopping-merchant-reports/google-shopping-merchant-reports/pom.xml +++ b/java-shopping-merchant-reports/google-shopping-merchant-reports/pom.xml @@ -41,6 +41,10 @@ proto-google-common-protos + + com.google.shopping.api.grpc + proto-google-shopping-merchant-reports-v1alpha + com.google.shopping.api.grpc proto-google-shopping-merchant-reports-v1beta @@ -66,6 +70,11 @@ grpc-google-common-protos test + + com.google.shopping.api.grpc + grpc-google-shopping-merchant-reports-v1alpha + test + com.google.api.grpc proto-google-iam-v1 diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceClient.java b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceClient.java new file mode 100644 index 000000000000..5e6cdb3a07b5 --- /dev/null +++ b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceClient.java @@ -0,0 +1,426 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha; + +import com.google.api.core.ApiFuture; +import com.google.api.core.ApiFutures; +import com.google.api.core.BetaApi; +import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.paging.AbstractFixedSizeCollection; +import com.google.api.gax.paging.AbstractPage; +import com.google.api.gax.paging.AbstractPagedListResponse; +import com.google.api.gax.rpc.PageContext; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.common.util.concurrent.MoreExecutors; +import com.google.shopping.merchant.reports.v1alpha.stub.ReportServiceStub; +import com.google.shopping.merchant.reports.v1alpha.stub.ReportServiceStubSettings; +import java.io.IOException; +import java.util.List; +import java.util.concurrent.TimeUnit; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * Service Description: Service for retrieving reports and insights about your products, their + * performance, and their competitive environment on Google. + * + *

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: + * + *

{@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 (ReportServiceClient reportServiceClient = ReportServiceClient.create()) {
+ *   String parent = "parent-995424086";
+ *   for (ReportRow element : reportServiceClient.search(parent).iterateAll()) {
+ *     // doThingsWith(element);
+ *   }
+ * }
+ * }
+ * + *

Note: close() needs to be called on the ReportServiceClient object to clean up resources such + * as threads. In the example above, try-with-resources is used, which automatically calls close(). + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Methods
MethodDescriptionMethod Variants

Search

Retrieves a report defined by a search query. The response might contain fewer rows than specified by `page_size`. Rely on `next_page_token` to determine if there are more rows to be requested.

+ *

Request object method variants only take one parameter, a request object, which must be constructed before the call.

+ *
    + *
  • search(SearchRequest request) + *

+ *

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

+ *
    + *
  • search(String parent) + *

+ *

Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service.

+ *
    + *
  • searchPagedCallable() + *

  • searchCallable() + *

+ *
+ * + *

See the individual methods for example code. + * + *

Many parameters require resource names to be formatted in a particular way. To assist with + * these names, this class includes a format method for each type of name, and additionally a parse + * method to extract the individual identifiers contained within names that are returned. + * + *

This class can be customized by passing in a custom instance of ReportServiceSettings to + * create(). For example: + * + *

To customize credentials: + * + *

{@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
+ * ReportServiceSettings reportServiceSettings =
+ *     ReportServiceSettings.newBuilder()
+ *         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
+ *         .build();
+ * ReportServiceClient reportServiceClient = ReportServiceClient.create(reportServiceSettings);
+ * }
+ * + *

To customize the endpoint: + * + *

{@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
+ * ReportServiceSettings reportServiceSettings =
+ *     ReportServiceSettings.newBuilder().setEndpoint(myEndpoint).build();
+ * ReportServiceClient reportServiceClient = ReportServiceClient.create(reportServiceSettings);
+ * }
+ * + *

To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over + * the wire: + * + *

{@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
+ * ReportServiceSettings reportServiceSettings =
+ *     ReportServiceSettings.newHttpJsonBuilder().build();
+ * ReportServiceClient reportServiceClient = ReportServiceClient.create(reportServiceSettings);
+ * }
+ * + *

Please refer to the GitHub repository's samples for more quickstart code snippets. + */ +@BetaApi +@Generated("by gapic-generator-java") +public class ReportServiceClient implements BackgroundResource { + private final ReportServiceSettings settings; + private final ReportServiceStub stub; + + /** Constructs an instance of ReportServiceClient with default settings. */ + public static final ReportServiceClient create() throws IOException { + return create(ReportServiceSettings.newBuilder().build()); + } + + /** + * Constructs an instance of ReportServiceClient, using the given settings. The channels are + * created based on the settings passed in, or defaults for any settings that are not set. + */ + public static final ReportServiceClient create(ReportServiceSettings settings) + throws IOException { + return new ReportServiceClient(settings); + } + + /** + * Constructs an instance of ReportServiceClient, using the given stub for making calls. This is + * for advanced usage - prefer using create(ReportServiceSettings). + */ + public static final ReportServiceClient create(ReportServiceStub stub) { + return new ReportServiceClient(stub); + } + + /** + * Constructs an instance of ReportServiceClient, using the given settings. This is protected so + * that it is easy to make a subclass, but otherwise, the static factory methods should be + * preferred. + */ + protected ReportServiceClient(ReportServiceSettings settings) throws IOException { + this.settings = settings; + this.stub = ((ReportServiceStubSettings) settings.getStubSettings()).createStub(); + } + + protected ReportServiceClient(ReportServiceStub stub) { + this.settings = null; + this.stub = stub; + } + + public final ReportServiceSettings getSettings() { + return settings; + } + + public ReportServiceStub getStub() { + return stub; + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Retrieves a report defined by a search query. The response might contain fewer rows than + * specified by `page_size`. Rely on `next_page_token` to determine if there are more rows to be + * requested. + * + *

Sample code: + * + *

{@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 (ReportServiceClient reportServiceClient = ReportServiceClient.create()) {
+   *   String parent = "parent-995424086";
+   *   for (ReportRow element : reportServiceClient.search(parent).iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
+   * }
+   * }
+ * + * @param parent Required. Id of the account making the call. Must be a standalone account or an + * MCA subaccount. Format: accounts/{account} + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final SearchPagedResponse search(String parent) { + SearchRequest request = SearchRequest.newBuilder().setParent(parent).build(); + return search(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Retrieves a report defined by a search query. The response might contain fewer rows than + * specified by `page_size`. Rely on `next_page_token` to determine if there are more rows to be + * requested. + * + *

Sample code: + * + *

{@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 (ReportServiceClient reportServiceClient = ReportServiceClient.create()) {
+   *   SearchRequest request =
+   *       SearchRequest.newBuilder()
+   *           .setParent("parent-995424086")
+   *           .setQuery("query107944136")
+   *           .setPageSize(883849137)
+   *           .setPageToken("pageToken873572522")
+   *           .build();
+   *   for (ReportRow element : reportServiceClient.search(request).iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
+   * }
+   * }
+ * + * @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 SearchPagedResponse search(SearchRequest request) { + return searchPagedCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Retrieves a report defined by a search query. The response might contain fewer rows than + * specified by `page_size`. Rely on `next_page_token` to determine if there are more rows to be + * requested. + * + *

Sample code: + * + *

{@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 (ReportServiceClient reportServiceClient = ReportServiceClient.create()) {
+   *   SearchRequest request =
+   *       SearchRequest.newBuilder()
+   *           .setParent("parent-995424086")
+   *           .setQuery("query107944136")
+   *           .setPageSize(883849137)
+   *           .setPageToken("pageToken873572522")
+   *           .build();
+   *   ApiFuture future = reportServiceClient.searchPagedCallable().futureCall(request);
+   *   // Do something.
+   *   for (ReportRow element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
+   * }
+   * }
+ */ + public final UnaryCallable searchPagedCallable() { + return stub.searchPagedCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Retrieves a report defined by a search query. The response might contain fewer rows than + * specified by `page_size`. Rely on `next_page_token` to determine if there are more rows to be + * requested. + * + *

Sample code: + * + *

{@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 (ReportServiceClient reportServiceClient = ReportServiceClient.create()) {
+   *   SearchRequest request =
+   *       SearchRequest.newBuilder()
+   *           .setParent("parent-995424086")
+   *           .setQuery("query107944136")
+   *           .setPageSize(883849137)
+   *           .setPageToken("pageToken873572522")
+   *           .build();
+   *   while (true) {
+   *     SearchResponse response = reportServiceClient.searchCallable().call(request);
+   *     for (ReportRow element : response.getResultsList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!Strings.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
+   * }
+   * }
+ */ + public final UnaryCallable searchCallable() { + return stub.searchCallable(); + } + + @Override + public final void close() { + stub.close(); + } + + @Override + public void shutdown() { + stub.shutdown(); + } + + @Override + public boolean isShutdown() { + return stub.isShutdown(); + } + + @Override + public boolean isTerminated() { + return stub.isTerminated(); + } + + @Override + public void shutdownNow() { + stub.shutdownNow(); + } + + @Override + public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { + return stub.awaitTermination(duration, unit); + } + + public static class SearchPagedResponse + extends AbstractPagedListResponse< + SearchRequest, SearchResponse, ReportRow, SearchPage, SearchFixedSizeCollection> { + + public static ApiFuture createAsync( + PageContext context, + ApiFuture futureResponse) { + ApiFuture futurePage = + SearchPage.createEmptyPage().createPageAsync(context, futureResponse); + return ApiFutures.transform( + futurePage, input -> new SearchPagedResponse(input), MoreExecutors.directExecutor()); + } + + private SearchPagedResponse(SearchPage page) { + super(page, SearchFixedSizeCollection.createEmptyCollection()); + } + } + + public static class SearchPage + extends AbstractPage { + + private SearchPage( + PageContext context, SearchResponse response) { + super(context, response); + } + + private static SearchPage createEmptyPage() { + return new SearchPage(null, null); + } + + @Override + protected SearchPage createPage( + PageContext context, SearchResponse response) { + return new SearchPage(context, response); + } + + @Override + public ApiFuture createPageAsync( + PageContext context, + ApiFuture futureResponse) { + return super.createPageAsync(context, futureResponse); + } + } + + public static class SearchFixedSizeCollection + extends AbstractFixedSizeCollection< + SearchRequest, SearchResponse, ReportRow, SearchPage, SearchFixedSizeCollection> { + + private SearchFixedSizeCollection(List pages, int collectionSize) { + super(pages, collectionSize); + } + + private static SearchFixedSizeCollection createEmptyCollection() { + return new SearchFixedSizeCollection(null, 0); + } + + @Override + protected SearchFixedSizeCollection createCollection( + List pages, int collectionSize) { + return new SearchFixedSizeCollection(pages, collectionSize); + } + } +} diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceSettings.java b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceSettings.java new file mode 100644 index 000000000000..840776f0e583 --- /dev/null +++ b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceSettings.java @@ -0,0 +1,219 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha; + +import static com.google.shopping.merchant.reports.v1alpha.ReportServiceClient.SearchPagedResponse; + +import com.google.api.core.ApiFunction; +import com.google.api.core.BetaApi; +import com.google.api.gax.core.GoogleCredentialsProvider; +import com.google.api.gax.core.InstantiatingExecutorProvider; +import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; +import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider; +import com.google.api.gax.rpc.ApiClientHeaderProvider; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.ClientSettings; +import com.google.api.gax.rpc.PagedCallSettings; +import com.google.api.gax.rpc.TransportChannelProvider; +import com.google.api.gax.rpc.UnaryCallSettings; +import com.google.shopping.merchant.reports.v1alpha.stub.ReportServiceStubSettings; +import java.io.IOException; +import java.util.List; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * Settings class to configure an instance of {@link ReportServiceClient}. + * + *

The default instance has everything set to sensible defaults: + * + *

    + *
  • The default service address (merchantapi.googleapis.com) and default port (443) are used. + *
  • Credentials are acquired automatically through Application Default Credentials. + *
  • Retries are configured for idempotent methods but not for non-idempotent methods. + *
+ * + *

The builder of this class is recursive, so contained classes are themselves builders. When + * build() is called, the tree of builders is called to create the complete settings object. + * + *

For example, to set the + * [RetrySettings](https://cloud.google.com/java/docs/reference/gax/latest/com.google.api.gax.retrying.RetrySettings) + * of search: + * + *

{@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
+ * ReportServiceSettings.Builder reportServiceSettingsBuilder = ReportServiceSettings.newBuilder();
+ * reportServiceSettingsBuilder
+ *     .searchSettings()
+ *     .setRetrySettings(
+ *         reportServiceSettingsBuilder
+ *             .searchSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setInitialRetryDelayDuration(Duration.ofSeconds(1))
+ *             .setInitialRpcTimeoutDuration(Duration.ofSeconds(5))
+ *             .setMaxAttempts(5)
+ *             .setMaxRetryDelayDuration(Duration.ofSeconds(30))
+ *             .setMaxRpcTimeoutDuration(Duration.ofSeconds(60))
+ *             .setRetryDelayMultiplier(1.3)
+ *             .setRpcTimeoutMultiplier(1.5)
+ *             .setTotalTimeoutDuration(Duration.ofSeconds(300))
+ *             .build());
+ * ReportServiceSettings reportServiceSettings = reportServiceSettingsBuilder.build();
+ * }
+ * + * Please refer to the [Client Side Retry + * Guide](https://github.com/googleapis/google-cloud-java/blob/main/docs/client_retries.md) for + * additional support in setting retries. + */ +@BetaApi +@Generated("by gapic-generator-java") +public class ReportServiceSettings extends ClientSettings { + + /** Returns the object with the settings used for calls to search. */ + public PagedCallSettings searchSettings() { + return ((ReportServiceStubSettings) getStubSettings()).searchSettings(); + } + + public static final ReportServiceSettings create(ReportServiceStubSettings stub) + throws IOException { + return new ReportServiceSettings.Builder(stub.toBuilder()).build(); + } + + /** Returns a builder for the default ExecutorProvider for this service. */ + public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() { + return ReportServiceStubSettings.defaultExecutorProviderBuilder(); + } + + /** Returns the default service endpoint. */ + public static String getDefaultEndpoint() { + return ReportServiceStubSettings.getDefaultEndpoint(); + } + + /** Returns the default service scopes. */ + public static List getDefaultServiceScopes() { + return ReportServiceStubSettings.getDefaultServiceScopes(); + } + + /** Returns a builder for the default credentials for this service. */ + public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { + return ReportServiceStubSettings.defaultCredentialsProviderBuilder(); + } + + /** Returns a builder for the default gRPC ChannelProvider for this service. */ + public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() { + return ReportServiceStubSettings.defaultGrpcTransportProviderBuilder(); + } + + /** Returns a builder for the default REST ChannelProvider for this service. */ + @BetaApi + public static InstantiatingHttpJsonChannelProvider.Builder + defaultHttpJsonTransportProviderBuilder() { + return ReportServiceStubSettings.defaultHttpJsonTransportProviderBuilder(); + } + + public static TransportChannelProvider defaultTransportChannelProvider() { + return ReportServiceStubSettings.defaultTransportChannelProvider(); + } + + public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { + return ReportServiceStubSettings.defaultApiClientHeaderProviderBuilder(); + } + + /** Returns a new gRPC builder for this class. */ + public static Builder newBuilder() { + return Builder.createDefault(); + } + + /** Returns a new REST builder for this class. */ + public static Builder newHttpJsonBuilder() { + return Builder.createHttpJsonDefault(); + } + + /** Returns a new builder for this class. */ + public static Builder newBuilder(ClientContext clientContext) { + return new Builder(clientContext); + } + + /** Returns a builder containing all the values of this settings class. */ + public Builder toBuilder() { + return new Builder(this); + } + + protected ReportServiceSettings(Builder settingsBuilder) throws IOException { + super(settingsBuilder); + } + + /** Builder for ReportServiceSettings. */ + public static class Builder extends ClientSettings.Builder { + + protected Builder() throws IOException { + this(((ClientContext) null)); + } + + protected Builder(ClientContext clientContext) { + super(ReportServiceStubSettings.newBuilder(clientContext)); + } + + protected Builder(ReportServiceSettings settings) { + super(settings.getStubSettings().toBuilder()); + } + + protected Builder(ReportServiceStubSettings.Builder stubSettings) { + super(stubSettings); + } + + private static Builder createDefault() { + return new Builder(ReportServiceStubSettings.newBuilder()); + } + + private static Builder createHttpJsonDefault() { + return new Builder(ReportServiceStubSettings.newHttpJsonBuilder()); + } + + public ReportServiceStubSettings.Builder getStubSettingsBuilder() { + return ((ReportServiceStubSettings.Builder) getStubSettings()); + } + + /** + * Applies the given settings updater function to all of the unary API methods in this service. + * + *

Note: This method does not support applying settings to streaming methods. + */ + public Builder applyToAllUnaryMethods( + ApiFunction, Void> settingsUpdater) { + super.applyToAllUnaryMethods( + getStubSettingsBuilder().unaryMethodSettingsBuilders(), settingsUpdater); + return this; + } + + /** Returns the builder for the settings used for calls to search. */ + public PagedCallSettings.Builder + searchSettings() { + return getStubSettingsBuilder().searchSettings(); + } + + @Override + public ReportServiceSettings build() throws IOException { + return new ReportServiceSettings(this); + } + } +} diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/gapic_metadata.json b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/gapic_metadata.json new file mode 100644 index 000000000000..f738325f2976 --- /dev/null +++ b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/gapic_metadata.json @@ -0,0 +1,21 @@ +{ + "schema": "1.0", + "comment": "This file maps proto services/RPCs to the corresponding library clients/methods", + "language": "java", + "protoPackage": "google.shopping.merchant.reports.v1alpha", + "libraryPackage": "com.google.shopping.merchant.reports.v1alpha", + "services": { + "ReportService": { + "clients": { + "grpc": { + "libraryClient": "ReportServiceClient", + "rpcs": { + "Search": { + "methods": ["search", "search", "searchPagedCallable", "searchCallable"] + } + } + } + } + } + } +} \ No newline at end of file diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/package-info.java b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/package-info.java new file mode 100644 index 000000000000..e4b301c8828d --- /dev/null +++ b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/package-info.java @@ -0,0 +1,46 @@ +/* + * Copyright 2025 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. + */ + +/** + * A client to Merchant API + * + *

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

======================= ReportServiceClient ======================= + * + *

Service Description: Service for retrieving reports and insights about your products, their + * performance, and their competitive environment on Google. + * + *

Sample for ReportServiceClient: + * + *

{@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 (ReportServiceClient reportServiceClient = ReportServiceClient.create()) {
+ *   String parent = "parent-995424086";
+ *   for (ReportRow element : reportServiceClient.search(parent).iterateAll()) {
+ *     // doThingsWith(element);
+ *   }
+ * }
+ * }
+ */ +@Generated("by gapic-generator-java") +package com.google.shopping.merchant.reports.v1alpha; + +import javax.annotation.Generated; diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/GrpcReportServiceCallableFactory.java b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/GrpcReportServiceCallableFactory.java new file mode 100644 index 000000000000..45368b1c9207 --- /dev/null +++ b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/GrpcReportServiceCallableFactory.java @@ -0,0 +1,115 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha.stub; + +import com.google.api.core.BetaApi; +import com.google.api.gax.grpc.GrpcCallSettings; +import com.google.api.gax.grpc.GrpcCallableFactory; +import com.google.api.gax.grpc.GrpcStubCallableFactory; +import com.google.api.gax.rpc.BatchingCallSettings; +import com.google.api.gax.rpc.BidiStreamingCallable; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.ClientStreamingCallable; +import com.google.api.gax.rpc.OperationCallSettings; +import com.google.api.gax.rpc.OperationCallable; +import com.google.api.gax.rpc.PagedCallSettings; +import com.google.api.gax.rpc.ServerStreamingCallSettings; +import com.google.api.gax.rpc.ServerStreamingCallable; +import com.google.api.gax.rpc.StreamingCallSettings; +import com.google.api.gax.rpc.UnaryCallSettings; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.longrunning.Operation; +import com.google.longrunning.stub.OperationsStub; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * gRPC callable factory implementation for the ReportService service API. + * + *

This class is for advanced usage. + */ +@BetaApi +@Generated("by gapic-generator-java") +public class GrpcReportServiceCallableFactory implements GrpcStubCallableFactory { + + @Override + public UnaryCallable createUnaryCallable( + GrpcCallSettings grpcCallSettings, + UnaryCallSettings callSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createUnaryCallable(grpcCallSettings, callSettings, clientContext); + } + + @Override + public + UnaryCallable createPagedCallable( + GrpcCallSettings grpcCallSettings, + PagedCallSettings callSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createPagedCallable(grpcCallSettings, callSettings, clientContext); + } + + @Override + public UnaryCallable createBatchingCallable( + GrpcCallSettings grpcCallSettings, + BatchingCallSettings callSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createBatchingCallable( + grpcCallSettings, callSettings, clientContext); + } + + @Override + public + OperationCallable createOperationCallable( + GrpcCallSettings grpcCallSettings, + OperationCallSettings callSettings, + ClientContext clientContext, + OperationsStub operationsStub) { + return GrpcCallableFactory.createOperationCallable( + grpcCallSettings, callSettings, clientContext, operationsStub); + } + + @Override + public + BidiStreamingCallable createBidiStreamingCallable( + GrpcCallSettings grpcCallSettings, + StreamingCallSettings callSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createBidiStreamingCallable( + grpcCallSettings, callSettings, clientContext); + } + + @Override + public + ServerStreamingCallable createServerStreamingCallable( + GrpcCallSettings grpcCallSettings, + ServerStreamingCallSettings callSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createServerStreamingCallable( + grpcCallSettings, callSettings, clientContext); + } + + @Override + public + ClientStreamingCallable createClientStreamingCallable( + GrpcCallSettings grpcCallSettings, + StreamingCallSettings callSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createClientStreamingCallable( + grpcCallSettings, callSettings, clientContext); + } +} diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/GrpcReportServiceStub.java b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/GrpcReportServiceStub.java new file mode 100644 index 000000000000..fdece084db9d --- /dev/null +++ b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/GrpcReportServiceStub.java @@ -0,0 +1,171 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha.stub; + +import static com.google.shopping.merchant.reports.v1alpha.ReportServiceClient.SearchPagedResponse; + +import com.google.api.core.BetaApi; +import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.core.BackgroundResourceAggregation; +import com.google.api.gax.grpc.GrpcCallSettings; +import com.google.api.gax.grpc.GrpcStubCallableFactory; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.RequestParamsBuilder; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.longrunning.stub.GrpcOperationsStub; +import com.google.shopping.merchant.reports.v1alpha.SearchRequest; +import com.google.shopping.merchant.reports.v1alpha.SearchResponse; +import io.grpc.MethodDescriptor; +import io.grpc.protobuf.ProtoUtils; +import java.io.IOException; +import java.util.concurrent.TimeUnit; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * gRPC stub implementation for the ReportService service API. + * + *

This class is for advanced usage and reflects the underlying API directly. + */ +@BetaApi +@Generated("by gapic-generator-java") +public class GrpcReportServiceStub extends ReportServiceStub { + private static final MethodDescriptor searchMethodDescriptor = + MethodDescriptor.newBuilder() + .setType(MethodDescriptor.MethodType.UNARY) + .setFullMethodName("google.shopping.merchant.reports.v1alpha.ReportService/Search") + .setRequestMarshaller(ProtoUtils.marshaller(SearchRequest.getDefaultInstance())) + .setResponseMarshaller(ProtoUtils.marshaller(SearchResponse.getDefaultInstance())) + .build(); + + private final UnaryCallable searchCallable; + private final UnaryCallable searchPagedCallable; + + private final BackgroundResource backgroundResources; + private final GrpcOperationsStub operationsStub; + private final GrpcStubCallableFactory callableFactory; + + public static final GrpcReportServiceStub create(ReportServiceStubSettings settings) + throws IOException { + return new GrpcReportServiceStub(settings, ClientContext.create(settings)); + } + + public static final GrpcReportServiceStub create(ClientContext clientContext) throws IOException { + return new GrpcReportServiceStub(ReportServiceStubSettings.newBuilder().build(), clientContext); + } + + public static final GrpcReportServiceStub create( + ClientContext clientContext, GrpcStubCallableFactory callableFactory) throws IOException { + return new GrpcReportServiceStub( + ReportServiceStubSettings.newBuilder().build(), clientContext, callableFactory); + } + + /** + * Constructs an instance of GrpcReportServiceStub, using the given settings. This is protected so + * that it is easy to make a subclass, but otherwise, the static factory methods should be + * preferred. + */ + protected GrpcReportServiceStub(ReportServiceStubSettings settings, ClientContext clientContext) + throws IOException { + this(settings, clientContext, new GrpcReportServiceCallableFactory()); + } + + /** + * Constructs an instance of GrpcReportServiceStub, using the given settings. This is protected so + * that it is easy to make a subclass, but otherwise, the static factory methods should be + * preferred. + */ + protected GrpcReportServiceStub( + ReportServiceStubSettings settings, + ClientContext clientContext, + GrpcStubCallableFactory callableFactory) + throws IOException { + this.callableFactory = callableFactory; + this.operationsStub = GrpcOperationsStub.create(clientContext, callableFactory); + + GrpcCallSettings searchTransportSettings = + GrpcCallSettings.newBuilder() + .setMethodDescriptor(searchMethodDescriptor) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) + .build(); + + this.searchCallable = + callableFactory.createUnaryCallable( + searchTransportSettings, settings.searchSettings(), clientContext); + this.searchPagedCallable = + callableFactory.createPagedCallable( + searchTransportSettings, settings.searchSettings(), clientContext); + + this.backgroundResources = + new BackgroundResourceAggregation(clientContext.getBackgroundResources()); + } + + public GrpcOperationsStub getOperationsStub() { + return operationsStub; + } + + @Override + public UnaryCallable searchCallable() { + return searchCallable; + } + + @Override + public UnaryCallable searchPagedCallable() { + return searchPagedCallable; + } + + @Override + public final void close() { + try { + backgroundResources.close(); + } catch (RuntimeException e) { + throw e; + } catch (Exception e) { + throw new IllegalStateException("Failed to close resource", e); + } + } + + @Override + public void shutdown() { + backgroundResources.shutdown(); + } + + @Override + public boolean isShutdown() { + return backgroundResources.isShutdown(); + } + + @Override + public boolean isTerminated() { + return backgroundResources.isTerminated(); + } + + @Override + public void shutdownNow() { + backgroundResources.shutdownNow(); + } + + @Override + public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { + return backgroundResources.awaitTermination(duration, unit); + } +} diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/HttpJsonReportServiceCallableFactory.java b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/HttpJsonReportServiceCallableFactory.java new file mode 100644 index 000000000000..eb04ca263469 --- /dev/null +++ b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/HttpJsonReportServiceCallableFactory.java @@ -0,0 +1,103 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha.stub; + +import com.google.api.core.BetaApi; +import com.google.api.gax.httpjson.HttpJsonCallSettings; +import com.google.api.gax.httpjson.HttpJsonCallableFactory; +import com.google.api.gax.httpjson.HttpJsonOperationSnapshotCallable; +import com.google.api.gax.httpjson.HttpJsonStubCallableFactory; +import com.google.api.gax.httpjson.longrunning.stub.OperationsStub; +import com.google.api.gax.rpc.BatchingCallSettings; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.OperationCallSettings; +import com.google.api.gax.rpc.OperationCallable; +import com.google.api.gax.rpc.PagedCallSettings; +import com.google.api.gax.rpc.ServerStreamingCallSettings; +import com.google.api.gax.rpc.ServerStreamingCallable; +import com.google.api.gax.rpc.UnaryCallSettings; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.longrunning.Operation; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * REST callable factory implementation for the ReportService service API. + * + *

This class is for advanced usage. + */ +@BetaApi +@Generated("by gapic-generator-java") +public class HttpJsonReportServiceCallableFactory + implements HttpJsonStubCallableFactory { + + @Override + public UnaryCallable createUnaryCallable( + HttpJsonCallSettings httpJsonCallSettings, + UnaryCallSettings callSettings, + ClientContext clientContext) { + return HttpJsonCallableFactory.createUnaryCallable( + httpJsonCallSettings, callSettings, clientContext); + } + + @Override + public + UnaryCallable createPagedCallable( + HttpJsonCallSettings httpJsonCallSettings, + PagedCallSettings callSettings, + ClientContext clientContext) { + return HttpJsonCallableFactory.createPagedCallable( + httpJsonCallSettings, callSettings, clientContext); + } + + @Override + public UnaryCallable createBatchingCallable( + HttpJsonCallSettings httpJsonCallSettings, + BatchingCallSettings callSettings, + ClientContext clientContext) { + return HttpJsonCallableFactory.createBatchingCallable( + httpJsonCallSettings, callSettings, clientContext); + } + + @Override + public + OperationCallable createOperationCallable( + HttpJsonCallSettings httpJsonCallSettings, + OperationCallSettings callSettings, + ClientContext clientContext, + OperationsStub operationsStub) { + UnaryCallable innerCallable = + HttpJsonCallableFactory.createBaseUnaryCallable( + httpJsonCallSettings, callSettings.getInitialCallSettings(), clientContext); + HttpJsonOperationSnapshotCallable initialCallable = + new HttpJsonOperationSnapshotCallable( + innerCallable, + httpJsonCallSettings.getMethodDescriptor().getOperationSnapshotFactory()); + return HttpJsonCallableFactory.createOperationCallable( + callSettings, clientContext, operationsStub.longRunningClient(), initialCallable); + } + + @Override + public + ServerStreamingCallable createServerStreamingCallable( + HttpJsonCallSettings httpJsonCallSettings, + ServerStreamingCallSettings callSettings, + ClientContext clientContext) { + return HttpJsonCallableFactory.createServerStreamingCallable( + httpJsonCallSettings, callSettings, clientContext); + } +} diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/HttpJsonReportServiceStub.java b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/HttpJsonReportServiceStub.java new file mode 100644 index 000000000000..bb9b81e5909c --- /dev/null +++ b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/HttpJsonReportServiceStub.java @@ -0,0 +1,212 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha.stub; + +import static com.google.shopping.merchant.reports.v1alpha.ReportServiceClient.SearchPagedResponse; + +import com.google.api.core.BetaApi; +import com.google.api.core.InternalApi; +import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.core.BackgroundResourceAggregation; +import com.google.api.gax.httpjson.ApiMethodDescriptor; +import com.google.api.gax.httpjson.HttpJsonCallSettings; +import com.google.api.gax.httpjson.HttpJsonStubCallableFactory; +import com.google.api.gax.httpjson.ProtoMessageRequestFormatter; +import com.google.api.gax.httpjson.ProtoMessageResponseParser; +import com.google.api.gax.httpjson.ProtoRestSerializer; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.RequestParamsBuilder; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.protobuf.TypeRegistry; +import com.google.shopping.merchant.reports.v1alpha.SearchRequest; +import com.google.shopping.merchant.reports.v1alpha.SearchResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * REST stub implementation for the ReportService service API. + * + *

This class is for advanced usage and reflects the underlying API directly. + */ +@BetaApi +@Generated("by gapic-generator-java") +public class HttpJsonReportServiceStub extends ReportServiceStub { + private static final TypeRegistry typeRegistry = TypeRegistry.newBuilder().build(); + + private static final ApiMethodDescriptor searchMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.shopping.merchant.reports.v1alpha.ReportService/Search") + .setHttpMethod("POST") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/reports/v1alpha/{parent=accounts/*}/reports:search", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "parent", request.getParent()); + return fields; + }) + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putQueryParam(fields, "$alt", "json;enum-encoding=int"); + return fields; + }) + .setRequestBodyExtractor( + request -> + ProtoRestSerializer.create() + .toBody("*", request.toBuilder().clearParent().build(), true)) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(SearchResponse.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private final UnaryCallable searchCallable; + private final UnaryCallable searchPagedCallable; + + private final BackgroundResource backgroundResources; + private final HttpJsonStubCallableFactory callableFactory; + + public static final HttpJsonReportServiceStub create(ReportServiceStubSettings settings) + throws IOException { + return new HttpJsonReportServiceStub(settings, ClientContext.create(settings)); + } + + public static final HttpJsonReportServiceStub create(ClientContext clientContext) + throws IOException { + return new HttpJsonReportServiceStub( + ReportServiceStubSettings.newHttpJsonBuilder().build(), clientContext); + } + + public static final HttpJsonReportServiceStub create( + ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException { + return new HttpJsonReportServiceStub( + ReportServiceStubSettings.newHttpJsonBuilder().build(), clientContext, callableFactory); + } + + /** + * Constructs an instance of HttpJsonReportServiceStub, using the given settings. This is + * protected so that it is easy to make a subclass, but otherwise, the static factory methods + * should be preferred. + */ + protected HttpJsonReportServiceStub( + ReportServiceStubSettings settings, ClientContext clientContext) throws IOException { + this(settings, clientContext, new HttpJsonReportServiceCallableFactory()); + } + + /** + * Constructs an instance of HttpJsonReportServiceStub, using the given settings. This is + * protected so that it is easy to make a subclass, but otherwise, the static factory methods + * should be preferred. + */ + protected HttpJsonReportServiceStub( + ReportServiceStubSettings settings, + ClientContext clientContext, + HttpJsonStubCallableFactory callableFactory) + throws IOException { + this.callableFactory = callableFactory; + + HttpJsonCallSettings searchTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(searchMethodDescriptor) + .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) + .build(); + + this.searchCallable = + callableFactory.createUnaryCallable( + searchTransportSettings, settings.searchSettings(), clientContext); + this.searchPagedCallable = + callableFactory.createPagedCallable( + searchTransportSettings, settings.searchSettings(), clientContext); + + this.backgroundResources = + new BackgroundResourceAggregation(clientContext.getBackgroundResources()); + } + + @InternalApi + public static List getMethodDescriptors() { + List methodDescriptors = new ArrayList<>(); + methodDescriptors.add(searchMethodDescriptor); + return methodDescriptors; + } + + @Override + public UnaryCallable searchCallable() { + return searchCallable; + } + + @Override + public UnaryCallable searchPagedCallable() { + return searchPagedCallable; + } + + @Override + public final void close() { + try { + backgroundResources.close(); + } catch (RuntimeException e) { + throw e; + } catch (Exception e) { + throw new IllegalStateException("Failed to close resource", e); + } + } + + @Override + public void shutdown() { + backgroundResources.shutdown(); + } + + @Override + public boolean isShutdown() { + return backgroundResources.isShutdown(); + } + + @Override + public boolean isTerminated() { + return backgroundResources.isTerminated(); + } + + @Override + public void shutdownNow() { + backgroundResources.shutdownNow(); + } + + @Override + public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { + return backgroundResources.awaitTermination(duration, unit); + } +} diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/ReportServiceStub.java b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/ReportServiceStub.java new file mode 100644 index 000000000000..08969d53b2a7 --- /dev/null +++ b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/ReportServiceStub.java @@ -0,0 +1,48 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha.stub; + +import static com.google.shopping.merchant.reports.v1alpha.ReportServiceClient.SearchPagedResponse; + +import com.google.api.core.BetaApi; +import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.shopping.merchant.reports.v1alpha.SearchRequest; +import com.google.shopping.merchant.reports.v1alpha.SearchResponse; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * Base stub class for the ReportService service API. + * + *

This class is for advanced usage and reflects the underlying API directly. + */ +@BetaApi +@Generated("by gapic-generator-java") +public abstract class ReportServiceStub implements BackgroundResource { + + public UnaryCallable searchPagedCallable() { + throw new UnsupportedOperationException("Not implemented: searchPagedCallable()"); + } + + public UnaryCallable searchCallable() { + throw new UnsupportedOperationException("Not implemented: searchCallable()"); + } + + @Override + public abstract void close(); +} diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/ReportServiceStubSettings.java b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/ReportServiceStubSettings.java new file mode 100644 index 000000000000..8ce8f1dd7d31 --- /dev/null +++ b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/ReportServiceStubSettings.java @@ -0,0 +1,405 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha.stub; + +import static com.google.shopping.merchant.reports.v1alpha.ReportServiceClient.SearchPagedResponse; + +import com.google.api.core.ApiFunction; +import com.google.api.core.ApiFuture; +import com.google.api.core.BetaApi; +import com.google.api.core.ObsoleteApi; +import com.google.api.gax.core.GaxProperties; +import com.google.api.gax.core.GoogleCredentialsProvider; +import com.google.api.gax.core.InstantiatingExecutorProvider; +import com.google.api.gax.grpc.GaxGrpcProperties; +import com.google.api.gax.grpc.GrpcTransportChannel; +import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; +import com.google.api.gax.httpjson.GaxHttpJsonProperties; +import com.google.api.gax.httpjson.HttpJsonTransportChannel; +import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider; +import com.google.api.gax.retrying.RetrySettings; +import com.google.api.gax.rpc.ApiCallContext; +import com.google.api.gax.rpc.ApiClientHeaderProvider; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.PageContext; +import com.google.api.gax.rpc.PagedCallSettings; +import com.google.api.gax.rpc.PagedListDescriptor; +import com.google.api.gax.rpc.PagedListResponseFactory; +import com.google.api.gax.rpc.StatusCode; +import com.google.api.gax.rpc.StubSettings; +import com.google.api.gax.rpc.TransportChannelProvider; +import com.google.api.gax.rpc.UnaryCallSettings; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Lists; +import com.google.shopping.merchant.reports.v1alpha.ReportRow; +import com.google.shopping.merchant.reports.v1alpha.SearchRequest; +import com.google.shopping.merchant.reports.v1alpha.SearchResponse; +import java.io.IOException; +import java.time.Duration; +import java.util.List; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * Settings class to configure an instance of {@link ReportServiceStub}. + * + *

The default instance has everything set to sensible defaults: + * + *

    + *
  • The default service address (merchantapi.googleapis.com) and default port (443) are used. + *
  • Credentials are acquired automatically through Application Default Credentials. + *
  • Retries are configured for idempotent methods but not for non-idempotent methods. + *
+ * + *

The builder of this class is recursive, so contained classes are themselves builders. When + * build() is called, the tree of builders is called to create the complete settings object. + * + *

For example, to set the + * [RetrySettings](https://cloud.google.com/java/docs/reference/gax/latest/com.google.api.gax.retrying.RetrySettings) + * of search: + * + *

{@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
+ * ReportServiceStubSettings.Builder reportServiceSettingsBuilder =
+ *     ReportServiceStubSettings.newBuilder();
+ * reportServiceSettingsBuilder
+ *     .searchSettings()
+ *     .setRetrySettings(
+ *         reportServiceSettingsBuilder
+ *             .searchSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setInitialRetryDelayDuration(Duration.ofSeconds(1))
+ *             .setInitialRpcTimeoutDuration(Duration.ofSeconds(5))
+ *             .setMaxAttempts(5)
+ *             .setMaxRetryDelayDuration(Duration.ofSeconds(30))
+ *             .setMaxRpcTimeoutDuration(Duration.ofSeconds(60))
+ *             .setRetryDelayMultiplier(1.3)
+ *             .setRpcTimeoutMultiplier(1.5)
+ *             .setTotalTimeoutDuration(Duration.ofSeconds(300))
+ *             .build());
+ * ReportServiceStubSettings reportServiceSettings = reportServiceSettingsBuilder.build();
+ * }
+ * + * Please refer to the [Client Side Retry + * Guide](https://github.com/googleapis/google-cloud-java/blob/main/docs/client_retries.md) for + * additional support in setting retries. + */ +@BetaApi +@Generated("by gapic-generator-java") +public class ReportServiceStubSettings extends StubSettings { + /** The default scopes of the service. */ + private static final ImmutableList DEFAULT_SERVICE_SCOPES = + ImmutableList.builder().add("https://www.googleapis.com/auth/content").build(); + + private final PagedCallSettings + searchSettings; + + private static final PagedListDescriptor + SEARCH_PAGE_STR_DESC = + new PagedListDescriptor() { + @Override + public String emptyToken() { + return ""; + } + + @Override + public SearchRequest injectToken(SearchRequest payload, String token) { + return SearchRequest.newBuilder(payload).setPageToken(token).build(); + } + + @Override + public SearchRequest injectPageSize(SearchRequest payload, int pageSize) { + return SearchRequest.newBuilder(payload).setPageSize(pageSize).build(); + } + + @Override + public Integer extractPageSize(SearchRequest payload) { + return payload.getPageSize(); + } + + @Override + public String extractNextToken(SearchResponse payload) { + return payload.getNextPageToken(); + } + + @Override + public Iterable extractResources(SearchResponse payload) { + return payload.getResultsList(); + } + }; + + private static final PagedListResponseFactory + SEARCH_PAGE_STR_FACT = + new PagedListResponseFactory() { + @Override + public ApiFuture getFuturePagedResponse( + UnaryCallable callable, + SearchRequest request, + ApiCallContext context, + ApiFuture futureResponse) { + PageContext pageContext = + PageContext.create(callable, SEARCH_PAGE_STR_DESC, request, context); + return SearchPagedResponse.createAsync(pageContext, futureResponse); + } + }; + + /** Returns the object with the settings used for calls to search. */ + public PagedCallSettings searchSettings() { + return searchSettings; + } + + public ReportServiceStub createStub() throws IOException { + if (getTransportChannelProvider() + .getTransportName() + .equals(GrpcTransportChannel.getGrpcTransportName())) { + return GrpcReportServiceStub.create(this); + } + if (getTransportChannelProvider() + .getTransportName() + .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) { + return HttpJsonReportServiceStub.create(this); + } + throw new UnsupportedOperationException( + String.format( + "Transport not supported: %s", getTransportChannelProvider().getTransportName())); + } + + /** Returns the default service name. */ + @Override + public String getServiceName() { + return "merchantapi"; + } + + /** Returns a builder for the default ExecutorProvider for this service. */ + public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() { + return InstantiatingExecutorProvider.newBuilder(); + } + + /** Returns the default service endpoint. */ + @ObsoleteApi("Use getEndpoint() instead") + public static String getDefaultEndpoint() { + return "merchantapi.googleapis.com:443"; + } + + /** Returns the default mTLS service endpoint. */ + public static String getDefaultMtlsEndpoint() { + return "merchantapi.mtls.googleapis.com:443"; + } + + /** Returns the default service scopes. */ + public static List getDefaultServiceScopes() { + return DEFAULT_SERVICE_SCOPES; + } + + /** Returns a builder for the default credentials for this service. */ + public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { + return GoogleCredentialsProvider.newBuilder() + .setScopesToApply(DEFAULT_SERVICE_SCOPES) + .setUseJwtAccessWithScope(true); + } + + /** Returns a builder for the default gRPC ChannelProvider for this service. */ + public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() { + return InstantiatingGrpcChannelProvider.newBuilder() + .setMaxInboundMessageSize(Integer.MAX_VALUE); + } + + /** Returns a builder for the default REST ChannelProvider for this service. */ + @BetaApi + public static InstantiatingHttpJsonChannelProvider.Builder + defaultHttpJsonTransportProviderBuilder() { + return InstantiatingHttpJsonChannelProvider.newBuilder(); + } + + public static TransportChannelProvider defaultTransportChannelProvider() { + return defaultGrpcTransportProviderBuilder().build(); + } + + public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() { + return ApiClientHeaderProvider.newBuilder() + .setGeneratedLibToken( + "gapic", GaxProperties.getLibraryVersion(ReportServiceStubSettings.class)) + .setTransportToken( + GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion()); + } + + public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() { + return ApiClientHeaderProvider.newBuilder() + .setGeneratedLibToken( + "gapic", GaxProperties.getLibraryVersion(ReportServiceStubSettings.class)) + .setTransportToken( + GaxHttpJsonProperties.getHttpJsonTokenName(), + GaxHttpJsonProperties.getHttpJsonVersion()); + } + + public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { + return ReportServiceStubSettings.defaultGrpcApiClientHeaderProviderBuilder(); + } + + /** Returns a new gRPC builder for this class. */ + public static Builder newBuilder() { + return Builder.createDefault(); + } + + /** Returns a new REST builder for this class. */ + public static Builder newHttpJsonBuilder() { + return Builder.createHttpJsonDefault(); + } + + /** Returns a new builder for this class. */ + public static Builder newBuilder(ClientContext clientContext) { + return new Builder(clientContext); + } + + /** Returns a builder containing all the values of this settings class. */ + public Builder toBuilder() { + return new Builder(this); + } + + protected ReportServiceStubSettings(Builder settingsBuilder) throws IOException { + super(settingsBuilder); + + searchSettings = settingsBuilder.searchSettings().build(); + } + + /** Builder for ReportServiceStubSettings. */ + public static class Builder extends StubSettings.Builder { + private final ImmutableList> unaryMethodSettingsBuilders; + private final PagedCallSettings.Builder + searchSettings; + private static final ImmutableMap> + RETRYABLE_CODE_DEFINITIONS; + + static { + ImmutableMap.Builder> definitions = + ImmutableMap.builder(); + definitions.put( + "retry_policy_0_codes", + ImmutableSet.copyOf(Lists.newArrayList(StatusCode.Code.UNAVAILABLE))); + RETRYABLE_CODE_DEFINITIONS = definitions.build(); + } + + private static final ImmutableMap RETRY_PARAM_DEFINITIONS; + + static { + ImmutableMap.Builder definitions = ImmutableMap.builder(); + RetrySettings settings = null; + settings = + RetrySettings.newBuilder() + .setInitialRetryDelayDuration(Duration.ofMillis(1000L)) + .setRetryDelayMultiplier(1.3) + .setMaxRetryDelayDuration(Duration.ofMillis(10000L)) + .setInitialRpcTimeoutDuration(Duration.ofMillis(60000L)) + .setRpcTimeoutMultiplier(1.0) + .setMaxRpcTimeoutDuration(Duration.ofMillis(60000L)) + .setTotalTimeoutDuration(Duration.ofMillis(60000L)) + .build(); + definitions.put("retry_policy_0_params", settings); + RETRY_PARAM_DEFINITIONS = definitions.build(); + } + + protected Builder() { + this(((ClientContext) null)); + } + + protected Builder(ClientContext clientContext) { + super(clientContext); + + searchSettings = PagedCallSettings.newBuilder(SEARCH_PAGE_STR_FACT); + + unaryMethodSettingsBuilders = + ImmutableList.>of(searchSettings); + initDefaults(this); + } + + protected Builder(ReportServiceStubSettings settings) { + super(settings); + + searchSettings = settings.searchSettings.toBuilder(); + + unaryMethodSettingsBuilders = + ImmutableList.>of(searchSettings); + } + + private static Builder createDefault() { + Builder builder = new Builder(((ClientContext) null)); + + builder.setTransportChannelProvider(defaultTransportChannelProvider()); + builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build()); + builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build()); + builder.setMtlsEndpoint(getDefaultMtlsEndpoint()); + builder.setSwitchToMtlsEndpointAllowed(true); + + return initDefaults(builder); + } + + private static Builder createHttpJsonDefault() { + Builder builder = new Builder(((ClientContext) null)); + + builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build()); + builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build()); + builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build()); + builder.setMtlsEndpoint(getDefaultMtlsEndpoint()); + builder.setSwitchToMtlsEndpointAllowed(true); + + return initDefaults(builder); + } + + private static Builder initDefaults(Builder builder) { + builder + .searchSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params")); + + return builder; + } + + /** + * Applies the given settings updater function to all of the unary API methods in this service. + * + *

Note: This method does not support applying settings to streaming methods. + */ + public Builder applyToAllUnaryMethods( + ApiFunction, Void> settingsUpdater) { + super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater); + return this; + } + + public ImmutableList> unaryMethodSettingsBuilders() { + return unaryMethodSettingsBuilders; + } + + /** Returns the builder for the settings used for calls to search. */ + public PagedCallSettings.Builder + searchSettings() { + return searchSettings; + } + + @Override + public ReportServiceStubSettings build() throws IOException { + return new ReportServiceStubSettings(this); + } + } +} diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/resources/META-INF/native-image/com.google.shopping.merchant.reports.v1alpha/reflect-config.json b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/resources/META-INF/native-image/com.google.shopping.merchant.reports.v1alpha/reflect-config.json new file mode 100644 index 000000000000..ba814d891c31 --- /dev/null +++ b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/resources/META-INF/native-image/com.google.shopping.merchant.reports.v1alpha/reflect-config.json @@ -0,0 +1,1892 @@ +[ + { + "name": "com.google.api.ClientLibraryDestination", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ClientLibraryOrganization", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ClientLibrarySettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ClientLibrarySettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CommonLanguageSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CommonLanguageSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CppSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CppSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CustomHttpPattern", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CustomHttpPattern$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.DotnetSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.DotnetSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.FieldBehavior", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.GoSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.GoSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Http", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Http$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.HttpRule", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.HttpRule$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.JavaSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.JavaSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.LaunchStage", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings$LongRunning", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings$LongRunning$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.NodeSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.NodeSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PhpSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PhpSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Publishing", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Publishing$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PythonSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PythonSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PythonSettings$ExperimentalFeatures", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PythonSettings$ExperimentalFeatures$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor$History", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor$Style", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceReference", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceReference$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.RubySettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.RubySettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.SelectiveGapicGeneration", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.SelectiveGapicGeneration$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ExtensionRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ExtensionRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ReservedRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ReservedRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$Edition", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto$EnumReservedRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto$EnumReservedRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$Declaration", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$Declaration$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$VerificationState", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSet", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSet$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSet$EnumType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSet$FieldPresence", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSet$JsonFormat", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSet$MessageEncoding", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSet$RepeatedFieldEncoding", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSet$Utf8Validation", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSetDefaults", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSetDefaults$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSetDefaults$FeatureSetEditionDefault", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSetDefaults$FeatureSetEditionDefault$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Label", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Type", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$CType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$EditionDefault", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$EditionDefault$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$JSType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$OptionRetention", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$OptionTargetType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorSet", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorSet$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileOptions$OptimizeMode", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Annotation", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Annotation$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Annotation$Semantic", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MessageOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MessageOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodOptions$IdempotencyLevel", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo$Location", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo$Location$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption$NamePart", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption$NamePart$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Duration", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Duration$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Timestamp", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Timestamp$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView$InventoryStatus", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.MarketingMethod", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.MarketingMethod$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.MarketingMethod$MarketingMethodEnum", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView$Effectiveness", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ProductView", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ProductView$AggregatedReportingContextStatus", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ProductView$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ProductView$ClickPotential", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ProductView$ItemIssue", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ProductView$ItemIssue$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ProductView$ItemIssue$ItemIssueResolution", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ProductView$ItemIssue$ItemIssueSeverity", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ProductView$ItemIssue$ItemIssueSeverity$AggregatedIssueSeverity", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ProductView$ItemIssue$ItemIssueSeverity$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ProductView$ItemIssue$ItemIssueSeverity$IssueSeverityPerReportingContext", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ProductView$ItemIssue$ItemIssueSeverity$IssueSeverityPerReportingContext$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ProductView$ItemIssue$ItemIssueType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ProductView$ItemIssue$ItemIssueType$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.RelativeDemand", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.RelativeDemand$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.RelativeDemand$RelativeDemandEnum", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType$RelativeDemandChangeTypeEnum", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ReportGranularity", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ReportGranularity$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ReportGranularity$ReportGranularityEnum", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ReportRow", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.ReportRow$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.SearchRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.SearchRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.SearchResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.SearchResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.TrafficSource", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.TrafficSource$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.TrafficSource$TrafficSourceEnum", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.type.Channel", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.type.Channel$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.type.Channel$ChannelEnum", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.type.CustomAttribute", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.type.CustomAttribute$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.type.Destination", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.type.Destination$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.type.Destination$DestinationEnum", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.type.Price", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.type.Price$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.type.ReportingContext", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.type.ReportingContext$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.type.ReportingContext$ReportingContextEnum", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.type.Weight", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.type.Weight$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.type.Weight$WeightUnit", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.type.Date", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.type.Date$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + } +] \ No newline at end of file diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports/src/test/java/com/google/shopping/merchant/reports/v1alpha/MockReportService.java b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/test/java/com/google/shopping/merchant/reports/v1alpha/MockReportService.java new file mode 100644 index 000000000000..6bb0c2610ed8 --- /dev/null +++ b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/test/java/com/google/shopping/merchant/reports/v1alpha/MockReportService.java @@ -0,0 +1,59 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha; + +import com.google.api.core.BetaApi; +import com.google.api.gax.grpc.testing.MockGrpcService; +import com.google.protobuf.AbstractMessage; +import io.grpc.ServerServiceDefinition; +import java.util.List; +import javax.annotation.Generated; + +@BetaApi +@Generated("by gapic-generator-java") +public class MockReportService implements MockGrpcService { + private final MockReportServiceImpl serviceImpl; + + public MockReportService() { + serviceImpl = new MockReportServiceImpl(); + } + + @Override + public List getRequests() { + return serviceImpl.getRequests(); + } + + @Override + public void addResponse(AbstractMessage response) { + serviceImpl.addResponse(response); + } + + @Override + public void addException(Exception exception) { + serviceImpl.addException(exception); + } + + @Override + public ServerServiceDefinition getServiceDefinition() { + return serviceImpl.bindService(); + } + + @Override + public void reset() { + serviceImpl.reset(); + } +} diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports/src/test/java/com/google/shopping/merchant/reports/v1alpha/MockReportServiceImpl.java b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/test/java/com/google/shopping/merchant/reports/v1alpha/MockReportServiceImpl.java new file mode 100644 index 000000000000..21d3e5b7a234 --- /dev/null +++ b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/test/java/com/google/shopping/merchant/reports/v1alpha/MockReportServiceImpl.java @@ -0,0 +1,80 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha; + +import com.google.api.core.BetaApi; +import com.google.protobuf.AbstractMessage; +import com.google.shopping.merchant.reports.v1alpha.ReportServiceGrpc.ReportServiceImplBase; +import io.grpc.stub.StreamObserver; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; +import javax.annotation.Generated; + +@BetaApi +@Generated("by gapic-generator-java") +public class MockReportServiceImpl extends ReportServiceImplBase { + private List requests; + private Queue responses; + + public MockReportServiceImpl() { + requests = new ArrayList<>(); + responses = new LinkedList<>(); + } + + public List getRequests() { + return requests; + } + + public void addResponse(AbstractMessage response) { + responses.add(response); + } + + public void setResponses(List responses) { + this.responses = new LinkedList(responses); + } + + public void addException(Exception exception) { + responses.add(exception); + } + + public void reset() { + requests = new ArrayList<>(); + responses = new LinkedList<>(); + } + + @Override + public void search(SearchRequest request, StreamObserver responseObserver) { + Object response = responses.poll(); + if (response instanceof SearchResponse) { + requests.add(request); + responseObserver.onNext(((SearchResponse) 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 Search, expected %s or %s", + response == null ? "null" : response.getClass().getName(), + SearchResponse.class.getName(), + Exception.class.getName()))); + } + } +} diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports/src/test/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceClientHttpJsonTest.java b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/test/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceClientHttpJsonTest.java new file mode 100644 index 000000000000..b4f4331a0f14 --- /dev/null +++ b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/test/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceClientHttpJsonTest.java @@ -0,0 +1,127 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha; + +import static com.google.shopping.merchant.reports.v1alpha.ReportServiceClient.SearchPagedResponse; + +import com.google.api.gax.core.NoCredentialsProvider; +import com.google.api.gax.httpjson.GaxHttpJsonProperties; +import com.google.api.gax.httpjson.testing.MockHttpService; +import com.google.api.gax.rpc.ApiClientHeaderProvider; +import com.google.api.gax.rpc.ApiException; +import com.google.api.gax.rpc.ApiExceptionFactory; +import com.google.api.gax.rpc.InvalidArgumentException; +import com.google.api.gax.rpc.StatusCode; +import com.google.api.gax.rpc.testing.FakeStatusCode; +import com.google.common.collect.Lists; +import com.google.shopping.merchant.reports.v1alpha.stub.HttpJsonReportServiceStub; +import java.io.IOException; +import java.util.Arrays; +import java.util.List; +import javax.annotation.Generated; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +@Generated("by gapic-generator-java") +public class ReportServiceClientHttpJsonTest { + private static MockHttpService mockService; + private static ReportServiceClient client; + + @BeforeClass + public static void startStaticServer() throws IOException { + mockService = + new MockHttpService( + HttpJsonReportServiceStub.getMethodDescriptors(), + ReportServiceSettings.getDefaultEndpoint()); + ReportServiceSettings settings = + ReportServiceSettings.newHttpJsonBuilder() + .setTransportChannelProvider( + ReportServiceSettings.defaultHttpJsonTransportProviderBuilder() + .setHttpTransport(mockService) + .build()) + .setCredentialsProvider(NoCredentialsProvider.create()) + .build(); + client = ReportServiceClient.create(settings); + } + + @AfterClass + public static void stopServer() { + client.close(); + } + + @Before + public void setUp() {} + + @After + public void tearDown() throws Exception { + mockService.reset(); + } + + @Test + public void searchTest() throws Exception { + ReportRow responsesElement = ReportRow.newBuilder().build(); + SearchResponse expectedResponse = + SearchResponse.newBuilder() + .setNextPageToken("") + .addAllResults(Arrays.asList(responsesElement)) + .build(); + mockService.addResponse(expectedResponse); + + String parent = "accounts/account-4811"; + + SearchPagedResponse pagedListResponse = client.search(parent); + + List resources = Lists.newArrayList(pagedListResponse.iterateAll()); + + Assert.assertEquals(1, resources.size()); + Assert.assertEquals(expectedResponse.getResultsList().get(0), resources.get(0)); + + List actualRequests = mockService.getRequestPaths(); + Assert.assertEquals(1, actualRequests.size()); + + String apiClientHeaderKey = + mockService + .getRequestHeaders() + .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) + .iterator() + .next(); + Assert.assertTrue( + GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() + .matcher(apiClientHeaderKey) + .matches()); + } + + @Test + public void searchExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String parent = "accounts/account-4811"; + client.search(parent); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } +} diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports/src/test/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceClientTest.java b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/test/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceClientTest.java new file mode 100644 index 000000000000..41d2adfdcb3f --- /dev/null +++ b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/test/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceClientTest.java @@ -0,0 +1,124 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha; + +import static com.google.shopping.merchant.reports.v1alpha.ReportServiceClient.SearchPagedResponse; + +import com.google.api.gax.core.NoCredentialsProvider; +import com.google.api.gax.grpc.GaxGrpcProperties; +import com.google.api.gax.grpc.testing.LocalChannelProvider; +import com.google.api.gax.grpc.testing.MockGrpcService; +import com.google.api.gax.grpc.testing.MockServiceHelper; +import com.google.api.gax.rpc.ApiClientHeaderProvider; +import com.google.api.gax.rpc.InvalidArgumentException; +import com.google.common.collect.Lists; +import com.google.protobuf.AbstractMessage; +import io.grpc.StatusRuntimeException; +import java.io.IOException; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import javax.annotation.Generated; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +@Generated("by gapic-generator-java") +public class ReportServiceClientTest { + private static MockReportService mockReportService; + private static MockServiceHelper mockServiceHelper; + private LocalChannelProvider channelProvider; + private ReportServiceClient client; + + @BeforeClass + public static void startStaticServer() { + mockReportService = new MockReportService(); + mockServiceHelper = + new MockServiceHelper( + UUID.randomUUID().toString(), Arrays.asList(mockReportService)); + mockServiceHelper.start(); + } + + @AfterClass + public static void stopServer() { + mockServiceHelper.stop(); + } + + @Before + public void setUp() throws IOException { + mockServiceHelper.reset(); + channelProvider = mockServiceHelper.createChannelProvider(); + ReportServiceSettings settings = + ReportServiceSettings.newBuilder() + .setTransportChannelProvider(channelProvider) + .setCredentialsProvider(NoCredentialsProvider.create()) + .build(); + client = ReportServiceClient.create(settings); + } + + @After + public void tearDown() throws Exception { + client.close(); + } + + @Test + public void searchTest() throws Exception { + ReportRow responsesElement = ReportRow.newBuilder().build(); + SearchResponse expectedResponse = + SearchResponse.newBuilder() + .setNextPageToken("") + .addAllResults(Arrays.asList(responsesElement)) + .build(); + mockReportService.addResponse(expectedResponse); + + String parent = "parent-995424086"; + + SearchPagedResponse pagedListResponse = client.search(parent); + + List resources = Lists.newArrayList(pagedListResponse.iterateAll()); + + Assert.assertEquals(1, resources.size()); + Assert.assertEquals(expectedResponse.getResultsList().get(0), resources.get(0)); + + List actualRequests = mockReportService.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + SearchRequest actualRequest = ((SearchRequest) actualRequests.get(0)); + + Assert.assertEquals(parent, actualRequest.getParent()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void searchExceptionTest() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockReportService.addException(exception); + + try { + String parent = "parent-995424086"; + client.search(parent); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } +} diff --git a/java-shopping-merchant-reports/grpc-google-shopping-merchant-reports-v1alpha/pom.xml b/java-shopping-merchant-reports/grpc-google-shopping-merchant-reports-v1alpha/pom.xml new file mode 100644 index 000000000000..ff404a22f975 --- /dev/null +++ b/java-shopping-merchant-reports/grpc-google-shopping-merchant-reports-v1alpha/pom.xml @@ -0,0 +1,45 @@ + + 4.0.0 + com.google.shopping.api.grpc + grpc-google-shopping-merchant-reports-v1alpha + 0.44.0-SNAPSHOT + grpc-google-shopping-merchant-reports-v1alpha + GRPC library for google-shopping-merchant-reports + + com.google.shopping + google-shopping-merchant-reports-parent + 0.44.0-SNAPSHOT + + + + io.grpc + grpc-api + + + io.grpc + grpc-stub + + + io.grpc + grpc-protobuf + + + com.google.protobuf + protobuf-java + + + com.google.api.grpc + proto-google-common-protos + + + com.google.shopping.api.grpc + proto-google-shopping-merchant-reports-v1alpha + + + com.google.guava + guava + + + diff --git a/java-shopping-merchant-reports/grpc-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceGrpc.java b/java-shopping-merchant-reports/grpc-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceGrpc.java new file mode 100644 index 000000000000..399c344a32ce --- /dev/null +++ b/java-shopping-merchant-reports/grpc-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportServiceGrpc.java @@ -0,0 +1,439 @@ +/* + * Copyright 2025 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. + */ +package com.google.shopping.merchant.reports.v1alpha; + +import static io.grpc.MethodDescriptor.generateFullMethodName; + +/** + * + * + *
+ * Service for retrieving reports and insights about your products, their
+ * performance, and their competitive environment on Google.
+ * 
+ */ +@javax.annotation.Generated( + value = "by gRPC proto compiler", + comments = "Source: google/shopping/merchant/reports/v1alpha/reports.proto") +@io.grpc.stub.annotations.GrpcGenerated +public final class ReportServiceGrpc { + + private ReportServiceGrpc() {} + + public static final java.lang.String SERVICE_NAME = + "google.shopping.merchant.reports.v1alpha.ReportService"; + + // Static method descriptors that strictly reflect the proto. + private static volatile io.grpc.MethodDescriptor< + com.google.shopping.merchant.reports.v1alpha.SearchRequest, + com.google.shopping.merchant.reports.v1alpha.SearchResponse> + getSearchMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "Search", + requestType = com.google.shopping.merchant.reports.v1alpha.SearchRequest.class, + responseType = com.google.shopping.merchant.reports.v1alpha.SearchResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor< + com.google.shopping.merchant.reports.v1alpha.SearchRequest, + com.google.shopping.merchant.reports.v1alpha.SearchResponse> + getSearchMethod() { + io.grpc.MethodDescriptor< + com.google.shopping.merchant.reports.v1alpha.SearchRequest, + com.google.shopping.merchant.reports.v1alpha.SearchResponse> + getSearchMethod; + if ((getSearchMethod = ReportServiceGrpc.getSearchMethod) == null) { + synchronized (ReportServiceGrpc.class) { + if ((getSearchMethod = ReportServiceGrpc.getSearchMethod) == null) { + ReportServiceGrpc.getSearchMethod = + getSearchMethod = + io.grpc.MethodDescriptor + . + newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "Search")) + .setSampledToLocalTracing(true) + .setRequestMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.shopping.merchant.reports.v1alpha.SearchRequest + .getDefaultInstance())) + .setResponseMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.shopping.merchant.reports.v1alpha.SearchResponse + .getDefaultInstance())) + .setSchemaDescriptor(new ReportServiceMethodDescriptorSupplier("Search")) + .build(); + } + } + } + return getSearchMethod; + } + + /** Creates a new async stub that supports all call types for the service */ + public static ReportServiceStub newStub(io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public ReportServiceStub newStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ReportServiceStub(channel, callOptions); + } + }; + return ReportServiceStub.newStub(factory, channel); + } + + /** Creates a new blocking-style stub that supports all types of calls on the service */ + public static ReportServiceBlockingV2Stub newBlockingV2Stub(io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public ReportServiceBlockingV2Stub newStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ReportServiceBlockingV2Stub(channel, callOptions); + } + }; + return ReportServiceBlockingV2Stub.newStub(factory, channel); + } + + /** + * Creates a new blocking-style stub that supports unary and streaming output calls on the service + */ + public static ReportServiceBlockingStub newBlockingStub(io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public ReportServiceBlockingStub newStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ReportServiceBlockingStub(channel, callOptions); + } + }; + return ReportServiceBlockingStub.newStub(factory, channel); + } + + /** Creates a new ListenableFuture-style stub that supports unary calls on the service */ + public static ReportServiceFutureStub newFutureStub(io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public ReportServiceFutureStub newStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ReportServiceFutureStub(channel, callOptions); + } + }; + return ReportServiceFutureStub.newStub(factory, channel); + } + + /** + * + * + *
+   * Service for retrieving reports and insights about your products, their
+   * performance, and their competitive environment on Google.
+   * 
+ */ + public interface AsyncService { + + /** + * + * + *
+     * Retrieves a report defined by a search query. The response might contain
+     * fewer rows than specified by `page_size`. Rely on `next_page_token` to
+     * determine if there are more rows to be requested.
+     * 
+ */ + default void search( + com.google.shopping.merchant.reports.v1alpha.SearchRequest request, + io.grpc.stub.StreamObserver + responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSearchMethod(), responseObserver); + } + } + + /** + * Base class for the server implementation of the service ReportService. + * + *
+   * Service for retrieving reports and insights about your products, their
+   * performance, and their competitive environment on Google.
+   * 
+ */ + public abstract static class ReportServiceImplBase + implements io.grpc.BindableService, AsyncService { + + @java.lang.Override + public final io.grpc.ServerServiceDefinition bindService() { + return ReportServiceGrpc.bindService(this); + } + } + + /** + * A stub to allow clients to do asynchronous rpc calls to service ReportService. + * + *
+   * Service for retrieving reports and insights about your products, their
+   * performance, and their competitive environment on Google.
+   * 
+ */ + public static final class ReportServiceStub + extends io.grpc.stub.AbstractAsyncStub { + private ReportServiceStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected ReportServiceStub build(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ReportServiceStub(channel, callOptions); + } + + /** + * + * + *
+     * Retrieves a report defined by a search query. The response might contain
+     * fewer rows than specified by `page_size`. Rely on `next_page_token` to
+     * determine if there are more rows to be requested.
+     * 
+ */ + public void search( + com.google.shopping.merchant.reports.v1alpha.SearchRequest request, + io.grpc.stub.StreamObserver + responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getSearchMethod(), getCallOptions()), request, responseObserver); + } + } + + /** + * A stub to allow clients to do synchronous rpc calls to service ReportService. + * + *
+   * Service for retrieving reports and insights about your products, their
+   * performance, and their competitive environment on Google.
+   * 
+ */ + public static final class ReportServiceBlockingV2Stub + extends io.grpc.stub.AbstractBlockingStub { + private ReportServiceBlockingV2Stub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected ReportServiceBlockingV2Stub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ReportServiceBlockingV2Stub(channel, callOptions); + } + + /** + * + * + *
+     * Retrieves a report defined by a search query. The response might contain
+     * fewer rows than specified by `page_size`. Rely on `next_page_token` to
+     * determine if there are more rows to be requested.
+     * 
+ */ + public com.google.shopping.merchant.reports.v1alpha.SearchResponse search( + com.google.shopping.merchant.reports.v1alpha.SearchRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getSearchMethod(), getCallOptions(), request); + } + } + + /** + * A stub to allow clients to do limited synchronous rpc calls to service ReportService. + * + *
+   * Service for retrieving reports and insights about your products, their
+   * performance, and their competitive environment on Google.
+   * 
+ */ + public static final class ReportServiceBlockingStub + extends io.grpc.stub.AbstractBlockingStub { + private ReportServiceBlockingStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected ReportServiceBlockingStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ReportServiceBlockingStub(channel, callOptions); + } + + /** + * + * + *
+     * Retrieves a report defined by a search query. The response might contain
+     * fewer rows than specified by `page_size`. Rely on `next_page_token` to
+     * determine if there are more rows to be requested.
+     * 
+ */ + public com.google.shopping.merchant.reports.v1alpha.SearchResponse search( + com.google.shopping.merchant.reports.v1alpha.SearchRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getSearchMethod(), getCallOptions(), request); + } + } + + /** + * A stub to allow clients to do ListenableFuture-style rpc calls to service ReportService. + * + *
+   * Service for retrieving reports and insights about your products, their
+   * performance, and their competitive environment on Google.
+   * 
+ */ + public static final class ReportServiceFutureStub + extends io.grpc.stub.AbstractFutureStub { + private ReportServiceFutureStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected ReportServiceFutureStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ReportServiceFutureStub(channel, callOptions); + } + + /** + * + * + *
+     * Retrieves a report defined by a search query. The response might contain
+     * fewer rows than specified by `page_size`. Rely on `next_page_token` to
+     * determine if there are more rows to be requested.
+     * 
+ */ + public com.google.common.util.concurrent.ListenableFuture< + com.google.shopping.merchant.reports.v1alpha.SearchResponse> + search(com.google.shopping.merchant.reports.v1alpha.SearchRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getSearchMethod(), getCallOptions()), request); + } + } + + private static final int METHODID_SEARCH = 0; + + private static final class MethodHandlers + implements io.grpc.stub.ServerCalls.UnaryMethod, + io.grpc.stub.ServerCalls.ServerStreamingMethod, + io.grpc.stub.ServerCalls.ClientStreamingMethod, + io.grpc.stub.ServerCalls.BidiStreamingMethod { + private final AsyncService serviceImpl; + private final int methodId; + + MethodHandlers(AsyncService serviceImpl, int methodId) { + this.serviceImpl = serviceImpl; + this.methodId = methodId; + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + case METHODID_SEARCH: + serviceImpl.search( + (com.google.shopping.merchant.reports.v1alpha.SearchRequest) request, + (io.grpc.stub.StreamObserver< + com.google.shopping.merchant.reports.v1alpha.SearchResponse>) + responseObserver); + break; + default: + throw new AssertionError(); + } + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver invoke( + io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + default: + throw new AssertionError(); + } + } + } + + public static final io.grpc.ServerServiceDefinition bindService(AsyncService service) { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + getSearchMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + com.google.shopping.merchant.reports.v1alpha.SearchRequest, + com.google.shopping.merchant.reports.v1alpha.SearchResponse>( + service, METHODID_SEARCH))) + .build(); + } + + private abstract static class ReportServiceBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoFileDescriptorSupplier, + io.grpc.protobuf.ProtoServiceDescriptorSupplier { + ReportServiceBaseDescriptorSupplier() {} + + @java.lang.Override + public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto.getDescriptor(); + } + + @java.lang.Override + public com.google.protobuf.Descriptors.ServiceDescriptor getServiceDescriptor() { + return getFileDescriptor().findServiceByName("ReportService"); + } + } + + private static final class ReportServiceFileDescriptorSupplier + extends ReportServiceBaseDescriptorSupplier { + ReportServiceFileDescriptorSupplier() {} + } + + private static final class ReportServiceMethodDescriptorSupplier + extends ReportServiceBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoMethodDescriptorSupplier { + private final java.lang.String methodName; + + ReportServiceMethodDescriptorSupplier(java.lang.String methodName) { + this.methodName = methodName; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.MethodDescriptor getMethodDescriptor() { + return getServiceDescriptor().findMethodByName(methodName); + } + } + + private static volatile io.grpc.ServiceDescriptor serviceDescriptor; + + public static io.grpc.ServiceDescriptor getServiceDescriptor() { + io.grpc.ServiceDescriptor result = serviceDescriptor; + if (result == null) { + synchronized (ReportServiceGrpc.class) { + result = serviceDescriptor; + if (result == null) { + serviceDescriptor = + result = + io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME) + .setSchemaDescriptor(new ReportServiceFileDescriptorSupplier()) + .addMethod(getSearchMethod()) + .build(); + } + } + } + return result; + } +} diff --git a/java-shopping-merchant-reports/pom.xml b/java-shopping-merchant-reports/pom.xml index c8dddb1d071c..2468e9f6819f 100644 --- a/java-shopping-merchant-reports/pom.xml +++ b/java-shopping-merchant-reports/pom.xml @@ -31,6 +31,16 @@ google-shopping-merchant-reports 0.44.0-SNAPSHOT + + com.google.shopping.api.grpc + proto-google-shopping-merchant-reports-v1alpha + 0.44.0-SNAPSHOT + + + com.google.shopping.api.grpc + grpc-google-shopping-merchant-reports-v1alpha + 0.44.0-SNAPSHOT + com.google.shopping.api.grpc grpc-google-shopping-merchant-reports-v1beta @@ -47,7 +57,9 @@ google-shopping-merchant-reports grpc-google-shopping-merchant-reports-v1beta + grpc-google-shopping-merchant-reports-v1alpha proto-google-shopping-merchant-reports-v1beta + proto-google-shopping-merchant-reports-v1alpha google-shopping-merchant-reports-bom diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/clirr-ignored-differences.xml b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/clirr-ignored-differences.xml new file mode 100644 index 000000000000..6bb874419da3 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/clirr-ignored-differences.xml @@ -0,0 +1,80 @@ + + + + + 7012 + com/google/shopping/merchant/reports/v1alpha/*OrBuilder + * get*(*) + + + 7012 + com/google/shopping/merchant/reports/v1alpha/*OrBuilder + boolean contains*(*) + + + 7012 + com/google/shopping/merchant/reports/v1alpha/*OrBuilder + boolean has*(*) + + + + 7006 + com/google/shopping/merchant/reports/v1alpha/** + * getDefaultInstanceForType() + ** + + + 7006 + com/google/shopping/merchant/reports/v1alpha/** + * addRepeatedField(*) + ** + + + 7006 + com/google/shopping/merchant/reports/v1alpha/** + * clear() + ** + + + 7006 + com/google/shopping/merchant/reports/v1alpha/** + * clearField(*) + ** + + + 7006 + com/google/shopping/merchant/reports/v1alpha/** + * clearOneof(*) + ** + + + 7006 + com/google/shopping/merchant/reports/v1alpha/** + * clone() + ** + + + 7006 + com/google/shopping/merchant/reports/v1alpha/** + * mergeUnknownFields(*) + ** + + + 7006 + com/google/shopping/merchant/reports/v1alpha/** + * setField(*) + ** + + + 7006 + com/google/shopping/merchant/reports/v1alpha/** + * setRepeatedField(*) + ** + + + 7006 + com/google/shopping/merchant/reports/v1alpha/** + * setUnknownFields(*) + ** + + diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/pom.xml b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/pom.xml new file mode 100644 index 000000000000..b834f6800256 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/pom.xml @@ -0,0 +1,37 @@ + + 4.0.0 + com.google.shopping.api.grpc + proto-google-shopping-merchant-reports-v1alpha + 0.44.0-SNAPSHOT + proto-google-shopping-merchant-reports-v1alpha + Proto library for google-shopping-merchant-reports + + com.google.shopping + google-shopping-merchant-reports-parent + 0.44.0-SNAPSHOT + + + + com.google.protobuf + protobuf-java + + + com.google.api.grpc + proto-google-common-protos + + + com.google.api.grpc + proto-google-iam-v1 + + + com.google.api + api-common + + + com.google.guava + guava + + + diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersBrandView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersBrandView.java new file mode 100644 index 000000000000..d25230eb1069 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersBrandView.java @@ -0,0 +1,2714 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Fields available for query in `best_sellers_brand_view` table.
+ *
+ * [Best sellers](https://support.google.com/merchants/answer/9488679) report
+ * with top brands.
+ *
+ * Values are only set for fields requested explicitly in the request's search
+ * query.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.BestSellersBrandView} + */ +public final class BestSellersBrandView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.BestSellersBrandView) + BestSellersBrandViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use BestSellersBrandView.newBuilder() to construct. + private BestSellersBrandView(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private BestSellersBrandView() { + reportGranularity_ = 0; + reportCountryCode_ = ""; + brand_ = ""; + relativeDemand_ = 0; + previousRelativeDemand_ = 0; + relativeDemandChange_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new BestSellersBrandView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_BestSellersBrandView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_BestSellersBrandView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.class, + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.Builder.class); + } + + private int bitField0_; + public static final int REPORT_DATE_FIELD_NUMBER = 1; + private com.google.type.Date reportDate_; + + /** + * + * + *
+   * Report date. The value of this field can only be one of the following:
+   *
+   * *   The first day of the week (Monday) for weekly reports,
+   * *   The first day of the month for monthly reports.
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+   * not specified in the query, the latest available weekly or monthly report
+   * is returned.
+   * 
+ * + * .google.type.Date report_date = 1; + * + * @return Whether the reportDate field is set. + */ + @java.lang.Override + public boolean hasReportDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Report date. The value of this field can only be one of the following:
+   *
+   * *   The first day of the week (Monday) for weekly reports,
+   * *   The first day of the month for monthly reports.
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+   * not specified in the query, the latest available weekly or monthly report
+   * is returned.
+   * 
+ * + * .google.type.Date report_date = 1; + * + * @return The reportDate. + */ + @java.lang.Override + public com.google.type.Date getReportDate() { + return reportDate_ == null ? com.google.type.Date.getDefaultInstance() : reportDate_; + } + + /** + * + * + *
+   * Report date. The value of this field can only be one of the following:
+   *
+   * *   The first day of the week (Monday) for weekly reports,
+   * *   The first day of the month for monthly reports.
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+   * not specified in the query, the latest available weekly or monthly report
+   * is returned.
+   * 
+ * + * .google.type.Date report_date = 1; + */ + @java.lang.Override + public com.google.type.DateOrBuilder getReportDateOrBuilder() { + return reportDate_ == null ? com.google.type.Date.getDefaultInstance() : reportDate_; + } + + public static final int REPORT_GRANULARITY_FIELD_NUMBER = 2; + private int reportGranularity_ = 0; + + /** + * + * + *
+   * Granularity of the report. The ranking can be done over a week or a month
+   * timeframe.
+   *
+   * Required in the `SELECT` clause. Condition on `report_granularity` is
+   * required in the `WHERE` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return Whether the reportGranularity field is set. + */ + @java.lang.Override + public boolean hasReportGranularity() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Granularity of the report. The ranking can be done over a week or a month
+   * timeframe.
+   *
+   * Required in the `SELECT` clause. Condition on `report_granularity` is
+   * required in the `WHERE` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return The enum numeric value on the wire for reportGranularity. + */ + @java.lang.Override + public int getReportGranularityValue() { + return reportGranularity_; + } + + /** + * + * + *
+   * Granularity of the report. The ranking can be done over a week or a month
+   * timeframe.
+   *
+   * Required in the `SELECT` clause. Condition on `report_granularity` is
+   * required in the `WHERE` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return The reportGranularity. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum + getReportGranularity() { + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum result = + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum + .forNumber(reportGranularity_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum + .UNRECOGNIZED + : result; + } + + public static final int REPORT_COUNTRY_CODE_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object reportCountryCode_ = ""; + + /** + * + * + *
+   * Country where the ranking is calculated. Represented in the ISO 3166
+   * format.
+   *
+   * Required in the `SELECT` clause. Condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 3; + * + * @return Whether the reportCountryCode field is set. + */ + @java.lang.Override + public boolean hasReportCountryCode() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * Country where the ranking is calculated. Represented in the ISO 3166
+   * format.
+   *
+   * Required in the `SELECT` clause. Condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 3; + * + * @return The reportCountryCode. + */ + @java.lang.Override + public java.lang.String getReportCountryCode() { + java.lang.Object ref = reportCountryCode_; + 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(); + reportCountryCode_ = s; + return s; + } + } + + /** + * + * + *
+   * Country where the ranking is calculated. Represented in the ISO 3166
+   * format.
+   *
+   * Required in the `SELECT` clause. Condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 3; + * + * @return The bytes for reportCountryCode. + */ + @java.lang.Override + public com.google.protobuf.ByteString getReportCountryCodeBytes() { + java.lang.Object ref = reportCountryCode_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + reportCountryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int REPORT_CATEGORY_ID_FIELD_NUMBER = 4; + private long reportCategoryId_ = 0L; + + /** + * + * + *
+   * Google product category ID to calculate the ranking for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on
+   * `report_category_id` is not specified in the query, rankings for all
+   * top-level categories are returned.
+   * 
+ * + * optional int64 report_category_id = 4; + * + * @return Whether the reportCategoryId field is set. + */ + @java.lang.Override + public boolean hasReportCategoryId() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * Google product category ID to calculate the ranking for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on
+   * `report_category_id` is not specified in the query, rankings for all
+   * top-level categories are returned.
+   * 
+ * + * optional int64 report_category_id = 4; + * + * @return The reportCategoryId. + */ + @java.lang.Override + public long getReportCategoryId() { + return reportCategoryId_; + } + + public static final int BRAND_FIELD_NUMBER = 6; + + @SuppressWarnings("serial") + private volatile java.lang.Object brand_ = ""; + + /** + * + * + *
+   * Name of the brand.
+   * 
+ * + * optional string brand = 6; + * + * @return Whether the brand field is set. + */ + @java.lang.Override + public boolean hasBrand() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * Name of the brand.
+   * 
+ * + * optional string brand = 6; + * + * @return The brand. + */ + @java.lang.Override + public java.lang.String getBrand() { + java.lang.Object ref = brand_; + 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(); + brand_ = s; + return s; + } + } + + /** + * + * + *
+   * Name of the brand.
+   * 
+ * + * optional string brand = 6; + * + * @return The bytes for brand. + */ + @java.lang.Override + public com.google.protobuf.ByteString getBrandBytes() { + java.lang.Object ref = brand_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + brand_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int RANK_FIELD_NUMBER = 7; + private long rank_ = 0L; + + /** + * + * + *
+   * Popularity of the brand on Ads and organic surfaces, in the selected
+   * category and country, based on the estimated number of units sold.
+   * 
+ * + * optional int64 rank = 7; + * + * @return Whether the rank field is set. + */ + @java.lang.Override + public boolean hasRank() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+   * Popularity of the brand on Ads and organic surfaces, in the selected
+   * category and country, based on the estimated number of units sold.
+   * 
+ * + * optional int64 rank = 7; + * + * @return The rank. + */ + @java.lang.Override + public long getRank() { + return rank_; + } + + public static final int PREVIOUS_RANK_FIELD_NUMBER = 8; + private long previousRank_ = 0L; + + /** + * + * + *
+   * Popularity rank in the previous week or month.
+   * 
+ * + * optional int64 previous_rank = 8; + * + * @return Whether the previousRank field is set. + */ + @java.lang.Override + public boolean hasPreviousRank() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+   * Popularity rank in the previous week or month.
+   * 
+ * + * optional int64 previous_rank = 8; + * + * @return The previousRank. + */ + @java.lang.Override + public long getPreviousRank() { + return previousRank_; + } + + public static final int RELATIVE_DEMAND_FIELD_NUMBER = 9; + private int relativeDemand_ = 0; + + /** + * + * + *
+   * Estimated demand in relation to the brand with the highest popularity rank
+   * in the same category and country.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9; + * + * + * @return Whether the relativeDemand field is set. + */ + @java.lang.Override + public boolean hasRelativeDemand() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+   * Estimated demand in relation to the brand with the highest popularity rank
+   * in the same category and country.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9; + * + * + * @return The enum numeric value on the wire for relativeDemand. + */ + @java.lang.Override + public int getRelativeDemandValue() { + return relativeDemand_; + } + + /** + * + * + *
+   * Estimated demand in relation to the brand with the highest popularity rank
+   * in the same category and country.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9; + * + * + * @return The relativeDemand. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + getRelativeDemand() { + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum result = + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum.forNumber( + relativeDemand_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + .UNRECOGNIZED + : result; + } + + public static final int PREVIOUS_RELATIVE_DEMAND_FIELD_NUMBER = 10; + private int previousRelativeDemand_ = 0; + + /** + * + * + *
+   * Estimated demand in relation to the brand with the highest popularity rank
+   * in the same category and country in the previous week or month.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10; + * + * + * @return Whether the previousRelativeDemand field is set. + */ + @java.lang.Override + public boolean hasPreviousRelativeDemand() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+   * Estimated demand in relation to the brand with the highest popularity rank
+   * in the same category and country in the previous week or month.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10; + * + * + * @return The enum numeric value on the wire for previousRelativeDemand. + */ + @java.lang.Override + public int getPreviousRelativeDemandValue() { + return previousRelativeDemand_; + } + + /** + * + * + *
+   * Estimated demand in relation to the brand with the highest popularity rank
+   * in the same category and country in the previous week or month.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10; + * + * + * @return The previousRelativeDemand. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + getPreviousRelativeDemand() { + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum result = + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum.forNumber( + previousRelativeDemand_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + .UNRECOGNIZED + : result; + } + + public static final int RELATIVE_DEMAND_CHANGE_FIELD_NUMBER = 11; + private int relativeDemandChange_ = 0; + + /** + * + * + *
+   * Change in the estimated demand. Whether it rose, sank or remained flat.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11; + * + * + * @return Whether the relativeDemandChange field is set. + */ + @java.lang.Override + public boolean hasRelativeDemandChange() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+   * Change in the estimated demand. Whether it rose, sank or remained flat.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11; + * + * + * @return The enum numeric value on the wire for relativeDemandChange. + */ + @java.lang.Override + public int getRelativeDemandChangeValue() { + return relativeDemandChange_; + } + + /** + * + * + *
+   * Change in the estimated demand. Whether it rose, sank or remained flat.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11; + * + * + * @return The relativeDemandChange. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum + getRelativeDemandChange() { + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum + result = + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum.forNumber(relativeDemandChange_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum.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 (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getReportDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeEnum(2, reportGranularity_); + } + if (((bitField0_ & 0x00000004) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, reportCountryCode_); + } + if (((bitField0_ & 0x00000008) != 0)) { + output.writeInt64(4, reportCategoryId_); + } + if (((bitField0_ & 0x00000010) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, brand_); + } + if (((bitField0_ & 0x00000020) != 0)) { + output.writeInt64(7, rank_); + } + if (((bitField0_ & 0x00000040) != 0)) { + output.writeInt64(8, previousRank_); + } + if (((bitField0_ & 0x00000080) != 0)) { + output.writeEnum(9, relativeDemand_); + } + if (((bitField0_ & 0x00000100) != 0)) { + output.writeEnum(10, previousRelativeDemand_); + } + if (((bitField0_ & 0x00000200) != 0)) { + output.writeEnum(11, relativeDemandChange_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getReportDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, reportGranularity_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, reportCountryCode_); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(4, reportCategoryId_); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, brand_); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(7, rank_); + } + if (((bitField0_ & 0x00000040) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(8, previousRank_); + } + if (((bitField0_ & 0x00000080) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(9, relativeDemand_); + } + if (((bitField0_ & 0x00000100) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(10, previousRelativeDemand_); + } + if (((bitField0_ & 0x00000200) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(11, relativeDemandChange_); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.BestSellersBrandView)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView other = + (com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView) obj; + + if (hasReportDate() != other.hasReportDate()) return false; + if (hasReportDate()) { + if (!getReportDate().equals(other.getReportDate())) return false; + } + if (hasReportGranularity() != other.hasReportGranularity()) return false; + if (hasReportGranularity()) { + if (reportGranularity_ != other.reportGranularity_) return false; + } + if (hasReportCountryCode() != other.hasReportCountryCode()) return false; + if (hasReportCountryCode()) { + if (!getReportCountryCode().equals(other.getReportCountryCode())) return false; + } + if (hasReportCategoryId() != other.hasReportCategoryId()) return false; + if (hasReportCategoryId()) { + if (getReportCategoryId() != other.getReportCategoryId()) return false; + } + if (hasBrand() != other.hasBrand()) return false; + if (hasBrand()) { + if (!getBrand().equals(other.getBrand())) return false; + } + if (hasRank() != other.hasRank()) return false; + if (hasRank()) { + if (getRank() != other.getRank()) return false; + } + if (hasPreviousRank() != other.hasPreviousRank()) return false; + if (hasPreviousRank()) { + if (getPreviousRank() != other.getPreviousRank()) return false; + } + if (hasRelativeDemand() != other.hasRelativeDemand()) return false; + if (hasRelativeDemand()) { + if (relativeDemand_ != other.relativeDemand_) return false; + } + if (hasPreviousRelativeDemand() != other.hasPreviousRelativeDemand()) return false; + if (hasPreviousRelativeDemand()) { + if (previousRelativeDemand_ != other.previousRelativeDemand_) return false; + } + if (hasRelativeDemandChange() != other.hasRelativeDemandChange()) return false; + if (hasRelativeDemandChange()) { + if (relativeDemandChange_ != other.relativeDemandChange_) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasReportDate()) { + hash = (37 * hash) + REPORT_DATE_FIELD_NUMBER; + hash = (53 * hash) + getReportDate().hashCode(); + } + if (hasReportGranularity()) { + hash = (37 * hash) + REPORT_GRANULARITY_FIELD_NUMBER; + hash = (53 * hash) + reportGranularity_; + } + if (hasReportCountryCode()) { + hash = (37 * hash) + REPORT_COUNTRY_CODE_FIELD_NUMBER; + hash = (53 * hash) + getReportCountryCode().hashCode(); + } + if (hasReportCategoryId()) { + hash = (37 * hash) + REPORT_CATEGORY_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getReportCategoryId()); + } + if (hasBrand()) { + hash = (37 * hash) + BRAND_FIELD_NUMBER; + hash = (53 * hash) + getBrand().hashCode(); + } + if (hasRank()) { + hash = (37 * hash) + RANK_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getRank()); + } + if (hasPreviousRank()) { + hash = (37 * hash) + PREVIOUS_RANK_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getPreviousRank()); + } + if (hasRelativeDemand()) { + hash = (37 * hash) + RELATIVE_DEMAND_FIELD_NUMBER; + hash = (53 * hash) + relativeDemand_; + } + if (hasPreviousRelativeDemand()) { + hash = (37 * hash) + PREVIOUS_RELATIVE_DEMAND_FIELD_NUMBER; + hash = (53 * hash) + previousRelativeDemand_; + } + if (hasRelativeDemandChange()) { + hash = (37 * hash) + RELATIVE_DEMAND_CHANGE_FIELD_NUMBER; + hash = (53 * hash) + relativeDemandChange_; + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView 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.shopping.merchant.reports.v1alpha.BestSellersBrandView parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView 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.shopping.merchant.reports.v1alpha.BestSellersBrandView + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView + 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.shopping.merchant.reports.v1alpha.BestSellersBrandView parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView 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.shopping.merchant.reports.v1alpha.BestSellersBrandView 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; + } + + /** + * + * + *
+   * Fields available for query in `best_sellers_brand_view` table.
+   *
+   * [Best sellers](https://support.google.com/merchants/answer/9488679) report
+   * with top brands.
+   *
+   * Values are only set for fields requested explicitly in the request's search
+   * query.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.BestSellersBrandView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.BestSellersBrandView) + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandViewOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_BestSellersBrandView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_BestSellersBrandView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.class, + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.Builder.class); + } + + // Construct using + // com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getReportDateFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + reportDate_ = null; + if (reportDateBuilder_ != null) { + reportDateBuilder_.dispose(); + reportDateBuilder_ = null; + } + reportGranularity_ = 0; + reportCountryCode_ = ""; + reportCategoryId_ = 0L; + brand_ = ""; + rank_ = 0L; + previousRank_ = 0L; + relativeDemand_ = 0; + previousRelativeDemand_ = 0; + relativeDemandChange_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_BestSellersBrandView_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView build() { + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView buildPartial() { + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView result = + new com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.reportDate_ = reportDateBuilder_ == null ? reportDate_ : reportDateBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.reportGranularity_ = reportGranularity_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.reportCountryCode_ = reportCountryCode_; + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.reportCategoryId_ = reportCategoryId_; + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.brand_ = brand_; + to_bitField0_ |= 0x00000010; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.rank_ = rank_; + to_bitField0_ |= 0x00000020; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.previousRank_ = previousRank_; + to_bitField0_ |= 0x00000040; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.relativeDemand_ = relativeDemand_; + to_bitField0_ |= 0x00000080; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.previousRelativeDemand_ = previousRelativeDemand_; + to_bitField0_ |= 0x00000100; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.relativeDemandChange_ = relativeDemandChange_; + to_bitField0_ |= 0x00000200; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.BestSellersBrandView) { + return mergeFrom((com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.getDefaultInstance()) + return this; + if (other.hasReportDate()) { + mergeReportDate(other.getReportDate()); + } + if (other.hasReportGranularity()) { + setReportGranularity(other.getReportGranularity()); + } + if (other.hasReportCountryCode()) { + reportCountryCode_ = other.reportCountryCode_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.hasReportCategoryId()) { + setReportCategoryId(other.getReportCategoryId()); + } + if (other.hasBrand()) { + brand_ = other.brand_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (other.hasRank()) { + setRank(other.getRank()); + } + if (other.hasPreviousRank()) { + setPreviousRank(other.getPreviousRank()); + } + if (other.hasRelativeDemand()) { + setRelativeDemand(other.getRelativeDemand()); + } + if (other.hasPreviousRelativeDemand()) { + setPreviousRelativeDemand(other.getPreviousRelativeDemand()); + } + if (other.hasRelativeDemandChange()) { + setRelativeDemandChange(other.getRelativeDemandChange()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getReportDateFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: + { + reportGranularity_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 26: + { + reportCountryCode_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 32: + { + reportCategoryId_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 50: + { + brand_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 50 + case 56: + { + rank_ = input.readInt64(); + bitField0_ |= 0x00000020; + break; + } // case 56 + case 64: + { + previousRank_ = input.readInt64(); + bitField0_ |= 0x00000040; + break; + } // case 64 + case 72: + { + relativeDemand_ = input.readEnum(); + bitField0_ |= 0x00000080; + break; + } // case 72 + case 80: + { + previousRelativeDemand_ = input.readEnum(); + bitField0_ |= 0x00000100; + break; + } // case 80 + case 88: + { + relativeDemandChange_ = input.readEnum(); + bitField0_ |= 0x00000200; + break; + } // case 88 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.type.Date reportDate_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + reportDateBuilder_; + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + * + * @return Whether the reportDate field is set. + */ + public boolean hasReportDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + * + * @return The reportDate. + */ + public com.google.type.Date getReportDate() { + if (reportDateBuilder_ == null) { + return reportDate_ == null ? com.google.type.Date.getDefaultInstance() : reportDate_; + } else { + return reportDateBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + */ + public Builder setReportDate(com.google.type.Date value) { + if (reportDateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reportDate_ = value; + } else { + reportDateBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + */ + public Builder setReportDate(com.google.type.Date.Builder builderForValue) { + if (reportDateBuilder_ == null) { + reportDate_ = builderForValue.build(); + } else { + reportDateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + */ + public Builder mergeReportDate(com.google.type.Date value) { + if (reportDateBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && reportDate_ != null + && reportDate_ != com.google.type.Date.getDefaultInstance()) { + getReportDateBuilder().mergeFrom(value); + } else { + reportDate_ = value; + } + } else { + reportDateBuilder_.mergeFrom(value); + } + if (reportDate_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + */ + public Builder clearReportDate() { + bitField0_ = (bitField0_ & ~0x00000001); + reportDate_ = null; + if (reportDateBuilder_ != null) { + reportDateBuilder_.dispose(); + reportDateBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + */ + public com.google.type.Date.Builder getReportDateBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getReportDateFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + */ + public com.google.type.DateOrBuilder getReportDateOrBuilder() { + if (reportDateBuilder_ != null) { + return reportDateBuilder_.getMessageOrBuilder(); + } else { + return reportDate_ == null ? com.google.type.Date.getDefaultInstance() : reportDate_; + } + } + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + getReportDateFieldBuilder() { + if (reportDateBuilder_ == null) { + reportDateBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>( + getReportDate(), getParentForChildren(), isClean()); + reportDate_ = null; + } + return reportDateBuilder_; + } + + private int reportGranularity_ = 0; + + /** + * + * + *
+     * Granularity of the report. The ranking can be done over a week or a month
+     * timeframe.
+     *
+     * Required in the `SELECT` clause. Condition on `report_granularity` is
+     * required in the `WHERE` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return Whether the reportGranularity field is set. + */ + @java.lang.Override + public boolean hasReportGranularity() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Granularity of the report. The ranking can be done over a week or a month
+     * timeframe.
+     *
+     * Required in the `SELECT` clause. Condition on `report_granularity` is
+     * required in the `WHERE` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return The enum numeric value on the wire for reportGranularity. + */ + @java.lang.Override + public int getReportGranularityValue() { + return reportGranularity_; + } + + /** + * + * + *
+     * Granularity of the report. The ranking can be done over a week or a month
+     * timeframe.
+     *
+     * Required in the `SELECT` clause. Condition on `report_granularity` is
+     * required in the `WHERE` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @param value The enum numeric value on the wire for reportGranularity to set. + * @return This builder for chaining. + */ + public Builder setReportGranularityValue(int value) { + reportGranularity_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Granularity of the report. The ranking can be done over a week or a month
+     * timeframe.
+     *
+     * Required in the `SELECT` clause. Condition on `report_granularity` is
+     * required in the `WHERE` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return The reportGranularity. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum + getReportGranularity() { + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum result = + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum + .forNumber(reportGranularity_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Granularity of the report. The ranking can be done over a week or a month
+     * timeframe.
+     *
+     * Required in the `SELECT` clause. Condition on `report_granularity` is
+     * required in the `WHERE` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @param value The reportGranularity to set. + * @return This builder for chaining. + */ + public Builder setReportGranularity( + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum + value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + reportGranularity_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Granularity of the report. The ranking can be done over a week or a month
+     * timeframe.
+     *
+     * Required in the `SELECT` clause. Condition on `report_granularity` is
+     * required in the `WHERE` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return This builder for chaining. + */ + public Builder clearReportGranularity() { + bitField0_ = (bitField0_ & ~0x00000002); + reportGranularity_ = 0; + onChanged(); + return this; + } + + private java.lang.Object reportCountryCode_ = ""; + + /** + * + * + *
+     * Country where the ranking is calculated. Represented in the ISO 3166
+     * format.
+     *
+     * Required in the `SELECT` clause. Condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 3; + * + * @return Whether the reportCountryCode field is set. + */ + public boolean hasReportCountryCode() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * Country where the ranking is calculated. Represented in the ISO 3166
+     * format.
+     *
+     * Required in the `SELECT` clause. Condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 3; + * + * @return The reportCountryCode. + */ + public java.lang.String getReportCountryCode() { + java.lang.Object ref = reportCountryCode_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + reportCountryCode_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Country where the ranking is calculated. Represented in the ISO 3166
+     * format.
+     *
+     * Required in the `SELECT` clause. Condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 3; + * + * @return The bytes for reportCountryCode. + */ + public com.google.protobuf.ByteString getReportCountryCodeBytes() { + java.lang.Object ref = reportCountryCode_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + reportCountryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Country where the ranking is calculated. Represented in the ISO 3166
+     * format.
+     *
+     * Required in the `SELECT` clause. Condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 3; + * + * @param value The reportCountryCode to set. + * @return This builder for chaining. + */ + public Builder setReportCountryCode(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + reportCountryCode_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Country where the ranking is calculated. Represented in the ISO 3166
+     * format.
+     *
+     * Required in the `SELECT` clause. Condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 3; + * + * @return This builder for chaining. + */ + public Builder clearReportCountryCode() { + reportCountryCode_ = getDefaultInstance().getReportCountryCode(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * Country where the ranking is calculated. Represented in the ISO 3166
+     * format.
+     *
+     * Required in the `SELECT` clause. Condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 3; + * + * @param value The bytes for reportCountryCode to set. + * @return This builder for chaining. + */ + public Builder setReportCountryCodeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + reportCountryCode_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private long reportCategoryId_; + + /** + * + * + *
+     * Google product category ID to calculate the ranking for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on
+     * `report_category_id` is not specified in the query, rankings for all
+     * top-level categories are returned.
+     * 
+ * + * optional int64 report_category_id = 4; + * + * @return Whether the reportCategoryId field is set. + */ + @java.lang.Override + public boolean hasReportCategoryId() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Google product category ID to calculate the ranking for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on
+     * `report_category_id` is not specified in the query, rankings for all
+     * top-level categories are returned.
+     * 
+ * + * optional int64 report_category_id = 4; + * + * @return The reportCategoryId. + */ + @java.lang.Override + public long getReportCategoryId() { + return reportCategoryId_; + } + + /** + * + * + *
+     * Google product category ID to calculate the ranking for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on
+     * `report_category_id` is not specified in the query, rankings for all
+     * top-level categories are returned.
+     * 
+ * + * optional int64 report_category_id = 4; + * + * @param value The reportCategoryId to set. + * @return This builder for chaining. + */ + public Builder setReportCategoryId(long value) { + + reportCategoryId_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Google product category ID to calculate the ranking for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on
+     * `report_category_id` is not specified in the query, rankings for all
+     * top-level categories are returned.
+     * 
+ * + * optional int64 report_category_id = 4; + * + * @return This builder for chaining. + */ + public Builder clearReportCategoryId() { + bitField0_ = (bitField0_ & ~0x00000008); + reportCategoryId_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object brand_ = ""; + + /** + * + * + *
+     * Name of the brand.
+     * 
+ * + * optional string brand = 6; + * + * @return Whether the brand field is set. + */ + public boolean hasBrand() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * Name of the brand.
+     * 
+ * + * optional string brand = 6; + * + * @return The brand. + */ + public java.lang.String getBrand() { + java.lang.Object ref = brand_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + brand_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Name of the brand.
+     * 
+ * + * optional string brand = 6; + * + * @return The bytes for brand. + */ + public com.google.protobuf.ByteString getBrandBytes() { + java.lang.Object ref = brand_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + brand_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Name of the brand.
+     * 
+ * + * optional string brand = 6; + * + * @param value The brand to set. + * @return This builder for chaining. + */ + public Builder setBrand(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + brand_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Name of the brand.
+     * 
+ * + * optional string brand = 6; + * + * @return This builder for chaining. + */ + public Builder clearBrand() { + brand_ = getDefaultInstance().getBrand(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + + /** + * + * + *
+     * Name of the brand.
+     * 
+ * + * optional string brand = 6; + * + * @param value The bytes for brand to set. + * @return This builder for chaining. + */ + public Builder setBrandBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + brand_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private long rank_; + + /** + * + * + *
+     * Popularity of the brand on Ads and organic surfaces, in the selected
+     * category and country, based on the estimated number of units sold.
+     * 
+ * + * optional int64 rank = 7; + * + * @return Whether the rank field is set. + */ + @java.lang.Override + public boolean hasRank() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * Popularity of the brand on Ads and organic surfaces, in the selected
+     * category and country, based on the estimated number of units sold.
+     * 
+ * + * optional int64 rank = 7; + * + * @return The rank. + */ + @java.lang.Override + public long getRank() { + return rank_; + } + + /** + * + * + *
+     * Popularity of the brand on Ads and organic surfaces, in the selected
+     * category and country, based on the estimated number of units sold.
+     * 
+ * + * optional int64 rank = 7; + * + * @param value The rank to set. + * @return This builder for chaining. + */ + public Builder setRank(long value) { + + rank_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * Popularity of the brand on Ads and organic surfaces, in the selected
+     * category and country, based on the estimated number of units sold.
+     * 
+ * + * optional int64 rank = 7; + * + * @return This builder for chaining. + */ + public Builder clearRank() { + bitField0_ = (bitField0_ & ~0x00000020); + rank_ = 0L; + onChanged(); + return this; + } + + private long previousRank_; + + /** + * + * + *
+     * Popularity rank in the previous week or month.
+     * 
+ * + * optional int64 previous_rank = 8; + * + * @return Whether the previousRank field is set. + */ + @java.lang.Override + public boolean hasPreviousRank() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+     * Popularity rank in the previous week or month.
+     * 
+ * + * optional int64 previous_rank = 8; + * + * @return The previousRank. + */ + @java.lang.Override + public long getPreviousRank() { + return previousRank_; + } + + /** + * + * + *
+     * Popularity rank in the previous week or month.
+     * 
+ * + * optional int64 previous_rank = 8; + * + * @param value The previousRank to set. + * @return This builder for chaining. + */ + public Builder setPreviousRank(long value) { + + previousRank_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * Popularity rank in the previous week or month.
+     * 
+ * + * optional int64 previous_rank = 8; + * + * @return This builder for chaining. + */ + public Builder clearPreviousRank() { + bitField0_ = (bitField0_ & ~0x00000040); + previousRank_ = 0L; + onChanged(); + return this; + } + + private int relativeDemand_ = 0; + + /** + * + * + *
+     * Estimated demand in relation to the brand with the highest popularity rank
+     * in the same category and country.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9; + * + * + * @return Whether the relativeDemand field is set. + */ + @java.lang.Override + public boolean hasRelativeDemand() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+     * Estimated demand in relation to the brand with the highest popularity rank
+     * in the same category and country.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9; + * + * + * @return The enum numeric value on the wire for relativeDemand. + */ + @java.lang.Override + public int getRelativeDemandValue() { + return relativeDemand_; + } + + /** + * + * + *
+     * Estimated demand in relation to the brand with the highest popularity rank
+     * in the same category and country.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9; + * + * + * @param value The enum numeric value on the wire for relativeDemand to set. + * @return This builder for chaining. + */ + public Builder setRelativeDemandValue(int value) { + relativeDemand_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * + * + *
+     * Estimated demand in relation to the brand with the highest popularity rank
+     * in the same category and country.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9; + * + * + * @return The relativeDemand. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + getRelativeDemand() { + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum result = + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum.forNumber( + relativeDemand_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Estimated demand in relation to the brand with the highest popularity rank
+     * in the same category and country.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9; + * + * + * @param value The relativeDemand to set. + * @return This builder for chaining. + */ + public Builder setRelativeDemand( + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000080; + relativeDemand_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Estimated demand in relation to the brand with the highest popularity rank
+     * in the same category and country.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9; + * + * + * @return This builder for chaining. + */ + public Builder clearRelativeDemand() { + bitField0_ = (bitField0_ & ~0x00000080); + relativeDemand_ = 0; + onChanged(); + return this; + } + + private int previousRelativeDemand_ = 0; + + /** + * + * + *
+     * Estimated demand in relation to the brand with the highest popularity rank
+     * in the same category and country in the previous week or month.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10; + * + * + * @return Whether the previousRelativeDemand field is set. + */ + @java.lang.Override + public boolean hasPreviousRelativeDemand() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+     * Estimated demand in relation to the brand with the highest popularity rank
+     * in the same category and country in the previous week or month.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10; + * + * + * @return The enum numeric value on the wire for previousRelativeDemand. + */ + @java.lang.Override + public int getPreviousRelativeDemandValue() { + return previousRelativeDemand_; + } + + /** + * + * + *
+     * Estimated demand in relation to the brand with the highest popularity rank
+     * in the same category and country in the previous week or month.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10; + * + * + * @param value The enum numeric value on the wire for previousRelativeDemand to set. + * @return This builder for chaining. + */ + public Builder setPreviousRelativeDemandValue(int value) { + previousRelativeDemand_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * Estimated demand in relation to the brand with the highest popularity rank
+     * in the same category and country in the previous week or month.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10; + * + * + * @return The previousRelativeDemand. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + getPreviousRelativeDemand() { + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum result = + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum.forNumber( + previousRelativeDemand_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Estimated demand in relation to the brand with the highest popularity rank
+     * in the same category and country in the previous week or month.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10; + * + * + * @param value The previousRelativeDemand to set. + * @return This builder for chaining. + */ + public Builder setPreviousRelativeDemand( + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000100; + previousRelativeDemand_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Estimated demand in relation to the brand with the highest popularity rank
+     * in the same category and country in the previous week or month.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10; + * + * + * @return This builder for chaining. + */ + public Builder clearPreviousRelativeDemand() { + bitField0_ = (bitField0_ & ~0x00000100); + previousRelativeDemand_ = 0; + onChanged(); + return this; + } + + private int relativeDemandChange_ = 0; + + /** + * + * + *
+     * Change in the estimated demand. Whether it rose, sank or remained flat.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11; + * + * + * @return Whether the relativeDemandChange field is set. + */ + @java.lang.Override + public boolean hasRelativeDemandChange() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+     * Change in the estimated demand. Whether it rose, sank or remained flat.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11; + * + * + * @return The enum numeric value on the wire for relativeDemandChange. + */ + @java.lang.Override + public int getRelativeDemandChangeValue() { + return relativeDemandChange_; + } + + /** + * + * + *
+     * Change in the estimated demand. Whether it rose, sank or remained flat.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11; + * + * + * @param value The enum numeric value on the wire for relativeDemandChange to set. + * @return This builder for chaining. + */ + public Builder setRelativeDemandChangeValue(int value) { + relativeDemandChange_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * + * + *
+     * Change in the estimated demand. Whether it rose, sank or remained flat.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11; + * + * + * @return The relativeDemandChange. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum + getRelativeDemandChange() { + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum + result = + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum.forNumber(relativeDemandChange_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum.UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Change in the estimated demand. Whether it rose, sank or remained flat.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11; + * + * + * @param value The relativeDemandChange to set. + * @return This builder for chaining. + */ + public Builder setRelativeDemandChange( + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum + value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000200; + relativeDemandChange_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Change in the estimated demand. Whether it rose, sank or remained flat.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11; + * + * + * @return This builder for chaining. + */ + public Builder clearRelativeDemandChange() { + bitField0_ = (bitField0_ & ~0x00000200); + relativeDemandChange_ = 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.shopping.merchant.reports.v1alpha.BestSellersBrandView) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.BestSellersBrandView) + private static final com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView(); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public BestSellersBrandView parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.BestSellersBrandView + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersBrandViewOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersBrandViewOrBuilder.java new file mode 100644 index 000000000000..d1dc3afa6853 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersBrandViewOrBuilder.java @@ -0,0 +1,468 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface BestSellersBrandViewOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.BestSellersBrandView) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Report date. The value of this field can only be one of the following:
+   *
+   * *   The first day of the week (Monday) for weekly reports,
+   * *   The first day of the month for monthly reports.
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+   * not specified in the query, the latest available weekly or monthly report
+   * is returned.
+   * 
+ * + * .google.type.Date report_date = 1; + * + * @return Whether the reportDate field is set. + */ + boolean hasReportDate(); + + /** + * + * + *
+   * Report date. The value of this field can only be one of the following:
+   *
+   * *   The first day of the week (Monday) for weekly reports,
+   * *   The first day of the month for monthly reports.
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+   * not specified in the query, the latest available weekly or monthly report
+   * is returned.
+   * 
+ * + * .google.type.Date report_date = 1; + * + * @return The reportDate. + */ + com.google.type.Date getReportDate(); + + /** + * + * + *
+   * Report date. The value of this field can only be one of the following:
+   *
+   * *   The first day of the week (Monday) for weekly reports,
+   * *   The first day of the month for monthly reports.
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+   * not specified in the query, the latest available weekly or monthly report
+   * is returned.
+   * 
+ * + * .google.type.Date report_date = 1; + */ + com.google.type.DateOrBuilder getReportDateOrBuilder(); + + /** + * + * + *
+   * Granularity of the report. The ranking can be done over a week or a month
+   * timeframe.
+   *
+   * Required in the `SELECT` clause. Condition on `report_granularity` is
+   * required in the `WHERE` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return Whether the reportGranularity field is set. + */ + boolean hasReportGranularity(); + + /** + * + * + *
+   * Granularity of the report. The ranking can be done over a week or a month
+   * timeframe.
+   *
+   * Required in the `SELECT` clause. Condition on `report_granularity` is
+   * required in the `WHERE` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return The enum numeric value on the wire for reportGranularity. + */ + int getReportGranularityValue(); + + /** + * + * + *
+   * Granularity of the report. The ranking can be done over a week or a month
+   * timeframe.
+   *
+   * Required in the `SELECT` clause. Condition on `report_granularity` is
+   * required in the `WHERE` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return The reportGranularity. + */ + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum + getReportGranularity(); + + /** + * + * + *
+   * Country where the ranking is calculated. Represented in the ISO 3166
+   * format.
+   *
+   * Required in the `SELECT` clause. Condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 3; + * + * @return Whether the reportCountryCode field is set. + */ + boolean hasReportCountryCode(); + + /** + * + * + *
+   * Country where the ranking is calculated. Represented in the ISO 3166
+   * format.
+   *
+   * Required in the `SELECT` clause. Condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 3; + * + * @return The reportCountryCode. + */ + java.lang.String getReportCountryCode(); + + /** + * + * + *
+   * Country where the ranking is calculated. Represented in the ISO 3166
+   * format.
+   *
+   * Required in the `SELECT` clause. Condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 3; + * + * @return The bytes for reportCountryCode. + */ + com.google.protobuf.ByteString getReportCountryCodeBytes(); + + /** + * + * + *
+   * Google product category ID to calculate the ranking for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on
+   * `report_category_id` is not specified in the query, rankings for all
+   * top-level categories are returned.
+   * 
+ * + * optional int64 report_category_id = 4; + * + * @return Whether the reportCategoryId field is set. + */ + boolean hasReportCategoryId(); + + /** + * + * + *
+   * Google product category ID to calculate the ranking for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on
+   * `report_category_id` is not specified in the query, rankings for all
+   * top-level categories are returned.
+   * 
+ * + * optional int64 report_category_id = 4; + * + * @return The reportCategoryId. + */ + long getReportCategoryId(); + + /** + * + * + *
+   * Name of the brand.
+   * 
+ * + * optional string brand = 6; + * + * @return Whether the brand field is set. + */ + boolean hasBrand(); + + /** + * + * + *
+   * Name of the brand.
+   * 
+ * + * optional string brand = 6; + * + * @return The brand. + */ + java.lang.String getBrand(); + + /** + * + * + *
+   * Name of the brand.
+   * 
+ * + * optional string brand = 6; + * + * @return The bytes for brand. + */ + com.google.protobuf.ByteString getBrandBytes(); + + /** + * + * + *
+   * Popularity of the brand on Ads and organic surfaces, in the selected
+   * category and country, based on the estimated number of units sold.
+   * 
+ * + * optional int64 rank = 7; + * + * @return Whether the rank field is set. + */ + boolean hasRank(); + + /** + * + * + *
+   * Popularity of the brand on Ads and organic surfaces, in the selected
+   * category and country, based on the estimated number of units sold.
+   * 
+ * + * optional int64 rank = 7; + * + * @return The rank. + */ + long getRank(); + + /** + * + * + *
+   * Popularity rank in the previous week or month.
+   * 
+ * + * optional int64 previous_rank = 8; + * + * @return Whether the previousRank field is set. + */ + boolean hasPreviousRank(); + + /** + * + * + *
+   * Popularity rank in the previous week or month.
+   * 
+ * + * optional int64 previous_rank = 8; + * + * @return The previousRank. + */ + long getPreviousRank(); + + /** + * + * + *
+   * Estimated demand in relation to the brand with the highest popularity rank
+   * in the same category and country.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9; + * + * + * @return Whether the relativeDemand field is set. + */ + boolean hasRelativeDemand(); + + /** + * + * + *
+   * Estimated demand in relation to the brand with the highest popularity rank
+   * in the same category and country.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9; + * + * + * @return The enum numeric value on the wire for relativeDemand. + */ + int getRelativeDemandValue(); + + /** + * + * + *
+   * Estimated demand in relation to the brand with the highest popularity rank
+   * in the same category and country.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9; + * + * + * @return The relativeDemand. + */ + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + getRelativeDemand(); + + /** + * + * + *
+   * Estimated demand in relation to the brand with the highest popularity rank
+   * in the same category and country in the previous week or month.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10; + * + * + * @return Whether the previousRelativeDemand field is set. + */ + boolean hasPreviousRelativeDemand(); + + /** + * + * + *
+   * Estimated demand in relation to the brand with the highest popularity rank
+   * in the same category and country in the previous week or month.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10; + * + * + * @return The enum numeric value on the wire for previousRelativeDemand. + */ + int getPreviousRelativeDemandValue(); + + /** + * + * + *
+   * Estimated demand in relation to the brand with the highest popularity rank
+   * in the same category and country in the previous week or month.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10; + * + * + * @return The previousRelativeDemand. + */ + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + getPreviousRelativeDemand(); + + /** + * + * + *
+   * Change in the estimated demand. Whether it rose, sank or remained flat.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11; + * + * + * @return Whether the relativeDemandChange field is set. + */ + boolean hasRelativeDemandChange(); + + /** + * + * + *
+   * Change in the estimated demand. Whether it rose, sank or remained flat.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11; + * + * + * @return The enum numeric value on the wire for relativeDemandChange. + */ + int getRelativeDemandChangeValue(); + + /** + * + * + *
+   * Change in the estimated demand. Whether it rose, sank or remained flat.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11; + * + * + * @return The relativeDemandChange. + */ + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum + getRelativeDemandChange(); +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersProductClusterView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersProductClusterView.java new file mode 100644 index 000000000000..d9d2bd30c9ef --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersProductClusterView.java @@ -0,0 +1,5200 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Fields available for query in `best_sellers_product_cluster_view` table.
+ *
+ * [Best sellers](https://support.google.com/merchants/answer/9488679) report
+ * with top product clusters. A product cluster is a grouping for different
+ * offers and variants that represent the same product, for example, Google
+ * Pixel 7.
+ *
+ * Values are only set for fields requested explicitly in the request's search
+ * query.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView} + */ +public final class BestSellersProductClusterView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView) + BestSellersProductClusterViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use BestSellersProductClusterView.newBuilder() to construct. + private BestSellersProductClusterView(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private BestSellersProductClusterView() { + reportGranularity_ = 0; + reportCountryCode_ = ""; + title_ = ""; + brand_ = ""; + categoryL1_ = ""; + categoryL2_ = ""; + categoryL3_ = ""; + categoryL4_ = ""; + categoryL5_ = ""; + variantGtins_ = com.google.protobuf.LazyStringArrayList.emptyList(); + inventoryStatus_ = 0; + brandInventoryStatus_ = 0; + relativeDemand_ = 0; + previousRelativeDemand_ = 0; + relativeDemandChange_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new BestSellersProductClusterView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_BestSellersProductClusterView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_BestSellersProductClusterView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.class, + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.Builder + .class); + } + + /** + * + * + *
+   * Status of the product cluster or brand in your inventory.
+   * 
+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus} + */ + public enum InventoryStatus implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Not specified.
+     * 
+ * + * INVENTORY_STATUS_UNSPECIFIED = 0; + */ + INVENTORY_STATUS_UNSPECIFIED(0), + /** + * + * + *
+     * You have a product for this product cluster or brand in stock.
+     * 
+ * + * IN_STOCK = 1; + */ + IN_STOCK(1), + /** + * + * + *
+     * You have a product for this product cluster or brand in inventory but it
+     * is currently out of stock.
+     * 
+ * + * OUT_OF_STOCK = 2; + */ + OUT_OF_STOCK(2), + /** + * + * + *
+     * You do not have a product for this product cluster or brand in inventory.
+     * 
+ * + * NOT_IN_INVENTORY = 3; + */ + NOT_IN_INVENTORY(3), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+     * Not specified.
+     * 
+ * + * INVENTORY_STATUS_UNSPECIFIED = 0; + */ + public static final int INVENTORY_STATUS_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+     * You have a product for this product cluster or brand in stock.
+     * 
+ * + * IN_STOCK = 1; + */ + public static final int IN_STOCK_VALUE = 1; + + /** + * + * + *
+     * You have a product for this product cluster or brand in inventory but it
+     * is currently out of stock.
+     * 
+ * + * OUT_OF_STOCK = 2; + */ + public static final int OUT_OF_STOCK_VALUE = 2; + + /** + * + * + *
+     * You do not have a product for this product cluster or brand in inventory.
+     * 
+ * + * NOT_IN_INVENTORY = 3; + */ + public static final int NOT_IN_INVENTORY_VALUE = 3; + + 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 InventoryStatus 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 InventoryStatus forNumber(int value) { + switch (value) { + case 0: + return INVENTORY_STATUS_UNSPECIFIED; + case 1: + return IN_STOCK; + case 2: + return OUT_OF_STOCK; + case 3: + return NOT_IN_INVENTORY; + 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 InventoryStatus findValueByNumber(int number) { + return InventoryStatus.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.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + .getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final InventoryStatus[] VALUES = values(); + + public static InventoryStatus 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 InventoryStatus(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus) + } + + private int bitField0_; + public static final int REPORT_DATE_FIELD_NUMBER = 1; + private com.google.type.Date reportDate_; + + /** + * + * + *
+   * Report date. The value of this field can only be one of the following:
+   *
+   * *   The first day of the week (Monday) for weekly reports,
+   * *   The first day of the month for monthly reports.
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+   * not specified in the query, the latest available weekly or monthly report
+   * is returned.
+   * 
+ * + * .google.type.Date report_date = 1; + * + * @return Whether the reportDate field is set. + */ + @java.lang.Override + public boolean hasReportDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Report date. The value of this field can only be one of the following:
+   *
+   * *   The first day of the week (Monday) for weekly reports,
+   * *   The first day of the month for monthly reports.
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+   * not specified in the query, the latest available weekly or monthly report
+   * is returned.
+   * 
+ * + * .google.type.Date report_date = 1; + * + * @return The reportDate. + */ + @java.lang.Override + public com.google.type.Date getReportDate() { + return reportDate_ == null ? com.google.type.Date.getDefaultInstance() : reportDate_; + } + + /** + * + * + *
+   * Report date. The value of this field can only be one of the following:
+   *
+   * *   The first day of the week (Monday) for weekly reports,
+   * *   The first day of the month for monthly reports.
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+   * not specified in the query, the latest available weekly or monthly report
+   * is returned.
+   * 
+ * + * .google.type.Date report_date = 1; + */ + @java.lang.Override + public com.google.type.DateOrBuilder getReportDateOrBuilder() { + return reportDate_ == null ? com.google.type.Date.getDefaultInstance() : reportDate_; + } + + public static final int REPORT_GRANULARITY_FIELD_NUMBER = 2; + private int reportGranularity_ = 0; + + /** + * + * + *
+   * Granularity of the report. The ranking can be done over a week or a month
+   * timeframe.
+   *
+   * Required in the `SELECT` clause. Condition on `report_granularity` is
+   * required in the `WHERE` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return Whether the reportGranularity field is set. + */ + @java.lang.Override + public boolean hasReportGranularity() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Granularity of the report. The ranking can be done over a week or a month
+   * timeframe.
+   *
+   * Required in the `SELECT` clause. Condition on `report_granularity` is
+   * required in the `WHERE` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return The enum numeric value on the wire for reportGranularity. + */ + @java.lang.Override + public int getReportGranularityValue() { + return reportGranularity_; + } + + /** + * + * + *
+   * Granularity of the report. The ranking can be done over a week or a month
+   * timeframe.
+   *
+   * Required in the `SELECT` clause. Condition on `report_granularity` is
+   * required in the `WHERE` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return The reportGranularity. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum + getReportGranularity() { + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum result = + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum + .forNumber(reportGranularity_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum + .UNRECOGNIZED + : result; + } + + public static final int REPORT_COUNTRY_CODE_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object reportCountryCode_ = ""; + + /** + * + * + *
+   * Country where the ranking is calculated. Represented in the ISO 3166
+   * format.
+   *
+   * Required in the `SELECT` clause. Condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 3; + * + * @return Whether the reportCountryCode field is set. + */ + @java.lang.Override + public boolean hasReportCountryCode() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * Country where the ranking is calculated. Represented in the ISO 3166
+   * format.
+   *
+   * Required in the `SELECT` clause. Condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 3; + * + * @return The reportCountryCode. + */ + @java.lang.Override + public java.lang.String getReportCountryCode() { + java.lang.Object ref = reportCountryCode_; + 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(); + reportCountryCode_ = s; + return s; + } + } + + /** + * + * + *
+   * Country where the ranking is calculated. Represented in the ISO 3166
+   * format.
+   *
+   * Required in the `SELECT` clause. Condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 3; + * + * @return The bytes for reportCountryCode. + */ + @java.lang.Override + public com.google.protobuf.ByteString getReportCountryCodeBytes() { + java.lang.Object ref = reportCountryCode_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + reportCountryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int REPORT_CATEGORY_ID_FIELD_NUMBER = 4; + private long reportCategoryId_ = 0L; + + /** + * + * + *
+   * Google product category ID to calculate the ranking for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on
+   * `report_category_id` is not specified in the query, rankings for all
+   * top-level categories are returned.
+   * 
+ * + * optional int64 report_category_id = 4; + * + * @return Whether the reportCategoryId field is set. + */ + @java.lang.Override + public boolean hasReportCategoryId() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * Google product category ID to calculate the ranking for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on
+   * `report_category_id` is not specified in the query, rankings for all
+   * top-level categories are returned.
+   * 
+ * + * optional int64 report_category_id = 4; + * + * @return The reportCategoryId. + */ + @java.lang.Override + public long getReportCategoryId() { + return reportCategoryId_; + } + + public static final int TITLE_FIELD_NUMBER = 6; + + @SuppressWarnings("serial") + private volatile java.lang.Object title_ = ""; + + /** + * + * + *
+   * Title of the product cluster.
+   * 
+ * + * optional string title = 6; + * + * @return Whether the title field is set. + */ + @java.lang.Override + public boolean hasTitle() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * Title of the product cluster.
+   * 
+ * + * optional string title = 6; + * + * @return The title. + */ + @java.lang.Override + public java.lang.String getTitle() { + java.lang.Object ref = title_; + 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(); + title_ = s; + return s; + } + } + + /** + * + * + *
+   * Title of the product cluster.
+   * 
+ * + * optional string title = 6; + * + * @return The bytes for title. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BRAND_FIELD_NUMBER = 7; + + @SuppressWarnings("serial") + private volatile java.lang.Object brand_ = ""; + + /** + * + * + *
+   * Brand of the product cluster.
+   * 
+ * + * optional string brand = 7; + * + * @return Whether the brand field is set. + */ + @java.lang.Override + public boolean hasBrand() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+   * Brand of the product cluster.
+   * 
+ * + * optional string brand = 7; + * + * @return The brand. + */ + @java.lang.Override + public java.lang.String getBrand() { + java.lang.Object ref = brand_; + 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(); + brand_ = s; + return s; + } + } + + /** + * + * + *
+   * Brand of the product cluster.
+   * 
+ * + * optional string brand = 7; + * + * @return The bytes for brand. + */ + @java.lang.Override + public com.google.protobuf.ByteString getBrandBytes() { + java.lang.Object ref = brand_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + brand_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L1_FIELD_NUMBER = 8; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL1_ = ""; + + /** + * + * + *
+   * Product category (1st level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 8; + * + * @return Whether the categoryL1 field is set. + */ + @java.lang.Override + public boolean hasCategoryL1() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+   * Product category (1st level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 8; + * + * @return The categoryL1. + */ + @java.lang.Override + public java.lang.String getCategoryL1() { + java.lang.Object ref = categoryL1_; + 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(); + categoryL1_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (1st level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 8; + * + * @return The bytes for categoryL1. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL1Bytes() { + java.lang.Object ref = categoryL1_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L2_FIELD_NUMBER = 9; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL2_ = ""; + + /** + * + * + *
+   * Product category (2nd level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 9; + * + * @return Whether the categoryL2 field is set. + */ + @java.lang.Override + public boolean hasCategoryL2() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+   * Product category (2nd level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 9; + * + * @return The categoryL2. + */ + @java.lang.Override + public java.lang.String getCategoryL2() { + java.lang.Object ref = categoryL2_; + 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(); + categoryL2_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (2nd level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 9; + * + * @return The bytes for categoryL2. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL2Bytes() { + java.lang.Object ref = categoryL2_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L3_FIELD_NUMBER = 10; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL3_ = ""; + + /** + * + * + *
+   * Product category (3rd level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 10; + * + * @return Whether the categoryL3 field is set. + */ + @java.lang.Override + public boolean hasCategoryL3() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+   * Product category (3rd level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 10; + * + * @return The categoryL3. + */ + @java.lang.Override + public java.lang.String getCategoryL3() { + java.lang.Object ref = categoryL3_; + 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(); + categoryL3_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (3rd level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 10; + * + * @return The bytes for categoryL3. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL3Bytes() { + java.lang.Object ref = categoryL3_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L4_FIELD_NUMBER = 11; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL4_ = ""; + + /** + * + * + *
+   * Product category (4th level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 11; + * + * @return Whether the categoryL4 field is set. + */ + @java.lang.Override + public boolean hasCategoryL4() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+   * Product category (4th level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 11; + * + * @return The categoryL4. + */ + @java.lang.Override + public java.lang.String getCategoryL4() { + java.lang.Object ref = categoryL4_; + 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(); + categoryL4_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (4th level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 11; + * + * @return The bytes for categoryL4. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL4Bytes() { + java.lang.Object ref = categoryL4_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L5_FIELD_NUMBER = 12; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL5_ = ""; + + /** + * + * + *
+   * Product category (5th level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 12; + * + * @return Whether the categoryL5 field is set. + */ + @java.lang.Override + public boolean hasCategoryL5() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+   * Product category (5th level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 12; + * + * @return The categoryL5. + */ + @java.lang.Override + public java.lang.String getCategoryL5() { + java.lang.Object ref = categoryL5_; + 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(); + categoryL5_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (5th level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 12; + * + * @return The bytes for categoryL5. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL5Bytes() { + java.lang.Object ref = categoryL5_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int VARIANT_GTINS_FIELD_NUMBER = 13; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList variantGtins_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+   * GTINs of example variants of the product cluster.
+   * 
+ * + * repeated string variant_gtins = 13; + * + * @return A list containing the variantGtins. + */ + public com.google.protobuf.ProtocolStringList getVariantGtinsList() { + return variantGtins_; + } + + /** + * + * + *
+   * GTINs of example variants of the product cluster.
+   * 
+ * + * repeated string variant_gtins = 13; + * + * @return The count of variantGtins. + */ + public int getVariantGtinsCount() { + return variantGtins_.size(); + } + + /** + * + * + *
+   * GTINs of example variants of the product cluster.
+   * 
+ * + * repeated string variant_gtins = 13; + * + * @param index The index of the element to return. + * @return The variantGtins at the given index. + */ + public java.lang.String getVariantGtins(int index) { + return variantGtins_.get(index); + } + + /** + * + * + *
+   * GTINs of example variants of the product cluster.
+   * 
+ * + * repeated string variant_gtins = 13; + * + * @param index The index of the value to return. + * @return The bytes of the variantGtins at the given index. + */ + public com.google.protobuf.ByteString getVariantGtinsBytes(int index) { + return variantGtins_.getByteString(index); + } + + public static final int INVENTORY_STATUS_FIELD_NUMBER = 14; + private int inventoryStatus_ = 0; + + /** + * + * + *
+   * Whether the product cluster is `IN_STOCK` in your product data source in at
+   * least one of the countries, `OUT_OF_STOCK` in your product data source in
+   * all countries, or `NOT_IN_INVENTORY` at all.
+   *
+   * The field doesn't take the Best sellers report country filter into account.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14; + * + * + * @return Whether the inventoryStatus field is set. + */ + @java.lang.Override + public boolean hasInventoryStatus() { + return ((bitField0_ & 0x00000800) != 0); + } + + /** + * + * + *
+   * Whether the product cluster is `IN_STOCK` in your product data source in at
+   * least one of the countries, `OUT_OF_STOCK` in your product data source in
+   * all countries, or `NOT_IN_INVENTORY` at all.
+   *
+   * The field doesn't take the Best sellers report country filter into account.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14; + * + * + * @return The enum numeric value on the wire for inventoryStatus. + */ + @java.lang.Override + public int getInventoryStatusValue() { + return inventoryStatus_; + } + + /** + * + * + *
+   * Whether the product cluster is `IN_STOCK` in your product data source in at
+   * least one of the countries, `OUT_OF_STOCK` in your product data source in
+   * all countries, or `NOT_IN_INVENTORY` at all.
+   *
+   * The field doesn't take the Best sellers report country filter into account.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14; + * + * + * @return The inventoryStatus. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus + getInventoryStatus() { + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus + result = + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + .InventoryStatus.forNumber(inventoryStatus_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus + .UNRECOGNIZED + : result; + } + + public static final int BRAND_INVENTORY_STATUS_FIELD_NUMBER = 15; + private int brandInventoryStatus_ = 0; + + /** + * + * + *
+   * Whether there is at least one product of the brand currently `IN_STOCK` in
+   * your product data source in at least one of the countries, all products are
+   * `OUT_OF_STOCK` in your product data source in all countries, or
+   * `NOT_IN_INVENTORY`.
+   *
+   * The field doesn't take the Best sellers report country filter into account.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15; + * + * + * @return Whether the brandInventoryStatus field is set. + */ + @java.lang.Override + public boolean hasBrandInventoryStatus() { + return ((bitField0_ & 0x00001000) != 0); + } + + /** + * + * + *
+   * Whether there is at least one product of the brand currently `IN_STOCK` in
+   * your product data source in at least one of the countries, all products are
+   * `OUT_OF_STOCK` in your product data source in all countries, or
+   * `NOT_IN_INVENTORY`.
+   *
+   * The field doesn't take the Best sellers report country filter into account.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15; + * + * + * @return The enum numeric value on the wire for brandInventoryStatus. + */ + @java.lang.Override + public int getBrandInventoryStatusValue() { + return brandInventoryStatus_; + } + + /** + * + * + *
+   * Whether there is at least one product of the brand currently `IN_STOCK` in
+   * your product data source in at least one of the countries, all products are
+   * `OUT_OF_STOCK` in your product data source in all countries, or
+   * `NOT_IN_INVENTORY`.
+   *
+   * The field doesn't take the Best sellers report country filter into account.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15; + * + * + * @return The brandInventoryStatus. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus + getBrandInventoryStatus() { + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus + result = + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + .InventoryStatus.forNumber(brandInventoryStatus_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus + .UNRECOGNIZED + : result; + } + + public static final int RANK_FIELD_NUMBER = 16; + private long rank_ = 0L; + + /** + * + * + *
+   * Popularity of the product cluster on Ads and organic surfaces, in the
+   * selected category and country, based on the estimated number of units sold.
+   * 
+ * + * optional int64 rank = 16; + * + * @return Whether the rank field is set. + */ + @java.lang.Override + public boolean hasRank() { + return ((bitField0_ & 0x00002000) != 0); + } + + /** + * + * + *
+   * Popularity of the product cluster on Ads and organic surfaces, in the
+   * selected category and country, based on the estimated number of units sold.
+   * 
+ * + * optional int64 rank = 16; + * + * @return The rank. + */ + @java.lang.Override + public long getRank() { + return rank_; + } + + public static final int PREVIOUS_RANK_FIELD_NUMBER = 17; + private long previousRank_ = 0L; + + /** + * + * + *
+   * Popularity rank in the previous week or month.
+   * 
+ * + * optional int64 previous_rank = 17; + * + * @return Whether the previousRank field is set. + */ + @java.lang.Override + public boolean hasPreviousRank() { + return ((bitField0_ & 0x00004000) != 0); + } + + /** + * + * + *
+   * Popularity rank in the previous week or month.
+   * 
+ * + * optional int64 previous_rank = 17; + * + * @return The previousRank. + */ + @java.lang.Override + public long getPreviousRank() { + return previousRank_; + } + + public static final int RELATIVE_DEMAND_FIELD_NUMBER = 18; + private int relativeDemand_ = 0; + + /** + * + * + *
+   * Estimated demand in relation to the product cluster with the highest
+   * popularity rank in the same category and country.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18; + * + * + * @return Whether the relativeDemand field is set. + */ + @java.lang.Override + public boolean hasRelativeDemand() { + return ((bitField0_ & 0x00008000) != 0); + } + + /** + * + * + *
+   * Estimated demand in relation to the product cluster with the highest
+   * popularity rank in the same category and country.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18; + * + * + * @return The enum numeric value on the wire for relativeDemand. + */ + @java.lang.Override + public int getRelativeDemandValue() { + return relativeDemand_; + } + + /** + * + * + *
+   * Estimated demand in relation to the product cluster with the highest
+   * popularity rank in the same category and country.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18; + * + * + * @return The relativeDemand. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + getRelativeDemand() { + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum result = + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum.forNumber( + relativeDemand_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + .UNRECOGNIZED + : result; + } + + public static final int PREVIOUS_RELATIVE_DEMAND_FIELD_NUMBER = 19; + private int previousRelativeDemand_ = 0; + + /** + * + * + *
+   * Estimated demand in relation to the product cluster with the highest
+   * popularity rank in the same category and country in the previous week or
+   * month.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19; + * + * + * @return Whether the previousRelativeDemand field is set. + */ + @java.lang.Override + public boolean hasPreviousRelativeDemand() { + return ((bitField0_ & 0x00010000) != 0); + } + + /** + * + * + *
+   * Estimated demand in relation to the product cluster with the highest
+   * popularity rank in the same category and country in the previous week or
+   * month.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19; + * + * + * @return The enum numeric value on the wire for previousRelativeDemand. + */ + @java.lang.Override + public int getPreviousRelativeDemandValue() { + return previousRelativeDemand_; + } + + /** + * + * + *
+   * Estimated demand in relation to the product cluster with the highest
+   * popularity rank in the same category and country in the previous week or
+   * month.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19; + * + * + * @return The previousRelativeDemand. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + getPreviousRelativeDemand() { + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum result = + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum.forNumber( + previousRelativeDemand_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + .UNRECOGNIZED + : result; + } + + public static final int RELATIVE_DEMAND_CHANGE_FIELD_NUMBER = 20; + private int relativeDemandChange_ = 0; + + /** + * + * + *
+   * Change in the estimated demand. Whether it rose, sank or remained flat.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20; + * + * + * @return Whether the relativeDemandChange field is set. + */ + @java.lang.Override + public boolean hasRelativeDemandChange() { + return ((bitField0_ & 0x00020000) != 0); + } + + /** + * + * + *
+   * Change in the estimated demand. Whether it rose, sank or remained flat.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20; + * + * + * @return The enum numeric value on the wire for relativeDemandChange. + */ + @java.lang.Override + public int getRelativeDemandChangeValue() { + return relativeDemandChange_; + } + + /** + * + * + *
+   * Change in the estimated demand. Whether it rose, sank or remained flat.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20; + * + * + * @return The relativeDemandChange. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum + getRelativeDemandChange() { + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum + result = + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum.forNumber(relativeDemandChange_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum.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 (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getReportDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeEnum(2, reportGranularity_); + } + if (((bitField0_ & 0x00000004) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, reportCountryCode_); + } + if (((bitField0_ & 0x00000008) != 0)) { + output.writeInt64(4, reportCategoryId_); + } + if (((bitField0_ & 0x00000010) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, title_); + } + if (((bitField0_ & 0x00000020) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, brand_); + } + if (((bitField0_ & 0x00000040) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 8, categoryL1_); + } + if (((bitField0_ & 0x00000080) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 9, categoryL2_); + } + if (((bitField0_ & 0x00000100) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 10, categoryL3_); + } + if (((bitField0_ & 0x00000200) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 11, categoryL4_); + } + if (((bitField0_ & 0x00000400) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 12, categoryL5_); + } + for (int i = 0; i < variantGtins_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 13, variantGtins_.getRaw(i)); + } + if (((bitField0_ & 0x00000800) != 0)) { + output.writeEnum(14, inventoryStatus_); + } + if (((bitField0_ & 0x00001000) != 0)) { + output.writeEnum(15, brandInventoryStatus_); + } + if (((bitField0_ & 0x00002000) != 0)) { + output.writeInt64(16, rank_); + } + if (((bitField0_ & 0x00004000) != 0)) { + output.writeInt64(17, previousRank_); + } + if (((bitField0_ & 0x00008000) != 0)) { + output.writeEnum(18, relativeDemand_); + } + if (((bitField0_ & 0x00010000) != 0)) { + output.writeEnum(19, previousRelativeDemand_); + } + if (((bitField0_ & 0x00020000) != 0)) { + output.writeEnum(20, relativeDemandChange_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getReportDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, reportGranularity_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, reportCountryCode_); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(4, reportCategoryId_); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, title_); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, brand_); + } + if (((bitField0_ & 0x00000040) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, categoryL1_); + } + if (((bitField0_ & 0x00000080) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, categoryL2_); + } + if (((bitField0_ & 0x00000100) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, categoryL3_); + } + if (((bitField0_ & 0x00000200) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, categoryL4_); + } + if (((bitField0_ & 0x00000400) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, categoryL5_); + } + { + int dataSize = 0; + for (int i = 0; i < variantGtins_.size(); i++) { + dataSize += computeStringSizeNoTag(variantGtins_.getRaw(i)); + } + size += dataSize; + size += 1 * getVariantGtinsList().size(); + } + if (((bitField0_ & 0x00000800) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(14, inventoryStatus_); + } + if (((bitField0_ & 0x00001000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(15, brandInventoryStatus_); + } + if (((bitField0_ & 0x00002000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(16, rank_); + } + if (((bitField0_ & 0x00004000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(17, previousRank_); + } + if (((bitField0_ & 0x00008000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(18, relativeDemand_); + } + if (((bitField0_ & 0x00010000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(19, previousRelativeDemand_); + } + if (((bitField0_ & 0x00020000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(20, relativeDemandChange_); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.BestSellersProductClusterView)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView other = + (com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView) obj; + + if (hasReportDate() != other.hasReportDate()) return false; + if (hasReportDate()) { + if (!getReportDate().equals(other.getReportDate())) return false; + } + if (hasReportGranularity() != other.hasReportGranularity()) return false; + if (hasReportGranularity()) { + if (reportGranularity_ != other.reportGranularity_) return false; + } + if (hasReportCountryCode() != other.hasReportCountryCode()) return false; + if (hasReportCountryCode()) { + if (!getReportCountryCode().equals(other.getReportCountryCode())) return false; + } + if (hasReportCategoryId() != other.hasReportCategoryId()) return false; + if (hasReportCategoryId()) { + if (getReportCategoryId() != other.getReportCategoryId()) return false; + } + if (hasTitle() != other.hasTitle()) return false; + if (hasTitle()) { + if (!getTitle().equals(other.getTitle())) return false; + } + if (hasBrand() != other.hasBrand()) return false; + if (hasBrand()) { + if (!getBrand().equals(other.getBrand())) return false; + } + if (hasCategoryL1() != other.hasCategoryL1()) return false; + if (hasCategoryL1()) { + if (!getCategoryL1().equals(other.getCategoryL1())) return false; + } + if (hasCategoryL2() != other.hasCategoryL2()) return false; + if (hasCategoryL2()) { + if (!getCategoryL2().equals(other.getCategoryL2())) return false; + } + if (hasCategoryL3() != other.hasCategoryL3()) return false; + if (hasCategoryL3()) { + if (!getCategoryL3().equals(other.getCategoryL3())) return false; + } + if (hasCategoryL4() != other.hasCategoryL4()) return false; + if (hasCategoryL4()) { + if (!getCategoryL4().equals(other.getCategoryL4())) return false; + } + if (hasCategoryL5() != other.hasCategoryL5()) return false; + if (hasCategoryL5()) { + if (!getCategoryL5().equals(other.getCategoryL5())) return false; + } + if (!getVariantGtinsList().equals(other.getVariantGtinsList())) return false; + if (hasInventoryStatus() != other.hasInventoryStatus()) return false; + if (hasInventoryStatus()) { + if (inventoryStatus_ != other.inventoryStatus_) return false; + } + if (hasBrandInventoryStatus() != other.hasBrandInventoryStatus()) return false; + if (hasBrandInventoryStatus()) { + if (brandInventoryStatus_ != other.brandInventoryStatus_) return false; + } + if (hasRank() != other.hasRank()) return false; + if (hasRank()) { + if (getRank() != other.getRank()) return false; + } + if (hasPreviousRank() != other.hasPreviousRank()) return false; + if (hasPreviousRank()) { + if (getPreviousRank() != other.getPreviousRank()) return false; + } + if (hasRelativeDemand() != other.hasRelativeDemand()) return false; + if (hasRelativeDemand()) { + if (relativeDemand_ != other.relativeDemand_) return false; + } + if (hasPreviousRelativeDemand() != other.hasPreviousRelativeDemand()) return false; + if (hasPreviousRelativeDemand()) { + if (previousRelativeDemand_ != other.previousRelativeDemand_) return false; + } + if (hasRelativeDemandChange() != other.hasRelativeDemandChange()) return false; + if (hasRelativeDemandChange()) { + if (relativeDemandChange_ != other.relativeDemandChange_) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasReportDate()) { + hash = (37 * hash) + REPORT_DATE_FIELD_NUMBER; + hash = (53 * hash) + getReportDate().hashCode(); + } + if (hasReportGranularity()) { + hash = (37 * hash) + REPORT_GRANULARITY_FIELD_NUMBER; + hash = (53 * hash) + reportGranularity_; + } + if (hasReportCountryCode()) { + hash = (37 * hash) + REPORT_COUNTRY_CODE_FIELD_NUMBER; + hash = (53 * hash) + getReportCountryCode().hashCode(); + } + if (hasReportCategoryId()) { + hash = (37 * hash) + REPORT_CATEGORY_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getReportCategoryId()); + } + if (hasTitle()) { + hash = (37 * hash) + TITLE_FIELD_NUMBER; + hash = (53 * hash) + getTitle().hashCode(); + } + if (hasBrand()) { + hash = (37 * hash) + BRAND_FIELD_NUMBER; + hash = (53 * hash) + getBrand().hashCode(); + } + if (hasCategoryL1()) { + hash = (37 * hash) + CATEGORY_L1_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL1().hashCode(); + } + if (hasCategoryL2()) { + hash = (37 * hash) + CATEGORY_L2_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL2().hashCode(); + } + if (hasCategoryL3()) { + hash = (37 * hash) + CATEGORY_L3_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL3().hashCode(); + } + if (hasCategoryL4()) { + hash = (37 * hash) + CATEGORY_L4_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL4().hashCode(); + } + if (hasCategoryL5()) { + hash = (37 * hash) + CATEGORY_L5_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL5().hashCode(); + } + if (getVariantGtinsCount() > 0) { + hash = (37 * hash) + VARIANT_GTINS_FIELD_NUMBER; + hash = (53 * hash) + getVariantGtinsList().hashCode(); + } + if (hasInventoryStatus()) { + hash = (37 * hash) + INVENTORY_STATUS_FIELD_NUMBER; + hash = (53 * hash) + inventoryStatus_; + } + if (hasBrandInventoryStatus()) { + hash = (37 * hash) + BRAND_INVENTORY_STATUS_FIELD_NUMBER; + hash = (53 * hash) + brandInventoryStatus_; + } + if (hasRank()) { + hash = (37 * hash) + RANK_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getRank()); + } + if (hasPreviousRank()) { + hash = (37 * hash) + PREVIOUS_RANK_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getPreviousRank()); + } + if (hasRelativeDemand()) { + hash = (37 * hash) + RELATIVE_DEMAND_FIELD_NUMBER; + hash = (53 * hash) + relativeDemand_; + } + if (hasPreviousRelativeDemand()) { + hash = (37 * hash) + PREVIOUS_RELATIVE_DEMAND_FIELD_NUMBER; + hash = (53 * hash) + previousRelativeDemand_; + } + if (hasRelativeDemandChange()) { + hash = (37 * hash) + RELATIVE_DEMAND_CHANGE_FIELD_NUMBER; + hash = (53 * hash) + relativeDemandChange_; + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + 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.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + 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.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + 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.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + 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.shopping.merchant.reports.v1alpha.BestSellersProductClusterView 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; + } + + /** + * + * + *
+   * Fields available for query in `best_sellers_product_cluster_view` table.
+   *
+   * [Best sellers](https://support.google.com/merchants/answer/9488679) report
+   * with top product clusters. A product cluster is a grouping for different
+   * offers and variants that represent the same product, for example, Google
+   * Pixel 7.
+   *
+   * Values are only set for fields requested explicitly in the request's search
+   * query.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView) + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterViewOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_BestSellersProductClusterView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_BestSellersProductClusterView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.class, + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.Builder + .class); + } + + // Construct using + // com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getReportDateFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + reportDate_ = null; + if (reportDateBuilder_ != null) { + reportDateBuilder_.dispose(); + reportDateBuilder_ = null; + } + reportGranularity_ = 0; + reportCountryCode_ = ""; + reportCategoryId_ = 0L; + title_ = ""; + brand_ = ""; + categoryL1_ = ""; + categoryL2_ = ""; + categoryL3_ = ""; + categoryL4_ = ""; + categoryL5_ = ""; + variantGtins_ = com.google.protobuf.LazyStringArrayList.emptyList(); + inventoryStatus_ = 0; + brandInventoryStatus_ = 0; + rank_ = 0L; + previousRank_ = 0L; + relativeDemand_ = 0; + previousRelativeDemand_ = 0; + relativeDemandChange_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_BestSellersProductClusterView_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView build() { + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + buildPartial() { + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView result = + new com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.reportDate_ = reportDateBuilder_ == null ? reportDate_ : reportDateBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.reportGranularity_ = reportGranularity_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.reportCountryCode_ = reportCountryCode_; + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.reportCategoryId_ = reportCategoryId_; + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.title_ = title_; + to_bitField0_ |= 0x00000010; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.brand_ = brand_; + to_bitField0_ |= 0x00000020; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.categoryL1_ = categoryL1_; + to_bitField0_ |= 0x00000040; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.categoryL2_ = categoryL2_; + to_bitField0_ |= 0x00000080; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.categoryL3_ = categoryL3_; + to_bitField0_ |= 0x00000100; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.categoryL4_ = categoryL4_; + to_bitField0_ |= 0x00000200; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.categoryL5_ = categoryL5_; + to_bitField0_ |= 0x00000400; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + variantGtins_.makeImmutable(); + result.variantGtins_ = variantGtins_; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.inventoryStatus_ = inventoryStatus_; + to_bitField0_ |= 0x00000800; + } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.brandInventoryStatus_ = brandInventoryStatus_; + to_bitField0_ |= 0x00001000; + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.rank_ = rank_; + to_bitField0_ |= 0x00002000; + } + if (((from_bitField0_ & 0x00008000) != 0)) { + result.previousRank_ = previousRank_; + to_bitField0_ |= 0x00004000; + } + if (((from_bitField0_ & 0x00010000) != 0)) { + result.relativeDemand_ = relativeDemand_; + to_bitField0_ |= 0x00008000; + } + if (((from_bitField0_ & 0x00020000) != 0)) { + result.previousRelativeDemand_ = previousRelativeDemand_; + to_bitField0_ |= 0x00010000; + } + if (((from_bitField0_ & 0x00040000) != 0)) { + result.relativeDemandChange_ = relativeDemandChange_; + to_bitField0_ |= 0x00020000; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.BestSellersProductClusterView) { + return mergeFrom( + (com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + .getDefaultInstance()) return this; + if (other.hasReportDate()) { + mergeReportDate(other.getReportDate()); + } + if (other.hasReportGranularity()) { + setReportGranularity(other.getReportGranularity()); + } + if (other.hasReportCountryCode()) { + reportCountryCode_ = other.reportCountryCode_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.hasReportCategoryId()) { + setReportCategoryId(other.getReportCategoryId()); + } + if (other.hasTitle()) { + title_ = other.title_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (other.hasBrand()) { + brand_ = other.brand_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (other.hasCategoryL1()) { + categoryL1_ = other.categoryL1_; + bitField0_ |= 0x00000040; + onChanged(); + } + if (other.hasCategoryL2()) { + categoryL2_ = other.categoryL2_; + bitField0_ |= 0x00000080; + onChanged(); + } + if (other.hasCategoryL3()) { + categoryL3_ = other.categoryL3_; + bitField0_ |= 0x00000100; + onChanged(); + } + if (other.hasCategoryL4()) { + categoryL4_ = other.categoryL4_; + bitField0_ |= 0x00000200; + onChanged(); + } + if (other.hasCategoryL5()) { + categoryL5_ = other.categoryL5_; + bitField0_ |= 0x00000400; + onChanged(); + } + if (!other.variantGtins_.isEmpty()) { + if (variantGtins_.isEmpty()) { + variantGtins_ = other.variantGtins_; + bitField0_ |= 0x00000800; + } else { + ensureVariantGtinsIsMutable(); + variantGtins_.addAll(other.variantGtins_); + } + onChanged(); + } + if (other.hasInventoryStatus()) { + setInventoryStatus(other.getInventoryStatus()); + } + if (other.hasBrandInventoryStatus()) { + setBrandInventoryStatus(other.getBrandInventoryStatus()); + } + if (other.hasRank()) { + setRank(other.getRank()); + } + if (other.hasPreviousRank()) { + setPreviousRank(other.getPreviousRank()); + } + if (other.hasRelativeDemand()) { + setRelativeDemand(other.getRelativeDemand()); + } + if (other.hasPreviousRelativeDemand()) { + setPreviousRelativeDemand(other.getPreviousRelativeDemand()); + } + if (other.hasRelativeDemandChange()) { + setRelativeDemandChange(other.getRelativeDemandChange()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getReportDateFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: + { + reportGranularity_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 26: + { + reportCountryCode_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 32: + { + reportCategoryId_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 50: + { + title_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 50 + case 58: + { + brand_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 58 + case 66: + { + categoryL1_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 66 + case 74: + { + categoryL2_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000080; + break; + } // case 74 + case 82: + { + categoryL3_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000100; + break; + } // case 82 + case 90: + { + categoryL4_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000200; + break; + } // case 90 + case 98: + { + categoryL5_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000400; + break; + } // case 98 + case 106: + { + java.lang.String s = input.readStringRequireUtf8(); + ensureVariantGtinsIsMutable(); + variantGtins_.add(s); + break; + } // case 106 + case 112: + { + inventoryStatus_ = input.readEnum(); + bitField0_ |= 0x00001000; + break; + } // case 112 + case 120: + { + brandInventoryStatus_ = input.readEnum(); + bitField0_ |= 0x00002000; + break; + } // case 120 + case 128: + { + rank_ = input.readInt64(); + bitField0_ |= 0x00004000; + break; + } // case 128 + case 136: + { + previousRank_ = input.readInt64(); + bitField0_ |= 0x00008000; + break; + } // case 136 + case 144: + { + relativeDemand_ = input.readEnum(); + bitField0_ |= 0x00010000; + break; + } // case 144 + case 152: + { + previousRelativeDemand_ = input.readEnum(); + bitField0_ |= 0x00020000; + break; + } // case 152 + case 160: + { + relativeDemandChange_ = input.readEnum(); + bitField0_ |= 0x00040000; + break; + } // case 160 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.type.Date reportDate_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + reportDateBuilder_; + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + * + * @return Whether the reportDate field is set. + */ + public boolean hasReportDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + * + * @return The reportDate. + */ + public com.google.type.Date getReportDate() { + if (reportDateBuilder_ == null) { + return reportDate_ == null ? com.google.type.Date.getDefaultInstance() : reportDate_; + } else { + return reportDateBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + */ + public Builder setReportDate(com.google.type.Date value) { + if (reportDateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reportDate_ = value; + } else { + reportDateBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + */ + public Builder setReportDate(com.google.type.Date.Builder builderForValue) { + if (reportDateBuilder_ == null) { + reportDate_ = builderForValue.build(); + } else { + reportDateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + */ + public Builder mergeReportDate(com.google.type.Date value) { + if (reportDateBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && reportDate_ != null + && reportDate_ != com.google.type.Date.getDefaultInstance()) { + getReportDateBuilder().mergeFrom(value); + } else { + reportDate_ = value; + } + } else { + reportDateBuilder_.mergeFrom(value); + } + if (reportDate_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + */ + public Builder clearReportDate() { + bitField0_ = (bitField0_ & ~0x00000001); + reportDate_ = null; + if (reportDateBuilder_ != null) { + reportDateBuilder_.dispose(); + reportDateBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + */ + public com.google.type.Date.Builder getReportDateBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getReportDateFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + */ + public com.google.type.DateOrBuilder getReportDateOrBuilder() { + if (reportDateBuilder_ != null) { + return reportDateBuilder_.getMessageOrBuilder(); + } else { + return reportDate_ == null ? com.google.type.Date.getDefaultInstance() : reportDate_; + } + } + + /** + * + * + *
+     * Report date. The value of this field can only be one of the following:
+     *
+     * *   The first day of the week (Monday) for weekly reports,
+     * *   The first day of the month for monthly reports.
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+     * not specified in the query, the latest available weekly or monthly report
+     * is returned.
+     * 
+ * + * .google.type.Date report_date = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + getReportDateFieldBuilder() { + if (reportDateBuilder_ == null) { + reportDateBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>( + getReportDate(), getParentForChildren(), isClean()); + reportDate_ = null; + } + return reportDateBuilder_; + } + + private int reportGranularity_ = 0; + + /** + * + * + *
+     * Granularity of the report. The ranking can be done over a week or a month
+     * timeframe.
+     *
+     * Required in the `SELECT` clause. Condition on `report_granularity` is
+     * required in the `WHERE` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return Whether the reportGranularity field is set. + */ + @java.lang.Override + public boolean hasReportGranularity() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Granularity of the report. The ranking can be done over a week or a month
+     * timeframe.
+     *
+     * Required in the `SELECT` clause. Condition on `report_granularity` is
+     * required in the `WHERE` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return The enum numeric value on the wire for reportGranularity. + */ + @java.lang.Override + public int getReportGranularityValue() { + return reportGranularity_; + } + + /** + * + * + *
+     * Granularity of the report. The ranking can be done over a week or a month
+     * timeframe.
+     *
+     * Required in the `SELECT` clause. Condition on `report_granularity` is
+     * required in the `WHERE` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @param value The enum numeric value on the wire for reportGranularity to set. + * @return This builder for chaining. + */ + public Builder setReportGranularityValue(int value) { + reportGranularity_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Granularity of the report. The ranking can be done over a week or a month
+     * timeframe.
+     *
+     * Required in the `SELECT` clause. Condition on `report_granularity` is
+     * required in the `WHERE` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return The reportGranularity. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum + getReportGranularity() { + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum result = + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum + .forNumber(reportGranularity_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Granularity of the report. The ranking can be done over a week or a month
+     * timeframe.
+     *
+     * Required in the `SELECT` clause. Condition on `report_granularity` is
+     * required in the `WHERE` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @param value The reportGranularity to set. + * @return This builder for chaining. + */ + public Builder setReportGranularity( + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum + value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + reportGranularity_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Granularity of the report. The ranking can be done over a week or a month
+     * timeframe.
+     *
+     * Required in the `SELECT` clause. Condition on `report_granularity` is
+     * required in the `WHERE` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return This builder for chaining. + */ + public Builder clearReportGranularity() { + bitField0_ = (bitField0_ & ~0x00000002); + reportGranularity_ = 0; + onChanged(); + return this; + } + + private java.lang.Object reportCountryCode_ = ""; + + /** + * + * + *
+     * Country where the ranking is calculated. Represented in the ISO 3166
+     * format.
+     *
+     * Required in the `SELECT` clause. Condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 3; + * + * @return Whether the reportCountryCode field is set. + */ + public boolean hasReportCountryCode() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * Country where the ranking is calculated. Represented in the ISO 3166
+     * format.
+     *
+     * Required in the `SELECT` clause. Condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 3; + * + * @return The reportCountryCode. + */ + public java.lang.String getReportCountryCode() { + java.lang.Object ref = reportCountryCode_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + reportCountryCode_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Country where the ranking is calculated. Represented in the ISO 3166
+     * format.
+     *
+     * Required in the `SELECT` clause. Condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 3; + * + * @return The bytes for reportCountryCode. + */ + public com.google.protobuf.ByteString getReportCountryCodeBytes() { + java.lang.Object ref = reportCountryCode_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + reportCountryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Country where the ranking is calculated. Represented in the ISO 3166
+     * format.
+     *
+     * Required in the `SELECT` clause. Condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 3; + * + * @param value The reportCountryCode to set. + * @return This builder for chaining. + */ + public Builder setReportCountryCode(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + reportCountryCode_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Country where the ranking is calculated. Represented in the ISO 3166
+     * format.
+     *
+     * Required in the `SELECT` clause. Condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 3; + * + * @return This builder for chaining. + */ + public Builder clearReportCountryCode() { + reportCountryCode_ = getDefaultInstance().getReportCountryCode(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * Country where the ranking is calculated. Represented in the ISO 3166
+     * format.
+     *
+     * Required in the `SELECT` clause. Condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 3; + * + * @param value The bytes for reportCountryCode to set. + * @return This builder for chaining. + */ + public Builder setReportCountryCodeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + reportCountryCode_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private long reportCategoryId_; + + /** + * + * + *
+     * Google product category ID to calculate the ranking for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on
+     * `report_category_id` is not specified in the query, rankings for all
+     * top-level categories are returned.
+     * 
+ * + * optional int64 report_category_id = 4; + * + * @return Whether the reportCategoryId field is set. + */ + @java.lang.Override + public boolean hasReportCategoryId() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Google product category ID to calculate the ranking for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on
+     * `report_category_id` is not specified in the query, rankings for all
+     * top-level categories are returned.
+     * 
+ * + * optional int64 report_category_id = 4; + * + * @return The reportCategoryId. + */ + @java.lang.Override + public long getReportCategoryId() { + return reportCategoryId_; + } + + /** + * + * + *
+     * Google product category ID to calculate the ranking for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on
+     * `report_category_id` is not specified in the query, rankings for all
+     * top-level categories are returned.
+     * 
+ * + * optional int64 report_category_id = 4; + * + * @param value The reportCategoryId to set. + * @return This builder for chaining. + */ + public Builder setReportCategoryId(long value) { + + reportCategoryId_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Google product category ID to calculate the ranking for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. If a `WHERE` condition on
+     * `report_category_id` is not specified in the query, rankings for all
+     * top-level categories are returned.
+     * 
+ * + * optional int64 report_category_id = 4; + * + * @return This builder for chaining. + */ + public Builder clearReportCategoryId() { + bitField0_ = (bitField0_ & ~0x00000008); + reportCategoryId_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object title_ = ""; + + /** + * + * + *
+     * Title of the product cluster.
+     * 
+ * + * optional string title = 6; + * + * @return Whether the title field is set. + */ + public boolean hasTitle() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * Title of the product cluster.
+     * 
+ * + * optional string title = 6; + * + * @return The title. + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Title of the product cluster.
+     * 
+ * + * optional string title = 6; + * + * @return The bytes for title. + */ + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Title of the product cluster.
+     * 
+ * + * optional string title = 6; + * + * @param value The title to set. + * @return This builder for chaining. + */ + public Builder setTitle(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + title_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Title of the product cluster.
+     * 
+ * + * optional string title = 6; + * + * @return This builder for chaining. + */ + public Builder clearTitle() { + title_ = getDefaultInstance().getTitle(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + + /** + * + * + *
+     * Title of the product cluster.
+     * 
+ * + * optional string title = 6; + * + * @param value The bytes for title to set. + * @return This builder for chaining. + */ + public Builder setTitleBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + title_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private java.lang.Object brand_ = ""; + + /** + * + * + *
+     * Brand of the product cluster.
+     * 
+ * + * optional string brand = 7; + * + * @return Whether the brand field is set. + */ + public boolean hasBrand() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * Brand of the product cluster.
+     * 
+ * + * optional string brand = 7; + * + * @return The brand. + */ + public java.lang.String getBrand() { + java.lang.Object ref = brand_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + brand_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Brand of the product cluster.
+     * 
+ * + * optional string brand = 7; + * + * @return The bytes for brand. + */ + public com.google.protobuf.ByteString getBrandBytes() { + java.lang.Object ref = brand_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + brand_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Brand of the product cluster.
+     * 
+ * + * optional string brand = 7; + * + * @param value The brand to set. + * @return This builder for chaining. + */ + public Builder setBrand(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + brand_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * Brand of the product cluster.
+     * 
+ * + * optional string brand = 7; + * + * @return This builder for chaining. + */ + public Builder clearBrand() { + brand_ = getDefaultInstance().getBrand(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + + /** + * + * + *
+     * Brand of the product cluster.
+     * 
+ * + * optional string brand = 7; + * + * @param value The bytes for brand to set. + * @return This builder for chaining. + */ + public Builder setBrandBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + brand_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private java.lang.Object categoryL1_ = ""; + + /** + * + * + *
+     * Product category (1st level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 8; + * + * @return Whether the categoryL1 field is set. + */ + public boolean hasCategoryL1() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+     * Product category (1st level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 8; + * + * @return The categoryL1. + */ + public java.lang.String getCategoryL1() { + java.lang.Object ref = categoryL1_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL1_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (1st level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 8; + * + * @return The bytes for categoryL1. + */ + public com.google.protobuf.ByteString getCategoryL1Bytes() { + java.lang.Object ref = categoryL1_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (1st level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 8; + * + * @param value The categoryL1 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL1(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL1_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (1st level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 8; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL1() { + categoryL1_ = getDefaultInstance().getCategoryL1(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (1st level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 8; + * + * @param value The bytes for categoryL1 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL1Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL1_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + private java.lang.Object categoryL2_ = ""; + + /** + * + * + *
+     * Product category (2nd level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 9; + * + * @return Whether the categoryL2 field is set. + */ + public boolean hasCategoryL2() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+     * Product category (2nd level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 9; + * + * @return The categoryL2. + */ + public java.lang.String getCategoryL2() { + java.lang.Object ref = categoryL2_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL2_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (2nd level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 9; + * + * @return The bytes for categoryL2. + */ + public com.google.protobuf.ByteString getCategoryL2Bytes() { + java.lang.Object ref = categoryL2_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (2nd level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 9; + * + * @param value The categoryL2 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL2(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL2_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (2nd level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 9; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL2() { + categoryL2_ = getDefaultInstance().getCategoryL2(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (2nd level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 9; + * + * @param value The bytes for categoryL2 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL2Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL2_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + private java.lang.Object categoryL3_ = ""; + + /** + * + * + *
+     * Product category (3rd level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 10; + * + * @return Whether the categoryL3 field is set. + */ + public boolean hasCategoryL3() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+     * Product category (3rd level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 10; + * + * @return The categoryL3. + */ + public java.lang.String getCategoryL3() { + java.lang.Object ref = categoryL3_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL3_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (3rd level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 10; + * + * @return The bytes for categoryL3. + */ + public com.google.protobuf.ByteString getCategoryL3Bytes() { + java.lang.Object ref = categoryL3_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (3rd level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 10; + * + * @param value The categoryL3 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL3(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL3_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (3rd level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 10; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL3() { + categoryL3_ = getDefaultInstance().getCategoryL3(); + bitField0_ = (bitField0_ & ~0x00000100); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (3rd level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 10; + * + * @param value The bytes for categoryL3 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL3Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL3_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + private java.lang.Object categoryL4_ = ""; + + /** + * + * + *
+     * Product category (4th level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 11; + * + * @return Whether the categoryL4 field is set. + */ + public boolean hasCategoryL4() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+     * Product category (4th level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 11; + * + * @return The categoryL4. + */ + public java.lang.String getCategoryL4() { + java.lang.Object ref = categoryL4_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL4_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (4th level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 11; + * + * @return The bytes for categoryL4. + */ + public com.google.protobuf.ByteString getCategoryL4Bytes() { + java.lang.Object ref = categoryL4_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (4th level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 11; + * + * @param value The categoryL4 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL4(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL4_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (4th level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 11; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL4() { + categoryL4_ = getDefaultInstance().getCategoryL4(); + bitField0_ = (bitField0_ & ~0x00000200); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (4th level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 11; + * + * @param value The bytes for categoryL4 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL4Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL4_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + private java.lang.Object categoryL5_ = ""; + + /** + * + * + *
+     * Product category (5th level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 12; + * + * @return Whether the categoryL5 field is set. + */ + public boolean hasCategoryL5() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+     * Product category (5th level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 12; + * + * @return The categoryL5. + */ + public java.lang.String getCategoryL5() { + java.lang.Object ref = categoryL5_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL5_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (5th level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 12; + * + * @return The bytes for categoryL5. + */ + public com.google.protobuf.ByteString getCategoryL5Bytes() { + java.lang.Object ref = categoryL5_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (5th level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 12; + * + * @param value The categoryL5 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL5(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL5_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (5th level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 12; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL5() { + categoryL5_ = getDefaultInstance().getCategoryL5(); + bitField0_ = (bitField0_ & ~0x00000400); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (5th level) of the product cluster, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 12; + * + * @param value The bytes for categoryL5 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL5Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL5_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringArrayList variantGtins_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureVariantGtinsIsMutable() { + if (!variantGtins_.isModifiable()) { + variantGtins_ = new com.google.protobuf.LazyStringArrayList(variantGtins_); + } + bitField0_ |= 0x00000800; + } + + /** + * + * + *
+     * GTINs of example variants of the product cluster.
+     * 
+ * + * repeated string variant_gtins = 13; + * + * @return A list containing the variantGtins. + */ + public com.google.protobuf.ProtocolStringList getVariantGtinsList() { + variantGtins_.makeImmutable(); + return variantGtins_; + } + + /** + * + * + *
+     * GTINs of example variants of the product cluster.
+     * 
+ * + * repeated string variant_gtins = 13; + * + * @return The count of variantGtins. + */ + public int getVariantGtinsCount() { + return variantGtins_.size(); + } + + /** + * + * + *
+     * GTINs of example variants of the product cluster.
+     * 
+ * + * repeated string variant_gtins = 13; + * + * @param index The index of the element to return. + * @return The variantGtins at the given index. + */ + public java.lang.String getVariantGtins(int index) { + return variantGtins_.get(index); + } + + /** + * + * + *
+     * GTINs of example variants of the product cluster.
+     * 
+ * + * repeated string variant_gtins = 13; + * + * @param index The index of the value to return. + * @return The bytes of the variantGtins at the given index. + */ + public com.google.protobuf.ByteString getVariantGtinsBytes(int index) { + return variantGtins_.getByteString(index); + } + + /** + * + * + *
+     * GTINs of example variants of the product cluster.
+     * 
+ * + * repeated string variant_gtins = 13; + * + * @param index The index to set the value at. + * @param value The variantGtins to set. + * @return This builder for chaining. + */ + public Builder setVariantGtins(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureVariantGtinsIsMutable(); + variantGtins_.set(index, value); + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + /** + * + * + *
+     * GTINs of example variants of the product cluster.
+     * 
+ * + * repeated string variant_gtins = 13; + * + * @param value The variantGtins to add. + * @return This builder for chaining. + */ + public Builder addVariantGtins(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureVariantGtinsIsMutable(); + variantGtins_.add(value); + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + /** + * + * + *
+     * GTINs of example variants of the product cluster.
+     * 
+ * + * repeated string variant_gtins = 13; + * + * @param values The variantGtins to add. + * @return This builder for chaining. + */ + public Builder addAllVariantGtins(java.lang.Iterable values) { + ensureVariantGtinsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, variantGtins_); + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + /** + * + * + *
+     * GTINs of example variants of the product cluster.
+     * 
+ * + * repeated string variant_gtins = 13; + * + * @return This builder for chaining. + */ + public Builder clearVariantGtins() { + variantGtins_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000800); + ; + onChanged(); + return this; + } + + /** + * + * + *
+     * GTINs of example variants of the product cluster.
+     * 
+ * + * repeated string variant_gtins = 13; + * + * @param value The bytes of the variantGtins to add. + * @return This builder for chaining. + */ + public Builder addVariantGtinsBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureVariantGtinsIsMutable(); + variantGtins_.add(value); + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + private int inventoryStatus_ = 0; + + /** + * + * + *
+     * Whether the product cluster is `IN_STOCK` in your product data source in at
+     * least one of the countries, `OUT_OF_STOCK` in your product data source in
+     * all countries, or `NOT_IN_INVENTORY` at all.
+     *
+     * The field doesn't take the Best sellers report country filter into account.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14; + * + * + * @return Whether the inventoryStatus field is set. + */ + @java.lang.Override + public boolean hasInventoryStatus() { + return ((bitField0_ & 0x00001000) != 0); + } + + /** + * + * + *
+     * Whether the product cluster is `IN_STOCK` in your product data source in at
+     * least one of the countries, `OUT_OF_STOCK` in your product data source in
+     * all countries, or `NOT_IN_INVENTORY` at all.
+     *
+     * The field doesn't take the Best sellers report country filter into account.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14; + * + * + * @return The enum numeric value on the wire for inventoryStatus. + */ + @java.lang.Override + public int getInventoryStatusValue() { + return inventoryStatus_; + } + + /** + * + * + *
+     * Whether the product cluster is `IN_STOCK` in your product data source in at
+     * least one of the countries, `OUT_OF_STOCK` in your product data source in
+     * all countries, or `NOT_IN_INVENTORY` at all.
+     *
+     * The field doesn't take the Best sellers report country filter into account.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14; + * + * + * @param value The enum numeric value on the wire for inventoryStatus to set. + * @return This builder for chaining. + */ + public Builder setInventoryStatusValue(int value) { + inventoryStatus_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Whether the product cluster is `IN_STOCK` in your product data source in at
+     * least one of the countries, `OUT_OF_STOCK` in your product data source in
+     * all countries, or `NOT_IN_INVENTORY` at all.
+     *
+     * The field doesn't take the Best sellers report country filter into account.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14; + * + * + * @return The inventoryStatus. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + .InventoryStatus + getInventoryStatus() { + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus + result = + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + .InventoryStatus.forNumber(inventoryStatus_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + .InventoryStatus.UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Whether the product cluster is `IN_STOCK` in your product data source in at
+     * least one of the countries, `OUT_OF_STOCK` in your product data source in
+     * all countries, or `NOT_IN_INVENTORY` at all.
+     *
+     * The field doesn't take the Best sellers report country filter into account.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14; + * + * + * @param value The inventoryStatus to set. + * @return This builder for chaining. + */ + public Builder setInventoryStatus( + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus + value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00001000; + inventoryStatus_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Whether the product cluster is `IN_STOCK` in your product data source in at
+     * least one of the countries, `OUT_OF_STOCK` in your product data source in
+     * all countries, or `NOT_IN_INVENTORY` at all.
+     *
+     * The field doesn't take the Best sellers report country filter into account.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14; + * + * + * @return This builder for chaining. + */ + public Builder clearInventoryStatus() { + bitField0_ = (bitField0_ & ~0x00001000); + inventoryStatus_ = 0; + onChanged(); + return this; + } + + private int brandInventoryStatus_ = 0; + + /** + * + * + *
+     * Whether there is at least one product of the brand currently `IN_STOCK` in
+     * your product data source in at least one of the countries, all products are
+     * `OUT_OF_STOCK` in your product data source in all countries, or
+     * `NOT_IN_INVENTORY`.
+     *
+     * The field doesn't take the Best sellers report country filter into account.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15; + * + * + * @return Whether the brandInventoryStatus field is set. + */ + @java.lang.Override + public boolean hasBrandInventoryStatus() { + return ((bitField0_ & 0x00002000) != 0); + } + + /** + * + * + *
+     * Whether there is at least one product of the brand currently `IN_STOCK` in
+     * your product data source in at least one of the countries, all products are
+     * `OUT_OF_STOCK` in your product data source in all countries, or
+     * `NOT_IN_INVENTORY`.
+     *
+     * The field doesn't take the Best sellers report country filter into account.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15; + * + * + * @return The enum numeric value on the wire for brandInventoryStatus. + */ + @java.lang.Override + public int getBrandInventoryStatusValue() { + return brandInventoryStatus_; + } + + /** + * + * + *
+     * Whether there is at least one product of the brand currently `IN_STOCK` in
+     * your product data source in at least one of the countries, all products are
+     * `OUT_OF_STOCK` in your product data source in all countries, or
+     * `NOT_IN_INVENTORY`.
+     *
+     * The field doesn't take the Best sellers report country filter into account.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15; + * + * + * @param value The enum numeric value on the wire for brandInventoryStatus to set. + * @return This builder for chaining. + */ + public Builder setBrandInventoryStatusValue(int value) { + brandInventoryStatus_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Whether there is at least one product of the brand currently `IN_STOCK` in
+     * your product data source in at least one of the countries, all products are
+     * `OUT_OF_STOCK` in your product data source in all countries, or
+     * `NOT_IN_INVENTORY`.
+     *
+     * The field doesn't take the Best sellers report country filter into account.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15; + * + * + * @return The brandInventoryStatus. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + .InventoryStatus + getBrandInventoryStatus() { + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus + result = + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + .InventoryStatus.forNumber(brandInventoryStatus_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + .InventoryStatus.UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Whether there is at least one product of the brand currently `IN_STOCK` in
+     * your product data source in at least one of the countries, all products are
+     * `OUT_OF_STOCK` in your product data source in all countries, or
+     * `NOT_IN_INVENTORY`.
+     *
+     * The field doesn't take the Best sellers report country filter into account.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15; + * + * + * @param value The brandInventoryStatus to set. + * @return This builder for chaining. + */ + public Builder setBrandInventoryStatus( + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus + value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00002000; + brandInventoryStatus_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Whether there is at least one product of the brand currently `IN_STOCK` in
+     * your product data source in at least one of the countries, all products are
+     * `OUT_OF_STOCK` in your product data source in all countries, or
+     * `NOT_IN_INVENTORY`.
+     *
+     * The field doesn't take the Best sellers report country filter into account.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15; + * + * + * @return This builder for chaining. + */ + public Builder clearBrandInventoryStatus() { + bitField0_ = (bitField0_ & ~0x00002000); + brandInventoryStatus_ = 0; + onChanged(); + return this; + } + + private long rank_; + + /** + * + * + *
+     * Popularity of the product cluster on Ads and organic surfaces, in the
+     * selected category and country, based on the estimated number of units sold.
+     * 
+ * + * optional int64 rank = 16; + * + * @return Whether the rank field is set. + */ + @java.lang.Override + public boolean hasRank() { + return ((bitField0_ & 0x00004000) != 0); + } + + /** + * + * + *
+     * Popularity of the product cluster on Ads and organic surfaces, in the
+     * selected category and country, based on the estimated number of units sold.
+     * 
+ * + * optional int64 rank = 16; + * + * @return The rank. + */ + @java.lang.Override + public long getRank() { + return rank_; + } + + /** + * + * + *
+     * Popularity of the product cluster on Ads and organic surfaces, in the
+     * selected category and country, based on the estimated number of units sold.
+     * 
+ * + * optional int64 rank = 16; + * + * @param value The rank to set. + * @return This builder for chaining. + */ + public Builder setRank(long value) { + + rank_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Popularity of the product cluster on Ads and organic surfaces, in the
+     * selected category and country, based on the estimated number of units sold.
+     * 
+ * + * optional int64 rank = 16; + * + * @return This builder for chaining. + */ + public Builder clearRank() { + bitField0_ = (bitField0_ & ~0x00004000); + rank_ = 0L; + onChanged(); + return this; + } + + private long previousRank_; + + /** + * + * + *
+     * Popularity rank in the previous week or month.
+     * 
+ * + * optional int64 previous_rank = 17; + * + * @return Whether the previousRank field is set. + */ + @java.lang.Override + public boolean hasPreviousRank() { + return ((bitField0_ & 0x00008000) != 0); + } + + /** + * + * + *
+     * Popularity rank in the previous week or month.
+     * 
+ * + * optional int64 previous_rank = 17; + * + * @return The previousRank. + */ + @java.lang.Override + public long getPreviousRank() { + return previousRank_; + } + + /** + * + * + *
+     * Popularity rank in the previous week or month.
+     * 
+ * + * optional int64 previous_rank = 17; + * + * @param value The previousRank to set. + * @return This builder for chaining. + */ + public Builder setPreviousRank(long value) { + + previousRank_ = value; + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Popularity rank in the previous week or month.
+     * 
+ * + * optional int64 previous_rank = 17; + * + * @return This builder for chaining. + */ + public Builder clearPreviousRank() { + bitField0_ = (bitField0_ & ~0x00008000); + previousRank_ = 0L; + onChanged(); + return this; + } + + private int relativeDemand_ = 0; + + /** + * + * + *
+     * Estimated demand in relation to the product cluster with the highest
+     * popularity rank in the same category and country.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18; + * + * + * @return Whether the relativeDemand field is set. + */ + @java.lang.Override + public boolean hasRelativeDemand() { + return ((bitField0_ & 0x00010000) != 0); + } + + /** + * + * + *
+     * Estimated demand in relation to the product cluster with the highest
+     * popularity rank in the same category and country.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18; + * + * + * @return The enum numeric value on the wire for relativeDemand. + */ + @java.lang.Override + public int getRelativeDemandValue() { + return relativeDemand_; + } + + /** + * + * + *
+     * Estimated demand in relation to the product cluster with the highest
+     * popularity rank in the same category and country.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18; + * + * + * @param value The enum numeric value on the wire for relativeDemand to set. + * @return This builder for chaining. + */ + public Builder setRelativeDemandValue(int value) { + relativeDemand_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Estimated demand in relation to the product cluster with the highest
+     * popularity rank in the same category and country.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18; + * + * + * @return The relativeDemand. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + getRelativeDemand() { + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum result = + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum.forNumber( + relativeDemand_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Estimated demand in relation to the product cluster with the highest
+     * popularity rank in the same category and country.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18; + * + * + * @param value The relativeDemand to set. + * @return This builder for chaining. + */ + public Builder setRelativeDemand( + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00010000; + relativeDemand_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Estimated demand in relation to the product cluster with the highest
+     * popularity rank in the same category and country.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18; + * + * + * @return This builder for chaining. + */ + public Builder clearRelativeDemand() { + bitField0_ = (bitField0_ & ~0x00010000); + relativeDemand_ = 0; + onChanged(); + return this; + } + + private int previousRelativeDemand_ = 0; + + /** + * + * + *
+     * Estimated demand in relation to the product cluster with the highest
+     * popularity rank in the same category and country in the previous week or
+     * month.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19; + * + * + * @return Whether the previousRelativeDemand field is set. + */ + @java.lang.Override + public boolean hasPreviousRelativeDemand() { + return ((bitField0_ & 0x00020000) != 0); + } + + /** + * + * + *
+     * Estimated demand in relation to the product cluster with the highest
+     * popularity rank in the same category and country in the previous week or
+     * month.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19; + * + * + * @return The enum numeric value on the wire for previousRelativeDemand. + */ + @java.lang.Override + public int getPreviousRelativeDemandValue() { + return previousRelativeDemand_; + } + + /** + * + * + *
+     * Estimated demand in relation to the product cluster with the highest
+     * popularity rank in the same category and country in the previous week or
+     * month.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19; + * + * + * @param value The enum numeric value on the wire for previousRelativeDemand to set. + * @return This builder for chaining. + */ + public Builder setPreviousRelativeDemandValue(int value) { + previousRelativeDemand_ = value; + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Estimated demand in relation to the product cluster with the highest
+     * popularity rank in the same category and country in the previous week or
+     * month.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19; + * + * + * @return The previousRelativeDemand. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + getPreviousRelativeDemand() { + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum result = + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum.forNumber( + previousRelativeDemand_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Estimated demand in relation to the product cluster with the highest
+     * popularity rank in the same category and country in the previous week or
+     * month.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19; + * + * + * @param value The previousRelativeDemand to set. + * @return This builder for chaining. + */ + public Builder setPreviousRelativeDemand( + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00020000; + previousRelativeDemand_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Estimated demand in relation to the product cluster with the highest
+     * popularity rank in the same category and country in the previous week or
+     * month.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19; + * + * + * @return This builder for chaining. + */ + public Builder clearPreviousRelativeDemand() { + bitField0_ = (bitField0_ & ~0x00020000); + previousRelativeDemand_ = 0; + onChanged(); + return this; + } + + private int relativeDemandChange_ = 0; + + /** + * + * + *
+     * Change in the estimated demand. Whether it rose, sank or remained flat.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20; + * + * + * @return Whether the relativeDemandChange field is set. + */ + @java.lang.Override + public boolean hasRelativeDemandChange() { + return ((bitField0_ & 0x00040000) != 0); + } + + /** + * + * + *
+     * Change in the estimated demand. Whether it rose, sank or remained flat.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20; + * + * + * @return The enum numeric value on the wire for relativeDemandChange. + */ + @java.lang.Override + public int getRelativeDemandChangeValue() { + return relativeDemandChange_; + } + + /** + * + * + *
+     * Change in the estimated demand. Whether it rose, sank or remained flat.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20; + * + * + * @param value The enum numeric value on the wire for relativeDemandChange to set. + * @return This builder for chaining. + */ + public Builder setRelativeDemandChangeValue(int value) { + relativeDemandChange_ = value; + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Change in the estimated demand. Whether it rose, sank or remained flat.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20; + * + * + * @return The relativeDemandChange. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum + getRelativeDemandChange() { + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum + result = + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum.forNumber(relativeDemandChange_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum.UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Change in the estimated demand. Whether it rose, sank or remained flat.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20; + * + * + * @param value The relativeDemandChange to set. + * @return This builder for chaining. + */ + public Builder setRelativeDemandChange( + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .RelativeDemandChangeTypeEnum + value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00040000; + relativeDemandChange_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Change in the estimated demand. Whether it rose, sank or remained flat.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20; + * + * + * @return This builder for chaining. + */ + public Builder clearRelativeDemandChange() { + bitField0_ = (bitField0_ & ~0x00040000); + relativeDemandChange_ = 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.shopping.merchant.reports.v1alpha.BestSellersProductClusterView) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView) + private static final com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView(); + } + + public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public BestSellersProductClusterView parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersProductClusterViewOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersProductClusterViewOrBuilder.java new file mode 100644 index 000000000000..0e234405cac7 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersProductClusterViewOrBuilder.java @@ -0,0 +1,908 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface BestSellersProductClusterViewOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Report date. The value of this field can only be one of the following:
+   *
+   * *   The first day of the week (Monday) for weekly reports,
+   * *   The first day of the month for monthly reports.
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+   * not specified in the query, the latest available weekly or monthly report
+   * is returned.
+   * 
+ * + * .google.type.Date report_date = 1; + * + * @return Whether the reportDate field is set. + */ + boolean hasReportDate(); + + /** + * + * + *
+   * Report date. The value of this field can only be one of the following:
+   *
+   * *   The first day of the week (Monday) for weekly reports,
+   * *   The first day of the month for monthly reports.
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+   * not specified in the query, the latest available weekly or monthly report
+   * is returned.
+   * 
+ * + * .google.type.Date report_date = 1; + * + * @return The reportDate. + */ + com.google.type.Date getReportDate(); + + /** + * + * + *
+   * Report date. The value of this field can only be one of the following:
+   *
+   * *   The first day of the week (Monday) for weekly reports,
+   * *   The first day of the month for monthly reports.
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+   * not specified in the query, the latest available weekly or monthly report
+   * is returned.
+   * 
+ * + * .google.type.Date report_date = 1; + */ + com.google.type.DateOrBuilder getReportDateOrBuilder(); + + /** + * + * + *
+   * Granularity of the report. The ranking can be done over a week or a month
+   * timeframe.
+   *
+   * Required in the `SELECT` clause. Condition on `report_granularity` is
+   * required in the `WHERE` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return Whether the reportGranularity field is set. + */ + boolean hasReportGranularity(); + + /** + * + * + *
+   * Granularity of the report. The ranking can be done over a week or a month
+   * timeframe.
+   *
+   * Required in the `SELECT` clause. Condition on `report_granularity` is
+   * required in the `WHERE` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return The enum numeric value on the wire for reportGranularity. + */ + int getReportGranularityValue(); + + /** + * + * + *
+   * Granularity of the report. The ranking can be done over a week or a month
+   * timeframe.
+   *
+   * Required in the `SELECT` clause. Condition on `report_granularity` is
+   * required in the `WHERE` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2; + * + * + * @return The reportGranularity. + */ + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum + getReportGranularity(); + + /** + * + * + *
+   * Country where the ranking is calculated. Represented in the ISO 3166
+   * format.
+   *
+   * Required in the `SELECT` clause. Condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 3; + * + * @return Whether the reportCountryCode field is set. + */ + boolean hasReportCountryCode(); + + /** + * + * + *
+   * Country where the ranking is calculated. Represented in the ISO 3166
+   * format.
+   *
+   * Required in the `SELECT` clause. Condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 3; + * + * @return The reportCountryCode. + */ + java.lang.String getReportCountryCode(); + + /** + * + * + *
+   * Country where the ranking is calculated. Represented in the ISO 3166
+   * format.
+   *
+   * Required in the `SELECT` clause. Condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 3; + * + * @return The bytes for reportCountryCode. + */ + com.google.protobuf.ByteString getReportCountryCodeBytes(); + + /** + * + * + *
+   * Google product category ID to calculate the ranking for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on
+   * `report_category_id` is not specified in the query, rankings for all
+   * top-level categories are returned.
+   * 
+ * + * optional int64 report_category_id = 4; + * + * @return Whether the reportCategoryId field is set. + */ + boolean hasReportCategoryId(); + + /** + * + * + *
+   * Google product category ID to calculate the ranking for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. If a `WHERE` condition on
+   * `report_category_id` is not specified in the query, rankings for all
+   * top-level categories are returned.
+   * 
+ * + * optional int64 report_category_id = 4; + * + * @return The reportCategoryId. + */ + long getReportCategoryId(); + + /** + * + * + *
+   * Title of the product cluster.
+   * 
+ * + * optional string title = 6; + * + * @return Whether the title field is set. + */ + boolean hasTitle(); + + /** + * + * + *
+   * Title of the product cluster.
+   * 
+ * + * optional string title = 6; + * + * @return The title. + */ + java.lang.String getTitle(); + + /** + * + * + *
+   * Title of the product cluster.
+   * 
+ * + * optional string title = 6; + * + * @return The bytes for title. + */ + com.google.protobuf.ByteString getTitleBytes(); + + /** + * + * + *
+   * Brand of the product cluster.
+   * 
+ * + * optional string brand = 7; + * + * @return Whether the brand field is set. + */ + boolean hasBrand(); + + /** + * + * + *
+   * Brand of the product cluster.
+   * 
+ * + * optional string brand = 7; + * + * @return The brand. + */ + java.lang.String getBrand(); + + /** + * + * + *
+   * Brand of the product cluster.
+   * 
+ * + * optional string brand = 7; + * + * @return The bytes for brand. + */ + com.google.protobuf.ByteString getBrandBytes(); + + /** + * + * + *
+   * Product category (1st level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 8; + * + * @return Whether the categoryL1 field is set. + */ + boolean hasCategoryL1(); + + /** + * + * + *
+   * Product category (1st level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 8; + * + * @return The categoryL1. + */ + java.lang.String getCategoryL1(); + + /** + * + * + *
+   * Product category (1st level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 8; + * + * @return The bytes for categoryL1. + */ + com.google.protobuf.ByteString getCategoryL1Bytes(); + + /** + * + * + *
+   * Product category (2nd level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 9; + * + * @return Whether the categoryL2 field is set. + */ + boolean hasCategoryL2(); + + /** + * + * + *
+   * Product category (2nd level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 9; + * + * @return The categoryL2. + */ + java.lang.String getCategoryL2(); + + /** + * + * + *
+   * Product category (2nd level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 9; + * + * @return The bytes for categoryL2. + */ + com.google.protobuf.ByteString getCategoryL2Bytes(); + + /** + * + * + *
+   * Product category (3rd level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 10; + * + * @return Whether the categoryL3 field is set. + */ + boolean hasCategoryL3(); + + /** + * + * + *
+   * Product category (3rd level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 10; + * + * @return The categoryL3. + */ + java.lang.String getCategoryL3(); + + /** + * + * + *
+   * Product category (3rd level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 10; + * + * @return The bytes for categoryL3. + */ + com.google.protobuf.ByteString getCategoryL3Bytes(); + + /** + * + * + *
+   * Product category (4th level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 11; + * + * @return Whether the categoryL4 field is set. + */ + boolean hasCategoryL4(); + + /** + * + * + *
+   * Product category (4th level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 11; + * + * @return The categoryL4. + */ + java.lang.String getCategoryL4(); + + /** + * + * + *
+   * Product category (4th level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 11; + * + * @return The bytes for categoryL4. + */ + com.google.protobuf.ByteString getCategoryL4Bytes(); + + /** + * + * + *
+   * Product category (5th level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 12; + * + * @return Whether the categoryL5 field is set. + */ + boolean hasCategoryL5(); + + /** + * + * + *
+   * Product category (5th level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 12; + * + * @return The categoryL5. + */ + java.lang.String getCategoryL5(); + + /** + * + * + *
+   * Product category (5th level) of the product cluster, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 12; + * + * @return The bytes for categoryL5. + */ + com.google.protobuf.ByteString getCategoryL5Bytes(); + + /** + * + * + *
+   * GTINs of example variants of the product cluster.
+   * 
+ * + * repeated string variant_gtins = 13; + * + * @return A list containing the variantGtins. + */ + java.util.List getVariantGtinsList(); + + /** + * + * + *
+   * GTINs of example variants of the product cluster.
+   * 
+ * + * repeated string variant_gtins = 13; + * + * @return The count of variantGtins. + */ + int getVariantGtinsCount(); + + /** + * + * + *
+   * GTINs of example variants of the product cluster.
+   * 
+ * + * repeated string variant_gtins = 13; + * + * @param index The index of the element to return. + * @return The variantGtins at the given index. + */ + java.lang.String getVariantGtins(int index); + + /** + * + * + *
+   * GTINs of example variants of the product cluster.
+   * 
+ * + * repeated string variant_gtins = 13; + * + * @param index The index of the value to return. + * @return The bytes of the variantGtins at the given index. + */ + com.google.protobuf.ByteString getVariantGtinsBytes(int index); + + /** + * + * + *
+   * Whether the product cluster is `IN_STOCK` in your product data source in at
+   * least one of the countries, `OUT_OF_STOCK` in your product data source in
+   * all countries, or `NOT_IN_INVENTORY` at all.
+   *
+   * The field doesn't take the Best sellers report country filter into account.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14; + * + * + * @return Whether the inventoryStatus field is set. + */ + boolean hasInventoryStatus(); + + /** + * + * + *
+   * Whether the product cluster is `IN_STOCK` in your product data source in at
+   * least one of the countries, `OUT_OF_STOCK` in your product data source in
+   * all countries, or `NOT_IN_INVENTORY` at all.
+   *
+   * The field doesn't take the Best sellers report country filter into account.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14; + * + * + * @return The enum numeric value on the wire for inventoryStatus. + */ + int getInventoryStatusValue(); + + /** + * + * + *
+   * Whether the product cluster is `IN_STOCK` in your product data source in at
+   * least one of the countries, `OUT_OF_STOCK` in your product data source in
+   * all countries, or `NOT_IN_INVENTORY` at all.
+   *
+   * The field doesn't take the Best sellers report country filter into account.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14; + * + * + * @return The inventoryStatus. + */ + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus + getInventoryStatus(); + + /** + * + * + *
+   * Whether there is at least one product of the brand currently `IN_STOCK` in
+   * your product data source in at least one of the countries, all products are
+   * `OUT_OF_STOCK` in your product data source in all countries, or
+   * `NOT_IN_INVENTORY`.
+   *
+   * The field doesn't take the Best sellers report country filter into account.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15; + * + * + * @return Whether the brandInventoryStatus field is set. + */ + boolean hasBrandInventoryStatus(); + + /** + * + * + *
+   * Whether there is at least one product of the brand currently `IN_STOCK` in
+   * your product data source in at least one of the countries, all products are
+   * `OUT_OF_STOCK` in your product data source in all countries, or
+   * `NOT_IN_INVENTORY`.
+   *
+   * The field doesn't take the Best sellers report country filter into account.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15; + * + * + * @return The enum numeric value on the wire for brandInventoryStatus. + */ + int getBrandInventoryStatusValue(); + + /** + * + * + *
+   * Whether there is at least one product of the brand currently `IN_STOCK` in
+   * your product data source in at least one of the countries, all products are
+   * `OUT_OF_STOCK` in your product data source in all countries, or
+   * `NOT_IN_INVENTORY`.
+   *
+   * The field doesn't take the Best sellers report country filter into account.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15; + * + * + * @return The brandInventoryStatus. + */ + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus + getBrandInventoryStatus(); + + /** + * + * + *
+   * Popularity of the product cluster on Ads and organic surfaces, in the
+   * selected category and country, based on the estimated number of units sold.
+   * 
+ * + * optional int64 rank = 16; + * + * @return Whether the rank field is set. + */ + boolean hasRank(); + + /** + * + * + *
+   * Popularity of the product cluster on Ads and organic surfaces, in the
+   * selected category and country, based on the estimated number of units sold.
+   * 
+ * + * optional int64 rank = 16; + * + * @return The rank. + */ + long getRank(); + + /** + * + * + *
+   * Popularity rank in the previous week or month.
+   * 
+ * + * optional int64 previous_rank = 17; + * + * @return Whether the previousRank field is set. + */ + boolean hasPreviousRank(); + + /** + * + * + *
+   * Popularity rank in the previous week or month.
+   * 
+ * + * optional int64 previous_rank = 17; + * + * @return The previousRank. + */ + long getPreviousRank(); + + /** + * + * + *
+   * Estimated demand in relation to the product cluster with the highest
+   * popularity rank in the same category and country.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18; + * + * + * @return Whether the relativeDemand field is set. + */ + boolean hasRelativeDemand(); + + /** + * + * + *
+   * Estimated demand in relation to the product cluster with the highest
+   * popularity rank in the same category and country.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18; + * + * + * @return The enum numeric value on the wire for relativeDemand. + */ + int getRelativeDemandValue(); + + /** + * + * + *
+   * Estimated demand in relation to the product cluster with the highest
+   * popularity rank in the same category and country.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18; + * + * + * @return The relativeDemand. + */ + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + getRelativeDemand(); + + /** + * + * + *
+   * Estimated demand in relation to the product cluster with the highest
+   * popularity rank in the same category and country in the previous week or
+   * month.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19; + * + * + * @return Whether the previousRelativeDemand field is set. + */ + boolean hasPreviousRelativeDemand(); + + /** + * + * + *
+   * Estimated demand in relation to the product cluster with the highest
+   * popularity rank in the same category and country in the previous week or
+   * month.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19; + * + * + * @return The enum numeric value on the wire for previousRelativeDemand. + */ + int getPreviousRelativeDemandValue(); + + /** + * + * + *
+   * Estimated demand in relation to the product cluster with the highest
+   * popularity rank in the same category and country in the previous week or
+   * month.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19; + * + * + * @return The previousRelativeDemand. + */ + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum + getPreviousRelativeDemand(); + + /** + * + * + *
+   * Change in the estimated demand. Whether it rose, sank or remained flat.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20; + * + * + * @return Whether the relativeDemandChange field is set. + */ + boolean hasRelativeDemandChange(); + + /** + * + * + *
+   * Change in the estimated demand. Whether it rose, sank or remained flat.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20; + * + * + * @return The enum numeric value on the wire for relativeDemandChange. + */ + int getRelativeDemandChangeValue(); + + /** + * + * + *
+   * Change in the estimated demand. Whether it rose, sank or remained flat.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20; + * + * + * @return The relativeDemandChange. + */ + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum + getRelativeDemandChange(); +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityBenchmarkView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityBenchmarkView.java new file mode 100644 index 000000000000..0f1309a2301a --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityBenchmarkView.java @@ -0,0 +1,1796 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Fields available for query in `competitive_visibility_benchmark_view` table.
+ *
+ * [Competitive
+ * visibility](https://support.google.com/merchants/answer/11366442) report with
+ * the category benchmark.
+ *
+ * Values are only set for fields requested explicitly in the request's search
+ * query.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView} + */ +public final class CompetitiveVisibilityBenchmarkView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView) + CompetitiveVisibilityBenchmarkViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use CompetitiveVisibilityBenchmarkView.newBuilder() to construct. + private CompetitiveVisibilityBenchmarkView( + com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private CompetitiveVisibilityBenchmarkView() { + reportCountryCode_ = ""; + trafficSource_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new CompetitiveVisibilityBenchmarkView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityBenchmarkView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityBenchmarkView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView.class, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView.Builder + .class); + } + + private int bitField0_; + public static final int DATE_FIELD_NUMBER = 1; + private com.google.type.Date date_; + + /** + * + * + *
+   * Date of this row.
+   *
+   * Required in the `SELECT` clause. A condition on `date` is required in the
+   * `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + @java.lang.Override + public boolean hasDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Date of this row.
+   *
+   * Required in the `SELECT` clause. A condition on `date` is required in the
+   * `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + @java.lang.Override + public com.google.type.Date getDate() { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + + /** + * + * + *
+   * Date of this row.
+   *
+   * Required in the `SELECT` clause. A condition on `date` is required in the
+   * `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + */ + @java.lang.Override + public com.google.type.DateOrBuilder getDateOrBuilder() { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + + public static final int REPORT_COUNTRY_CODE_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object reportCountryCode_ = ""; + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 2; + * + * @return Whether the reportCountryCode field is set. + */ + @java.lang.Override + public boolean hasReportCountryCode() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 2; + * + * @return The reportCountryCode. + */ + @java.lang.Override + public java.lang.String getReportCountryCode() { + java.lang.Object ref = reportCountryCode_; + 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(); + reportCountryCode_ = s; + return s; + } + } + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 2; + * + * @return The bytes for reportCountryCode. + */ + @java.lang.Override + public com.google.protobuf.ByteString getReportCountryCodeBytes() { + java.lang.Object ref = reportCountryCode_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + reportCountryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int REPORT_CATEGORY_ID_FIELD_NUMBER = 3; + private long reportCategoryId_ = 0L; + + /** + * + * + *
+   * Google product category ID to calculate the report for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. A condition on `report_category_id` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional int64 report_category_id = 3; + * + * @return Whether the reportCategoryId field is set. + */ + @java.lang.Override + public boolean hasReportCategoryId() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * Google product category ID to calculate the report for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. A condition on `report_category_id` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional int64 report_category_id = 3; + * + * @return The reportCategoryId. + */ + @java.lang.Override + public long getReportCategoryId() { + return reportCategoryId_; + } + + public static final int TRAFFIC_SOURCE_FIELD_NUMBER = 4; + private int trafficSource_ = 0; + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4; + * + * + * @return Whether the trafficSource field is set. + */ + @java.lang.Override + public boolean hasTrafficSource() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4; + * + * + * @return The enum numeric value on the wire for trafficSource. + */ + @java.lang.Override + public int getTrafficSourceValue() { + return trafficSource_; + } + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4; + * + * + * @return The trafficSource. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum + getTrafficSource() { + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum result = + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.forNumber( + trafficSource_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.UNRECOGNIZED + : result; + } + + public static final int YOUR_DOMAIN_VISIBILITY_TREND_FIELD_NUMBER = 5; + private double yourDomainVisibilityTrend_ = 0D; + + /** + * + * + *
+   * Change in visibility based on impressions for your domain with respect to
+   * the start of the selected time range (or first day with non-zero
+   * impressions).
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double your_domain_visibility_trend = 5; + * + * @return Whether the yourDomainVisibilityTrend field is set. + */ + @java.lang.Override + public boolean hasYourDomainVisibilityTrend() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * Change in visibility based on impressions for your domain with respect to
+   * the start of the selected time range (or first day with non-zero
+   * impressions).
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double your_domain_visibility_trend = 5; + * + * @return The yourDomainVisibilityTrend. + */ + @java.lang.Override + public double getYourDomainVisibilityTrend() { + return yourDomainVisibilityTrend_; + } + + public static final int CATEGORY_BENCHMARK_VISIBILITY_TREND_FIELD_NUMBER = 6; + private double categoryBenchmarkVisibilityTrend_ = 0D; + + /** + * + * + *
+   * Change in visibility based on impressions with respect to the start of the
+   * selected time range (or first day with non-zero impressions) for a
+   * combined set of merchants with highest visibility approximating the
+   * market.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double category_benchmark_visibility_trend = 6; + * + * @return Whether the categoryBenchmarkVisibilityTrend field is set. + */ + @java.lang.Override + public boolean hasCategoryBenchmarkVisibilityTrend() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+   * Change in visibility based on impressions with respect to the start of the
+   * selected time range (or first day with non-zero impressions) for a
+   * combined set of merchants with highest visibility approximating the
+   * market.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double category_benchmark_visibility_trend = 6; + * + * @return The categoryBenchmarkVisibilityTrend. + */ + @java.lang.Override + public double getCategoryBenchmarkVisibilityTrend() { + return categoryBenchmarkVisibilityTrend_; + } + + 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 (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, reportCountryCode_); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeInt64(3, reportCategoryId_); + } + if (((bitField0_ & 0x00000008) != 0)) { + output.writeEnum(4, trafficSource_); + } + if (((bitField0_ & 0x00000010) != 0)) { + output.writeDouble(5, yourDomainVisibilityTrend_); + } + if (((bitField0_ & 0x00000020) != 0)) { + output.writeDouble(6, categoryBenchmarkVisibilityTrend_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, reportCountryCode_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(3, reportCategoryId_); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(4, trafficSource_); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeDoubleSize(5, yourDomainVisibilityTrend_); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeDoubleSize( + 6, categoryBenchmarkVisibilityTrend_); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView other = + (com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView) obj; + + if (hasDate() != other.hasDate()) return false; + if (hasDate()) { + if (!getDate().equals(other.getDate())) return false; + } + if (hasReportCountryCode() != other.hasReportCountryCode()) return false; + if (hasReportCountryCode()) { + if (!getReportCountryCode().equals(other.getReportCountryCode())) return false; + } + if (hasReportCategoryId() != other.hasReportCategoryId()) return false; + if (hasReportCategoryId()) { + if (getReportCategoryId() != other.getReportCategoryId()) return false; + } + if (hasTrafficSource() != other.hasTrafficSource()) return false; + if (hasTrafficSource()) { + if (trafficSource_ != other.trafficSource_) return false; + } + if (hasYourDomainVisibilityTrend() != other.hasYourDomainVisibilityTrend()) return false; + if (hasYourDomainVisibilityTrend()) { + if (java.lang.Double.doubleToLongBits(getYourDomainVisibilityTrend()) + != java.lang.Double.doubleToLongBits(other.getYourDomainVisibilityTrend())) return false; + } + if (hasCategoryBenchmarkVisibilityTrend() != other.hasCategoryBenchmarkVisibilityTrend()) + return false; + if (hasCategoryBenchmarkVisibilityTrend()) { + if (java.lang.Double.doubleToLongBits(getCategoryBenchmarkVisibilityTrend()) + != java.lang.Double.doubleToLongBits(other.getCategoryBenchmarkVisibilityTrend())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasDate()) { + hash = (37 * hash) + DATE_FIELD_NUMBER; + hash = (53 * hash) + getDate().hashCode(); + } + if (hasReportCountryCode()) { + hash = (37 * hash) + REPORT_COUNTRY_CODE_FIELD_NUMBER; + hash = (53 * hash) + getReportCountryCode().hashCode(); + } + if (hasReportCategoryId()) { + hash = (37 * hash) + REPORT_CATEGORY_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getReportCategoryId()); + } + if (hasTrafficSource()) { + hash = (37 * hash) + TRAFFIC_SOURCE_FIELD_NUMBER; + hash = (53 * hash) + trafficSource_; + } + if (hasYourDomainVisibilityTrend()) { + hash = (37 * hash) + YOUR_DOMAIN_VISIBILITY_TREND_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getYourDomainVisibilityTrend())); + } + if (hasCategoryBenchmarkVisibilityTrend()) { + hash = (37 * hash) + CATEGORY_BENCHMARK_VISIBILITY_TREND_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getCategoryBenchmarkVisibilityTrend())); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView 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; + } + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_benchmark_view` table.
+   *
+   * [Competitive
+   * visibility](https://support.google.com/merchants/answer/11366442) report with
+   * the category benchmark.
+   *
+   * Values are only set for fields requested explicitly in the request's search
+   * query.
+   * 
+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView) + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkViewOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityBenchmarkView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityBenchmarkView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView.class, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + .Builder.class); + } + + // Construct using + // com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getDateFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + date_ = null; + if (dateBuilder_ != null) { + dateBuilder_.dispose(); + dateBuilder_ = null; + } + reportCountryCode_ = ""; + reportCategoryId_ = 0L; + trafficSource_ = 0; + yourDomainVisibilityTrend_ = 0D; + categoryBenchmarkVisibilityTrend_ = 0D; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityBenchmarkView_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView build() { + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + buildPartial() { + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView result = + new com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.date_ = dateBuilder_ == null ? date_ : dateBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.reportCountryCode_ = reportCountryCode_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.reportCategoryId_ = reportCategoryId_; + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.trafficSource_ = trafficSource_; + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.yourDomainVisibilityTrend_ = yourDomainVisibilityTrend_; + to_bitField0_ |= 0x00000010; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.categoryBenchmarkVisibilityTrend_ = categoryBenchmarkVisibilityTrend_; + to_bitField0_ |= 0x00000020; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView) { + return mergeFrom( + (com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView) + other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + .getDefaultInstance()) return this; + if (other.hasDate()) { + mergeDate(other.getDate()); + } + if (other.hasReportCountryCode()) { + reportCountryCode_ = other.reportCountryCode_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.hasReportCategoryId()) { + setReportCategoryId(other.getReportCategoryId()); + } + if (other.hasTrafficSource()) { + setTrafficSource(other.getTrafficSource()); + } + if (other.hasYourDomainVisibilityTrend()) { + setYourDomainVisibilityTrend(other.getYourDomainVisibilityTrend()); + } + if (other.hasCategoryBenchmarkVisibilityTrend()) { + setCategoryBenchmarkVisibilityTrend(other.getCategoryBenchmarkVisibilityTrend()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getDateFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + reportCountryCode_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: + { + reportCategoryId_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: + { + trafficSource_ = input.readEnum(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 41: + { + yourDomainVisibilityTrend_ = input.readDouble(); + bitField0_ |= 0x00000010; + break; + } // case 41 + case 49: + { + categoryBenchmarkVisibilityTrend_ = input.readDouble(); + bitField0_ |= 0x00000020; + break; + } // case 49 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.type.Date date_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + dateBuilder_; + + /** + * + * + *
+     * Date of this row.
+     *
+     * Required in the `SELECT` clause. A condition on `date` is required in the
+     * `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + public boolean hasDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * Required in the `SELECT` clause. A condition on `date` is required in the
+     * `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + public com.google.type.Date getDate() { + if (dateBuilder_ == null) { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } else { + return dateBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * Required in the `SELECT` clause. A condition on `date` is required in the
+     * `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder setDate(com.google.type.Date value) { + if (dateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + date_ = value; + } else { + dateBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * Required in the `SELECT` clause. A condition on `date` is required in the
+     * `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder setDate(com.google.type.Date.Builder builderForValue) { + if (dateBuilder_ == null) { + date_ = builderForValue.build(); + } else { + dateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * Required in the `SELECT` clause. A condition on `date` is required in the
+     * `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder mergeDate(com.google.type.Date value) { + if (dateBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && date_ != null + && date_ != com.google.type.Date.getDefaultInstance()) { + getDateBuilder().mergeFrom(value); + } else { + date_ = value; + } + } else { + dateBuilder_.mergeFrom(value); + } + if (date_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * Required in the `SELECT` clause. A condition on `date` is required in the
+     * `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder clearDate() { + bitField0_ = (bitField0_ & ~0x00000001); + date_ = null; + if (dateBuilder_ != null) { + dateBuilder_.dispose(); + dateBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * Required in the `SELECT` clause. A condition on `date` is required in the
+     * `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public com.google.type.Date.Builder getDateBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getDateFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * Required in the `SELECT` clause. A condition on `date` is required in the
+     * `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public com.google.type.DateOrBuilder getDateOrBuilder() { + if (dateBuilder_ != null) { + return dateBuilder_.getMessageOrBuilder(); + } else { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * Required in the `SELECT` clause. A condition on `date` is required in the
+     * `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + getDateFieldBuilder() { + if (dateBuilder_ == null) { + dateBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>( + getDate(), getParentForChildren(), isClean()); + date_ = null; + } + return dateBuilder_; + } + + private java.lang.Object reportCountryCode_ = ""; + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 2; + * + * @return Whether the reportCountryCode field is set. + */ + public boolean hasReportCountryCode() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 2; + * + * @return The reportCountryCode. + */ + public java.lang.String getReportCountryCode() { + java.lang.Object ref = reportCountryCode_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + reportCountryCode_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 2; + * + * @return The bytes for reportCountryCode. + */ + public com.google.protobuf.ByteString getReportCountryCodeBytes() { + java.lang.Object ref = reportCountryCode_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + reportCountryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 2; + * + * @param value The reportCountryCode to set. + * @return This builder for chaining. + */ + public Builder setReportCountryCode(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + reportCountryCode_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 2; + * + * @return This builder for chaining. + */ + public Builder clearReportCountryCode() { + reportCountryCode_ = getDefaultInstance().getReportCountryCode(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 2; + * + * @param value The bytes for reportCountryCode to set. + * @return This builder for chaining. + */ + public Builder setReportCountryCodeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + reportCountryCode_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private long reportCategoryId_; + + /** + * + * + *
+     * Google product category ID to calculate the report for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. A condition on `report_category_id` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional int64 report_category_id = 3; + * + * @return Whether the reportCategoryId field is set. + */ + @java.lang.Override + public boolean hasReportCategoryId() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * Google product category ID to calculate the report for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. A condition on `report_category_id` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional int64 report_category_id = 3; + * + * @return The reportCategoryId. + */ + @java.lang.Override + public long getReportCategoryId() { + return reportCategoryId_; + } + + /** + * + * + *
+     * Google product category ID to calculate the report for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. A condition on `report_category_id` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional int64 report_category_id = 3; + * + * @param value The reportCategoryId to set. + * @return This builder for chaining. + */ + public Builder setReportCategoryId(long value) { + + reportCategoryId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Google product category ID to calculate the report for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. A condition on `report_category_id` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional int64 report_category_id = 3; + * + * @return This builder for chaining. + */ + public Builder clearReportCategoryId() { + bitField0_ = (bitField0_ & ~0x00000004); + reportCategoryId_ = 0L; + onChanged(); + return this; + } + + private int trafficSource_ = 0; + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4; + * + * + * @return Whether the trafficSource field is set. + */ + @java.lang.Override + public boolean hasTrafficSource() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4; + * + * + * @return The enum numeric value on the wire for trafficSource. + */ + @java.lang.Override + public int getTrafficSourceValue() { + return trafficSource_; + } + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4; + * + * + * @param value The enum numeric value on the wire for trafficSource to set. + * @return This builder for chaining. + */ + public Builder setTrafficSourceValue(int value) { + trafficSource_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4; + * + * + * @return The trafficSource. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum + getTrafficSource() { + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum result = + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.forNumber( + trafficSource_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4; + * + * + * @param value The trafficSource to set. + * @return This builder for chaining. + */ + public Builder setTrafficSource( + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000008; + trafficSource_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4; + * + * + * @return This builder for chaining. + */ + public Builder clearTrafficSource() { + bitField0_ = (bitField0_ & ~0x00000008); + trafficSource_ = 0; + onChanged(); + return this; + } + + private double yourDomainVisibilityTrend_; + + /** + * + * + *
+     * Change in visibility based on impressions for your domain with respect to
+     * the start of the selected time range (or first day with non-zero
+     * impressions).
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double your_domain_visibility_trend = 5; + * + * @return Whether the yourDomainVisibilityTrend field is set. + */ + @java.lang.Override + public boolean hasYourDomainVisibilityTrend() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * Change in visibility based on impressions for your domain with respect to
+     * the start of the selected time range (or first day with non-zero
+     * impressions).
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double your_domain_visibility_trend = 5; + * + * @return The yourDomainVisibilityTrend. + */ + @java.lang.Override + public double getYourDomainVisibilityTrend() { + return yourDomainVisibilityTrend_; + } + + /** + * + * + *
+     * Change in visibility based on impressions for your domain with respect to
+     * the start of the selected time range (or first day with non-zero
+     * impressions).
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double your_domain_visibility_trend = 5; + * + * @param value The yourDomainVisibilityTrend to set. + * @return This builder for chaining. + */ + public Builder setYourDomainVisibilityTrend(double value) { + + yourDomainVisibilityTrend_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Change in visibility based on impressions for your domain with respect to
+     * the start of the selected time range (or first day with non-zero
+     * impressions).
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double your_domain_visibility_trend = 5; + * + * @return This builder for chaining. + */ + public Builder clearYourDomainVisibilityTrend() { + bitField0_ = (bitField0_ & ~0x00000010); + yourDomainVisibilityTrend_ = 0D; + onChanged(); + return this; + } + + private double categoryBenchmarkVisibilityTrend_; + + /** + * + * + *
+     * Change in visibility based on impressions with respect to the start of the
+     * selected time range (or first day with non-zero impressions) for a
+     * combined set of merchants with highest visibility approximating the
+     * market.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double category_benchmark_visibility_trend = 6; + * + * @return Whether the categoryBenchmarkVisibilityTrend field is set. + */ + @java.lang.Override + public boolean hasCategoryBenchmarkVisibilityTrend() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * Change in visibility based on impressions with respect to the start of the
+     * selected time range (or first day with non-zero impressions) for a
+     * combined set of merchants with highest visibility approximating the
+     * market.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double category_benchmark_visibility_trend = 6; + * + * @return The categoryBenchmarkVisibilityTrend. + */ + @java.lang.Override + public double getCategoryBenchmarkVisibilityTrend() { + return categoryBenchmarkVisibilityTrend_; + } + + /** + * + * + *
+     * Change in visibility based on impressions with respect to the start of the
+     * selected time range (or first day with non-zero impressions) for a
+     * combined set of merchants with highest visibility approximating the
+     * market.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double category_benchmark_visibility_trend = 6; + * + * @param value The categoryBenchmarkVisibilityTrend to set. + * @return This builder for chaining. + */ + public Builder setCategoryBenchmarkVisibilityTrend(double value) { + + categoryBenchmarkVisibilityTrend_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * Change in visibility based on impressions with respect to the start of the
+     * selected time range (or first day with non-zero impressions) for a
+     * combined set of merchants with highest visibility approximating the
+     * market.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double category_benchmark_visibility_trend = 6; + * + * @return This builder for chaining. + */ + public Builder clearCategoryBenchmarkVisibilityTrend() { + bitField0_ = (bitField0_ & ~0x00000020); + categoryBenchmarkVisibilityTrend_ = 0D; + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView) + private static final com.google.shopping.merchant.reports.v1alpha + .CompetitiveVisibilityBenchmarkView + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView(); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CompetitiveVisibilityBenchmarkView parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityBenchmarkViewOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityBenchmarkViewOrBuilder.java new file mode 100644 index 000000000000..50254c9c18fb --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityBenchmarkViewOrBuilder.java @@ -0,0 +1,277 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface CompetitiveVisibilityBenchmarkViewOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Date of this row.
+   *
+   * Required in the `SELECT` clause. A condition on `date` is required in the
+   * `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + boolean hasDate(); + + /** + * + * + *
+   * Date of this row.
+   *
+   * Required in the `SELECT` clause. A condition on `date` is required in the
+   * `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + com.google.type.Date getDate(); + + /** + * + * + *
+   * Date of this row.
+   *
+   * Required in the `SELECT` clause. A condition on `date` is required in the
+   * `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + */ + com.google.type.DateOrBuilder getDateOrBuilder(); + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 2; + * + * @return Whether the reportCountryCode field is set. + */ + boolean hasReportCountryCode(); + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 2; + * + * @return The reportCountryCode. + */ + java.lang.String getReportCountryCode(); + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 2; + * + * @return The bytes for reportCountryCode. + */ + com.google.protobuf.ByteString getReportCountryCodeBytes(); + + /** + * + * + *
+   * Google product category ID to calculate the report for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. A condition on `report_category_id` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional int64 report_category_id = 3; + * + * @return Whether the reportCategoryId field is set. + */ + boolean hasReportCategoryId(); + + /** + * + * + *
+   * Google product category ID to calculate the report for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. A condition on `report_category_id` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional int64 report_category_id = 3; + * + * @return The reportCategoryId. + */ + long getReportCategoryId(); + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4; + * + * + * @return Whether the trafficSource field is set. + */ + boolean hasTrafficSource(); + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4; + * + * + * @return The enum numeric value on the wire for trafficSource. + */ + int getTrafficSourceValue(); + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4; + * + * + * @return The trafficSource. + */ + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum getTrafficSource(); + + /** + * + * + *
+   * Change in visibility based on impressions for your domain with respect to
+   * the start of the selected time range (or first day with non-zero
+   * impressions).
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double your_domain_visibility_trend = 5; + * + * @return Whether the yourDomainVisibilityTrend field is set. + */ + boolean hasYourDomainVisibilityTrend(); + + /** + * + * + *
+   * Change in visibility based on impressions for your domain with respect to
+   * the start of the selected time range (or first day with non-zero
+   * impressions).
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double your_domain_visibility_trend = 5; + * + * @return The yourDomainVisibilityTrend. + */ + double getYourDomainVisibilityTrend(); + + /** + * + * + *
+   * Change in visibility based on impressions with respect to the start of the
+   * selected time range (or first day with non-zero impressions) for a
+   * combined set of merchants with highest visibility approximating the
+   * market.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double category_benchmark_visibility_trend = 6; + * + * @return Whether the categoryBenchmarkVisibilityTrend field is set. + */ + boolean hasCategoryBenchmarkVisibilityTrend(); + + /** + * + * + *
+   * Change in visibility based on impressions with respect to the start of the
+   * selected time range (or first day with non-zero impressions) for a
+   * combined set of merchants with highest visibility approximating the
+   * market.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double category_benchmark_visibility_trend = 6; + * + * @return The categoryBenchmarkVisibilityTrend. + */ + double getCategoryBenchmarkVisibilityTrend(); +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityCompetitorView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityCompetitorView.java new file mode 100644 index 000000000000..116717d1683c --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityCompetitorView.java @@ -0,0 +1,2699 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Fields available for query in `competitive_visibility_competitor_view` table.
+ *
+ * [Competitive
+ * visibility](https://support.google.com/merchants/answer/11366442) report with
+ * businesses with similar visibility.
+ *
+ * Values are only set for fields requested explicitly in the request's search
+ * query.
+ * 
+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView} + */ +public final class CompetitiveVisibilityCompetitorView + extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView) + CompetitiveVisibilityCompetitorViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use CompetitiveVisibilityCompetitorView.newBuilder() to construct. + private CompetitiveVisibilityCompetitorView( + com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private CompetitiveVisibilityCompetitorView() { + domain_ = ""; + reportCountryCode_ = ""; + trafficSource_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new CompetitiveVisibilityCompetitorView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityCompetitorView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityCompetitorView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView.class, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView.Builder + .class); + } + + private int bitField0_; + public static final int DATE_FIELD_NUMBER = 1; + private com.google.type.Date date_; + + /** + * + * + *
+   * Date of this row.
+   *
+   * A condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + @java.lang.Override + public boolean hasDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Date of this row.
+   *
+   * A condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + @java.lang.Override + public com.google.type.Date getDate() { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + + /** + * + * + *
+   * Date of this row.
+   *
+   * A condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + */ + @java.lang.Override + public com.google.type.DateOrBuilder getDateOrBuilder() { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + + public static final int DOMAIN_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object domain_ = ""; + + /** + * + * + *
+   * Domain of your competitor or your domain, if 'is_your_domain' is true.
+   *
+   * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+   * clause.
+   * 
+ * + * optional string domain = 2; + * + * @return Whether the domain field is set. + */ + @java.lang.Override + public boolean hasDomain() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Domain of your competitor or your domain, if 'is_your_domain' is true.
+   *
+   * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+   * clause.
+   * 
+ * + * optional string domain = 2; + * + * @return The domain. + */ + @java.lang.Override + public java.lang.String getDomain() { + java.lang.Object ref = domain_; + 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(); + domain_ = s; + return s; + } + } + + /** + * + * + *
+   * Domain of your competitor or your domain, if 'is_your_domain' is true.
+   *
+   * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+   * clause.
+   * 
+ * + * optional string domain = 2; + * + * @return The bytes for domain. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDomainBytes() { + java.lang.Object ref = domain_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + domain_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int IS_YOUR_DOMAIN_FIELD_NUMBER = 3; + private boolean isYourDomain_ = false; + + /** + * + * + *
+   * True if this row contains data for your domain.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional bool is_your_domain = 3; + * + * @return Whether the isYourDomain field is set. + */ + @java.lang.Override + public boolean hasIsYourDomain() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * True if this row contains data for your domain.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional bool is_your_domain = 3; + * + * @return The isYourDomain. + */ + @java.lang.Override + public boolean getIsYourDomain() { + return isYourDomain_; + } + + public static final int REPORT_COUNTRY_CODE_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object reportCountryCode_ = ""; + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 4; + * + * @return Whether the reportCountryCode field is set. + */ + @java.lang.Override + public boolean hasReportCountryCode() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 4; + * + * @return The reportCountryCode. + */ + @java.lang.Override + public java.lang.String getReportCountryCode() { + java.lang.Object ref = reportCountryCode_; + 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(); + reportCountryCode_ = s; + return s; + } + } + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 4; + * + * @return The bytes for reportCountryCode. + */ + @java.lang.Override + public com.google.protobuf.ByteString getReportCountryCodeBytes() { + java.lang.Object ref = reportCountryCode_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + reportCountryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int REPORT_CATEGORY_ID_FIELD_NUMBER = 5; + private long reportCategoryId_ = 0L; + + /** + * + * + *
+   * Google product category ID to calculate the report for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. A condition on `report_category_id` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional int64 report_category_id = 5; + * + * @return Whether the reportCategoryId field is set. + */ + @java.lang.Override + public boolean hasReportCategoryId() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * Google product category ID to calculate the report for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. A condition on `report_category_id` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional int64 report_category_id = 5; + * + * @return The reportCategoryId. + */ + @java.lang.Override + public long getReportCategoryId() { + return reportCategoryId_; + } + + public static final int TRAFFIC_SOURCE_FIELD_NUMBER = 6; + private int trafficSource_ = 0; + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return Whether the trafficSource field is set. + */ + @java.lang.Override + public boolean hasTrafficSource() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return The enum numeric value on the wire for trafficSource. + */ + @java.lang.Override + public int getTrafficSourceValue() { + return trafficSource_; + } + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return The trafficSource. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum + getTrafficSource() { + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum result = + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.forNumber( + trafficSource_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.UNRECOGNIZED + : result; + } + + public static final int RANK_FIELD_NUMBER = 7; + private long rank_ = 0L; + + /** + * + * + *
+   * Position of the domain in the similar businesses ranking for the selected
+   * keys (`date`, `report_category_id`, `report_country_code`,
+   * `traffic_source`) based on impressions. 1 is the highest.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional int64 rank = 7; + * + * @return Whether the rank field is set. + */ + @java.lang.Override + public boolean hasRank() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+   * Position of the domain in the similar businesses ranking for the selected
+   * keys (`date`, `report_category_id`, `report_country_code`,
+   * `traffic_source`) based on impressions. 1 is the highest.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional int64 rank = 7; + * + * @return The rank. + */ + @java.lang.Override + public long getRank() { + return rank_; + } + + public static final int ADS_ORGANIC_RATIO_FIELD_NUMBER = 8; + private double adsOrganicRatio_ = 0D; + + /** + * + * + *
+   * [Ads / organic ratio]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+   * shows how often the domain receives impressions from Shopping ads compared
+   * to organic traffic. The number is rounded and bucketed.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double ads_organic_ratio = 8; + * + * @return Whether the adsOrganicRatio field is set. + */ + @java.lang.Override + public boolean hasAdsOrganicRatio() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+   * [Ads / organic ratio]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+   * shows how often the domain receives impressions from Shopping ads compared
+   * to organic traffic. The number is rounded and bucketed.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double ads_organic_ratio = 8; + * + * @return The adsOrganicRatio. + */ + @java.lang.Override + public double getAdsOrganicRatio() { + return adsOrganicRatio_; + } + + public static final int PAGE_OVERLAP_RATE_FIELD_NUMBER = 9; + private double pageOverlapRate_ = 0D; + + /** + * + * + *
+   * [Page overlap rate]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+   * shows how frequently competing retailers’ offers are shown together with
+   * your offers on the same page.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double page_overlap_rate = 9; + * + * @return Whether the pageOverlapRate field is set. + */ + @java.lang.Override + public boolean hasPageOverlapRate() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+   * [Page overlap rate]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+   * shows how frequently competing retailers’ offers are shown together with
+   * your offers on the same page.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double page_overlap_rate = 9; + * + * @return The pageOverlapRate. + */ + @java.lang.Override + public double getPageOverlapRate() { + return pageOverlapRate_; + } + + public static final int HIGHER_POSITION_RATE_FIELD_NUMBER = 10; + private double higherPositionRate_ = 0D; + + /** + * + * + *
+   * [Higher position rate]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+   * shows how often a competitor’s offer got placed in a higher position on the
+   * page than your offer.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double higher_position_rate = 10; + * + * @return Whether the higherPositionRate field is set. + */ + @java.lang.Override + public boolean hasHigherPositionRate() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+   * [Higher position rate]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+   * shows how often a competitor’s offer got placed in a higher position on the
+   * page than your offer.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double higher_position_rate = 10; + * + * @return The higherPositionRate. + */ + @java.lang.Override + public double getHigherPositionRate() { + return higherPositionRate_; + } + + public static final int RELATIVE_VISIBILITY_FIELD_NUMBER = 11; + private double relativeVisibility_ = 0D; + + /** + * + * + *
+   * [Relative visibility]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility)
+   * shows how often your competitors’ offers are shown compared to your offers.
+   * In other words, this is the number of displayed impressions of a competitor
+   * retailer divided by the number of your displayed impressions during a
+   * selected time range for a selected product category and country.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double relative_visibility = 11; + * + * @return Whether the relativeVisibility field is set. + */ + @java.lang.Override + public boolean hasRelativeVisibility() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+   * [Relative visibility]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility)
+   * shows how often your competitors’ offers are shown compared to your offers.
+   * In other words, this is the number of displayed impressions of a competitor
+   * retailer divided by the number of your displayed impressions during a
+   * selected time range for a selected product category and country.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double relative_visibility = 11; + * + * @return The relativeVisibility. + */ + @java.lang.Override + public double getRelativeVisibility() { + return relativeVisibility_; + } + + 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 (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, domain_); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeBool(3, isYourDomain_); + } + if (((bitField0_ & 0x00000008) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, reportCountryCode_); + } + if (((bitField0_ & 0x00000010) != 0)) { + output.writeInt64(5, reportCategoryId_); + } + if (((bitField0_ & 0x00000020) != 0)) { + output.writeEnum(6, trafficSource_); + } + if (((bitField0_ & 0x00000040) != 0)) { + output.writeInt64(7, rank_); + } + if (((bitField0_ & 0x00000080) != 0)) { + output.writeDouble(8, adsOrganicRatio_); + } + if (((bitField0_ & 0x00000100) != 0)) { + output.writeDouble(9, pageOverlapRate_); + } + if (((bitField0_ & 0x00000200) != 0)) { + output.writeDouble(10, higherPositionRate_); + } + if (((bitField0_ & 0x00000400) != 0)) { + output.writeDouble(11, relativeVisibility_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, domain_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, isYourDomain_); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, reportCountryCode_); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(5, reportCategoryId_); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(6, trafficSource_); + } + if (((bitField0_ & 0x00000040) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(7, rank_); + } + if (((bitField0_ & 0x00000080) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(8, adsOrganicRatio_); + } + if (((bitField0_ & 0x00000100) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(9, pageOverlapRate_); + } + if (((bitField0_ & 0x00000200) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(10, higherPositionRate_); + } + if (((bitField0_ & 0x00000400) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(11, relativeVisibility_); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView other = + (com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView) obj; + + if (hasDate() != other.hasDate()) return false; + if (hasDate()) { + if (!getDate().equals(other.getDate())) return false; + } + if (hasDomain() != other.hasDomain()) return false; + if (hasDomain()) { + if (!getDomain().equals(other.getDomain())) return false; + } + if (hasIsYourDomain() != other.hasIsYourDomain()) return false; + if (hasIsYourDomain()) { + if (getIsYourDomain() != other.getIsYourDomain()) return false; + } + if (hasReportCountryCode() != other.hasReportCountryCode()) return false; + if (hasReportCountryCode()) { + if (!getReportCountryCode().equals(other.getReportCountryCode())) return false; + } + if (hasReportCategoryId() != other.hasReportCategoryId()) return false; + if (hasReportCategoryId()) { + if (getReportCategoryId() != other.getReportCategoryId()) return false; + } + if (hasTrafficSource() != other.hasTrafficSource()) return false; + if (hasTrafficSource()) { + if (trafficSource_ != other.trafficSource_) return false; + } + if (hasRank() != other.hasRank()) return false; + if (hasRank()) { + if (getRank() != other.getRank()) return false; + } + if (hasAdsOrganicRatio() != other.hasAdsOrganicRatio()) return false; + if (hasAdsOrganicRatio()) { + if (java.lang.Double.doubleToLongBits(getAdsOrganicRatio()) + != java.lang.Double.doubleToLongBits(other.getAdsOrganicRatio())) return false; + } + if (hasPageOverlapRate() != other.hasPageOverlapRate()) return false; + if (hasPageOverlapRate()) { + if (java.lang.Double.doubleToLongBits(getPageOverlapRate()) + != java.lang.Double.doubleToLongBits(other.getPageOverlapRate())) return false; + } + if (hasHigherPositionRate() != other.hasHigherPositionRate()) return false; + if (hasHigherPositionRate()) { + if (java.lang.Double.doubleToLongBits(getHigherPositionRate()) + != java.lang.Double.doubleToLongBits(other.getHigherPositionRate())) return false; + } + if (hasRelativeVisibility() != other.hasRelativeVisibility()) return false; + if (hasRelativeVisibility()) { + if (java.lang.Double.doubleToLongBits(getRelativeVisibility()) + != java.lang.Double.doubleToLongBits(other.getRelativeVisibility())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasDate()) { + hash = (37 * hash) + DATE_FIELD_NUMBER; + hash = (53 * hash) + getDate().hashCode(); + } + if (hasDomain()) { + hash = (37 * hash) + DOMAIN_FIELD_NUMBER; + hash = (53 * hash) + getDomain().hashCode(); + } + if (hasIsYourDomain()) { + hash = (37 * hash) + IS_YOUR_DOMAIN_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIsYourDomain()); + } + if (hasReportCountryCode()) { + hash = (37 * hash) + REPORT_COUNTRY_CODE_FIELD_NUMBER; + hash = (53 * hash) + getReportCountryCode().hashCode(); + } + if (hasReportCategoryId()) { + hash = (37 * hash) + REPORT_CATEGORY_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getReportCategoryId()); + } + if (hasTrafficSource()) { + hash = (37 * hash) + TRAFFIC_SOURCE_FIELD_NUMBER; + hash = (53 * hash) + trafficSource_; + } + if (hasRank()) { + hash = (37 * hash) + RANK_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getRank()); + } + if (hasAdsOrganicRatio()) { + hash = (37 * hash) + ADS_ORGANIC_RATIO_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getAdsOrganicRatio())); + } + if (hasPageOverlapRate()) { + hash = (37 * hash) + PAGE_OVERLAP_RATE_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getPageOverlapRate())); + } + if (hasHigherPositionRate()) { + hash = (37 * hash) + HIGHER_POSITION_RATE_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getHigherPositionRate())); + } + if (hasRelativeVisibility()) { + hash = (37 * hash) + RELATIVE_VISIBILITY_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getRelativeVisibility())); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView 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; + } + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_competitor_view` table.
+   *
+   * [Competitive
+   * visibility](https://support.google.com/merchants/answer/11366442) report with
+   * businesses with similar visibility.
+   *
+   * Values are only set for fields requested explicitly in the request's search
+   * query.
+   * 
+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView) + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorViewOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityCompetitorView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityCompetitorView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + .class, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + .Builder.class); + } + + // Construct using + // com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getDateFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + date_ = null; + if (dateBuilder_ != null) { + dateBuilder_.dispose(); + dateBuilder_ = null; + } + domain_ = ""; + isYourDomain_ = false; + reportCountryCode_ = ""; + reportCategoryId_ = 0L; + trafficSource_ = 0; + rank_ = 0L; + adsOrganicRatio_ = 0D; + pageOverlapRate_ = 0D; + higherPositionRate_ = 0D; + relativeVisibility_ = 0D; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityCompetitorView_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + build() { + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + buildPartial() { + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView result = + new com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView( + this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.date_ = dateBuilder_ == null ? date_ : dateBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.domain_ = domain_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.isYourDomain_ = isYourDomain_; + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.reportCountryCode_ = reportCountryCode_; + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.reportCategoryId_ = reportCategoryId_; + to_bitField0_ |= 0x00000010; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.trafficSource_ = trafficSource_; + to_bitField0_ |= 0x00000020; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.rank_ = rank_; + to_bitField0_ |= 0x00000040; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.adsOrganicRatio_ = adsOrganicRatio_; + to_bitField0_ |= 0x00000080; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.pageOverlapRate_ = pageOverlapRate_; + to_bitField0_ |= 0x00000100; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.higherPositionRate_ = higherPositionRate_; + to_bitField0_ |= 0x00000200; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.relativeVisibility_ = relativeVisibility_; + to_bitField0_ |= 0x00000400; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView) { + return mergeFrom( + (com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView) + other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + .getDefaultInstance()) return this; + if (other.hasDate()) { + mergeDate(other.getDate()); + } + if (other.hasDomain()) { + domain_ = other.domain_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.hasIsYourDomain()) { + setIsYourDomain(other.getIsYourDomain()); + } + if (other.hasReportCountryCode()) { + reportCountryCode_ = other.reportCountryCode_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (other.hasReportCategoryId()) { + setReportCategoryId(other.getReportCategoryId()); + } + if (other.hasTrafficSource()) { + setTrafficSource(other.getTrafficSource()); + } + if (other.hasRank()) { + setRank(other.getRank()); + } + if (other.hasAdsOrganicRatio()) { + setAdsOrganicRatio(other.getAdsOrganicRatio()); + } + if (other.hasPageOverlapRate()) { + setPageOverlapRate(other.getPageOverlapRate()); + } + if (other.hasHigherPositionRate()) { + setHigherPositionRate(other.getHigherPositionRate()); + } + if (other.hasRelativeVisibility()) { + setRelativeVisibility(other.getRelativeVisibility()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getDateFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + domain_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: + { + isYourDomain_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 34: + { + reportCountryCode_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 40: + { + reportCategoryId_ = input.readInt64(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 48: + { + trafficSource_ = input.readEnum(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 56: + { + rank_ = input.readInt64(); + bitField0_ |= 0x00000040; + break; + } // case 56 + case 65: + { + adsOrganicRatio_ = input.readDouble(); + bitField0_ |= 0x00000080; + break; + } // case 65 + case 73: + { + pageOverlapRate_ = input.readDouble(); + bitField0_ |= 0x00000100; + break; + } // case 73 + case 81: + { + higherPositionRate_ = input.readDouble(); + bitField0_ |= 0x00000200; + break; + } // case 81 + case 89: + { + relativeVisibility_ = input.readDouble(); + bitField0_ |= 0x00000400; + break; + } // case 89 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.type.Date date_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + dateBuilder_; + + /** + * + * + *
+     * Date of this row.
+     *
+     * A condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + public boolean hasDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * A condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + public com.google.type.Date getDate() { + if (dateBuilder_ == null) { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } else { + return dateBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * A condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder setDate(com.google.type.Date value) { + if (dateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + date_ = value; + } else { + dateBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * A condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder setDate(com.google.type.Date.Builder builderForValue) { + if (dateBuilder_ == null) { + date_ = builderForValue.build(); + } else { + dateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * A condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder mergeDate(com.google.type.Date value) { + if (dateBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && date_ != null + && date_ != com.google.type.Date.getDefaultInstance()) { + getDateBuilder().mergeFrom(value); + } else { + date_ = value; + } + } else { + dateBuilder_.mergeFrom(value); + } + if (date_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * A condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder clearDate() { + bitField0_ = (bitField0_ & ~0x00000001); + date_ = null; + if (dateBuilder_ != null) { + dateBuilder_.dispose(); + dateBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * A condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public com.google.type.Date.Builder getDateBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getDateFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * A condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public com.google.type.DateOrBuilder getDateOrBuilder() { + if (dateBuilder_ != null) { + return dateBuilder_.getMessageOrBuilder(); + } else { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * A condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + getDateFieldBuilder() { + if (dateBuilder_ == null) { + dateBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>( + getDate(), getParentForChildren(), isClean()); + date_ = null; + } + return dateBuilder_; + } + + private java.lang.Object domain_ = ""; + + /** + * + * + *
+     * Domain of your competitor or your domain, if 'is_your_domain' is true.
+     *
+     * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+     * clause.
+     * 
+ * + * optional string domain = 2; + * + * @return Whether the domain field is set. + */ + public boolean hasDomain() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Domain of your competitor or your domain, if 'is_your_domain' is true.
+     *
+     * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+     * clause.
+     * 
+ * + * optional string domain = 2; + * + * @return The domain. + */ + public java.lang.String getDomain() { + java.lang.Object ref = domain_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + domain_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Domain of your competitor or your domain, if 'is_your_domain' is true.
+     *
+     * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+     * clause.
+     * 
+ * + * optional string domain = 2; + * + * @return The bytes for domain. + */ + public com.google.protobuf.ByteString getDomainBytes() { + java.lang.Object ref = domain_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + domain_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Domain of your competitor or your domain, if 'is_your_domain' is true.
+     *
+     * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+     * clause.
+     * 
+ * + * optional string domain = 2; + * + * @param value The domain to set. + * @return This builder for chaining. + */ + public Builder setDomain(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + domain_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Domain of your competitor or your domain, if 'is_your_domain' is true.
+     *
+     * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+     * clause.
+     * 
+ * + * optional string domain = 2; + * + * @return This builder for chaining. + */ + public Builder clearDomain() { + domain_ = getDefaultInstance().getDomain(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Domain of your competitor or your domain, if 'is_your_domain' is true.
+     *
+     * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+     * clause.
+     * 
+ * + * optional string domain = 2; + * + * @param value The bytes for domain to set. + * @return This builder for chaining. + */ + public Builder setDomainBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + domain_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private boolean isYourDomain_; + + /** + * + * + *
+     * True if this row contains data for your domain.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional bool is_your_domain = 3; + * + * @return Whether the isYourDomain field is set. + */ + @java.lang.Override + public boolean hasIsYourDomain() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * True if this row contains data for your domain.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional bool is_your_domain = 3; + * + * @return The isYourDomain. + */ + @java.lang.Override + public boolean getIsYourDomain() { + return isYourDomain_; + } + + /** + * + * + *
+     * True if this row contains data for your domain.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional bool is_your_domain = 3; + * + * @param value The isYourDomain to set. + * @return This builder for chaining. + */ + public Builder setIsYourDomain(boolean value) { + + isYourDomain_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * True if this row contains data for your domain.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional bool is_your_domain = 3; + * + * @return This builder for chaining. + */ + public Builder clearIsYourDomain() { + bitField0_ = (bitField0_ & ~0x00000004); + isYourDomain_ = false; + onChanged(); + return this; + } + + private java.lang.Object reportCountryCode_ = ""; + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 4; + * + * @return Whether the reportCountryCode field is set. + */ + public boolean hasReportCountryCode() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 4; + * + * @return The reportCountryCode. + */ + public java.lang.String getReportCountryCode() { + java.lang.Object ref = reportCountryCode_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + reportCountryCode_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 4; + * + * @return The bytes for reportCountryCode. + */ + public com.google.protobuf.ByteString getReportCountryCodeBytes() { + java.lang.Object ref = reportCountryCode_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + reportCountryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 4; + * + * @param value The reportCountryCode to set. + * @return This builder for chaining. + */ + public Builder setReportCountryCode(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + reportCountryCode_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 4; + * + * @return This builder for chaining. + */ + public Builder clearReportCountryCode() { + reportCountryCode_ = getDefaultInstance().getReportCountryCode(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 4; + * + * @param value The bytes for reportCountryCode to set. + * @return This builder for chaining. + */ + public Builder setReportCountryCodeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + reportCountryCode_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private long reportCategoryId_; + + /** + * + * + *
+     * Google product category ID to calculate the report for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. A condition on `report_category_id` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional int64 report_category_id = 5; + * + * @return Whether the reportCategoryId field is set. + */ + @java.lang.Override + public boolean hasReportCategoryId() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * Google product category ID to calculate the report for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. A condition on `report_category_id` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional int64 report_category_id = 5; + * + * @return The reportCategoryId. + */ + @java.lang.Override + public long getReportCategoryId() { + return reportCategoryId_; + } + + /** + * + * + *
+     * Google product category ID to calculate the report for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. A condition on `report_category_id` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional int64 report_category_id = 5; + * + * @param value The reportCategoryId to set. + * @return This builder for chaining. + */ + public Builder setReportCategoryId(long value) { + + reportCategoryId_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Google product category ID to calculate the report for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. A condition on `report_category_id` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional int64 report_category_id = 5; + * + * @return This builder for chaining. + */ + public Builder clearReportCategoryId() { + bitField0_ = (bitField0_ & ~0x00000010); + reportCategoryId_ = 0L; + onChanged(); + return this; + } + + private int trafficSource_ = 0; + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return Whether the trafficSource field is set. + */ + @java.lang.Override + public boolean hasTrafficSource() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return The enum numeric value on the wire for trafficSource. + */ + @java.lang.Override + public int getTrafficSourceValue() { + return trafficSource_; + } + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @param value The enum numeric value on the wire for trafficSource to set. + * @return This builder for chaining. + */ + public Builder setTrafficSourceValue(int value) { + trafficSource_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return The trafficSource. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum + getTrafficSource() { + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum result = + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.forNumber( + trafficSource_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @param value The trafficSource to set. + * @return This builder for chaining. + */ + public Builder setTrafficSource( + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000020; + trafficSource_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return This builder for chaining. + */ + public Builder clearTrafficSource() { + bitField0_ = (bitField0_ & ~0x00000020); + trafficSource_ = 0; + onChanged(); + return this; + } + + private long rank_; + + /** + * + * + *
+     * Position of the domain in the similar businesses ranking for the selected
+     * keys (`date`, `report_category_id`, `report_country_code`,
+     * `traffic_source`) based on impressions. 1 is the highest.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional int64 rank = 7; + * + * @return Whether the rank field is set. + */ + @java.lang.Override + public boolean hasRank() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+     * Position of the domain in the similar businesses ranking for the selected
+     * keys (`date`, `report_category_id`, `report_country_code`,
+     * `traffic_source`) based on impressions. 1 is the highest.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional int64 rank = 7; + * + * @return The rank. + */ + @java.lang.Override + public long getRank() { + return rank_; + } + + /** + * + * + *
+     * Position of the domain in the similar businesses ranking for the selected
+     * keys (`date`, `report_category_id`, `report_country_code`,
+     * `traffic_source`) based on impressions. 1 is the highest.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional int64 rank = 7; + * + * @param value The rank to set. + * @return This builder for chaining. + */ + public Builder setRank(long value) { + + rank_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * Position of the domain in the similar businesses ranking for the selected
+     * keys (`date`, `report_category_id`, `report_country_code`,
+     * `traffic_source`) based on impressions. 1 is the highest.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional int64 rank = 7; + * + * @return This builder for chaining. + */ + public Builder clearRank() { + bitField0_ = (bitField0_ & ~0x00000040); + rank_ = 0L; + onChanged(); + return this; + } + + private double adsOrganicRatio_; + + /** + * + * + *
+     * [Ads / organic ratio]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+     * shows how often the domain receives impressions from Shopping ads compared
+     * to organic traffic. The number is rounded and bucketed.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double ads_organic_ratio = 8; + * + * @return Whether the adsOrganicRatio field is set. + */ + @java.lang.Override + public boolean hasAdsOrganicRatio() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+     * [Ads / organic ratio]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+     * shows how often the domain receives impressions from Shopping ads compared
+     * to organic traffic. The number is rounded and bucketed.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double ads_organic_ratio = 8; + * + * @return The adsOrganicRatio. + */ + @java.lang.Override + public double getAdsOrganicRatio() { + return adsOrganicRatio_; + } + + /** + * + * + *
+     * [Ads / organic ratio]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+     * shows how often the domain receives impressions from Shopping ads compared
+     * to organic traffic. The number is rounded and bucketed.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double ads_organic_ratio = 8; + * + * @param value The adsOrganicRatio to set. + * @return This builder for chaining. + */ + public Builder setAdsOrganicRatio(double value) { + + adsOrganicRatio_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Ads / organic ratio]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+     * shows how often the domain receives impressions from Shopping ads compared
+     * to organic traffic. The number is rounded and bucketed.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double ads_organic_ratio = 8; + * + * @return This builder for chaining. + */ + public Builder clearAdsOrganicRatio() { + bitField0_ = (bitField0_ & ~0x00000080); + adsOrganicRatio_ = 0D; + onChanged(); + return this; + } + + private double pageOverlapRate_; + + /** + * + * + *
+     * [Page overlap rate]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+     * shows how frequently competing retailers’ offers are shown together with
+     * your offers on the same page.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double page_overlap_rate = 9; + * + * @return Whether the pageOverlapRate field is set. + */ + @java.lang.Override + public boolean hasPageOverlapRate() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+     * [Page overlap rate]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+     * shows how frequently competing retailers’ offers are shown together with
+     * your offers on the same page.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double page_overlap_rate = 9; + * + * @return The pageOverlapRate. + */ + @java.lang.Override + public double getPageOverlapRate() { + return pageOverlapRate_; + } + + /** + * + * + *
+     * [Page overlap rate]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+     * shows how frequently competing retailers’ offers are shown together with
+     * your offers on the same page.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double page_overlap_rate = 9; + * + * @param value The pageOverlapRate to set. + * @return This builder for chaining. + */ + public Builder setPageOverlapRate(double value) { + + pageOverlapRate_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Page overlap rate]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+     * shows how frequently competing retailers’ offers are shown together with
+     * your offers on the same page.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double page_overlap_rate = 9; + * + * @return This builder for chaining. + */ + public Builder clearPageOverlapRate() { + bitField0_ = (bitField0_ & ~0x00000100); + pageOverlapRate_ = 0D; + onChanged(); + return this; + } + + private double higherPositionRate_; + + /** + * + * + *
+     * [Higher position rate]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+     * shows how often a competitor’s offer got placed in a higher position on the
+     * page than your offer.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double higher_position_rate = 10; + * + * @return Whether the higherPositionRate field is set. + */ + @java.lang.Override + public boolean hasHigherPositionRate() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+     * [Higher position rate]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+     * shows how often a competitor’s offer got placed in a higher position on the
+     * page than your offer.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double higher_position_rate = 10; + * + * @return The higherPositionRate. + */ + @java.lang.Override + public double getHigherPositionRate() { + return higherPositionRate_; + } + + /** + * + * + *
+     * [Higher position rate]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+     * shows how often a competitor’s offer got placed in a higher position on the
+     * page than your offer.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double higher_position_rate = 10; + * + * @param value The higherPositionRate to set. + * @return This builder for chaining. + */ + public Builder setHigherPositionRate(double value) { + + higherPositionRate_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Higher position rate]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+     * shows how often a competitor’s offer got placed in a higher position on the
+     * page than your offer.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double higher_position_rate = 10; + * + * @return This builder for chaining. + */ + public Builder clearHigherPositionRate() { + bitField0_ = (bitField0_ & ~0x00000200); + higherPositionRate_ = 0D; + onChanged(); + return this; + } + + private double relativeVisibility_; + + /** + * + * + *
+     * [Relative visibility]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility)
+     * shows how often your competitors’ offers are shown compared to your offers.
+     * In other words, this is the number of displayed impressions of a competitor
+     * retailer divided by the number of your displayed impressions during a
+     * selected time range for a selected product category and country.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double relative_visibility = 11; + * + * @return Whether the relativeVisibility field is set. + */ + @java.lang.Override + public boolean hasRelativeVisibility() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+     * [Relative visibility]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility)
+     * shows how often your competitors’ offers are shown compared to your offers.
+     * In other words, this is the number of displayed impressions of a competitor
+     * retailer divided by the number of your displayed impressions during a
+     * selected time range for a selected product category and country.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double relative_visibility = 11; + * + * @return The relativeVisibility. + */ + @java.lang.Override + public double getRelativeVisibility() { + return relativeVisibility_; + } + + /** + * + * + *
+     * [Relative visibility]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility)
+     * shows how often your competitors’ offers are shown compared to your offers.
+     * In other words, this is the number of displayed impressions of a competitor
+     * retailer divided by the number of your displayed impressions during a
+     * selected time range for a selected product category and country.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double relative_visibility = 11; + * + * @param value The relativeVisibility to set. + * @return This builder for chaining. + */ + public Builder setRelativeVisibility(double value) { + + relativeVisibility_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Relative visibility]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility)
+     * shows how often your competitors’ offers are shown compared to your offers.
+     * In other words, this is the number of displayed impressions of a competitor
+     * retailer divided by the number of your displayed impressions during a
+     * selected time range for a selected product category and country.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double relative_visibility = 11; + * + * @return This builder for chaining. + */ + public Builder clearRelativeVisibility() { + bitField0_ = (bitField0_ & ~0x00000400); + relativeVisibility_ = 0D; + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView) + private static final com.google.shopping.merchant.reports.v1alpha + .CompetitiveVisibilityCompetitorView + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView(); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CompetitiveVisibilityCompetitorView parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityCompetitorViewOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityCompetitorViewOrBuilder.java new file mode 100644 index 000000000000..4fd085e0ffcb --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityCompetitorViewOrBuilder.java @@ -0,0 +1,464 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface CompetitiveVisibilityCompetitorViewOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Date of this row.
+   *
+   * A condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + boolean hasDate(); + + /** + * + * + *
+   * Date of this row.
+   *
+   * A condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + com.google.type.Date getDate(); + + /** + * + * + *
+   * Date of this row.
+   *
+   * A condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + */ + com.google.type.DateOrBuilder getDateOrBuilder(); + + /** + * + * + *
+   * Domain of your competitor or your domain, if 'is_your_domain' is true.
+   *
+   * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+   * clause.
+   * 
+ * + * optional string domain = 2; + * + * @return Whether the domain field is set. + */ + boolean hasDomain(); + + /** + * + * + *
+   * Domain of your competitor or your domain, if 'is_your_domain' is true.
+   *
+   * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+   * clause.
+   * 
+ * + * optional string domain = 2; + * + * @return The domain. + */ + java.lang.String getDomain(); + + /** + * + * + *
+   * Domain of your competitor or your domain, if 'is_your_domain' is true.
+   *
+   * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+   * clause.
+   * 
+ * + * optional string domain = 2; + * + * @return The bytes for domain. + */ + com.google.protobuf.ByteString getDomainBytes(); + + /** + * + * + *
+   * True if this row contains data for your domain.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional bool is_your_domain = 3; + * + * @return Whether the isYourDomain field is set. + */ + boolean hasIsYourDomain(); + + /** + * + * + *
+   * True if this row contains data for your domain.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional bool is_your_domain = 3; + * + * @return The isYourDomain. + */ + boolean getIsYourDomain(); + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 4; + * + * @return Whether the reportCountryCode field is set. + */ + boolean hasReportCountryCode(); + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 4; + * + * @return The reportCountryCode. + */ + java.lang.String getReportCountryCode(); + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 4; + * + * @return The bytes for reportCountryCode. + */ + com.google.protobuf.ByteString getReportCountryCodeBytes(); + + /** + * + * + *
+   * Google product category ID to calculate the report for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. A condition on `report_category_id` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional int64 report_category_id = 5; + * + * @return Whether the reportCategoryId field is set. + */ + boolean hasReportCategoryId(); + + /** + * + * + *
+   * Google product category ID to calculate the report for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. A condition on `report_category_id` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional int64 report_category_id = 5; + * + * @return The reportCategoryId. + */ + long getReportCategoryId(); + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return Whether the trafficSource field is set. + */ + boolean hasTrafficSource(); + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return The enum numeric value on the wire for trafficSource. + */ + int getTrafficSourceValue(); + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return The trafficSource. + */ + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum getTrafficSource(); + + /** + * + * + *
+   * Position of the domain in the similar businesses ranking for the selected
+   * keys (`date`, `report_category_id`, `report_country_code`,
+   * `traffic_source`) based on impressions. 1 is the highest.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional int64 rank = 7; + * + * @return Whether the rank field is set. + */ + boolean hasRank(); + + /** + * + * + *
+   * Position of the domain in the similar businesses ranking for the selected
+   * keys (`date`, `report_category_id`, `report_country_code`,
+   * `traffic_source`) based on impressions. 1 is the highest.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional int64 rank = 7; + * + * @return The rank. + */ + long getRank(); + + /** + * + * + *
+   * [Ads / organic ratio]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+   * shows how often the domain receives impressions from Shopping ads compared
+   * to organic traffic. The number is rounded and bucketed.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double ads_organic_ratio = 8; + * + * @return Whether the adsOrganicRatio field is set. + */ + boolean hasAdsOrganicRatio(); + + /** + * + * + *
+   * [Ads / organic ratio]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+   * shows how often the domain receives impressions from Shopping ads compared
+   * to organic traffic. The number is rounded and bucketed.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double ads_organic_ratio = 8; + * + * @return The adsOrganicRatio. + */ + double getAdsOrganicRatio(); + + /** + * + * + *
+   * [Page overlap rate]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+   * shows how frequently competing retailers’ offers are shown together with
+   * your offers on the same page.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double page_overlap_rate = 9; + * + * @return Whether the pageOverlapRate field is set. + */ + boolean hasPageOverlapRate(); + + /** + * + * + *
+   * [Page overlap rate]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+   * shows how frequently competing retailers’ offers are shown together with
+   * your offers on the same page.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double page_overlap_rate = 9; + * + * @return The pageOverlapRate. + */ + double getPageOverlapRate(); + + /** + * + * + *
+   * [Higher position rate]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+   * shows how often a competitor’s offer got placed in a higher position on the
+   * page than your offer.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double higher_position_rate = 10; + * + * @return Whether the higherPositionRate field is set. + */ + boolean hasHigherPositionRate(); + + /** + * + * + *
+   * [Higher position rate]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+   * shows how often a competitor’s offer got placed in a higher position on the
+   * page than your offer.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double higher_position_rate = 10; + * + * @return The higherPositionRate. + */ + double getHigherPositionRate(); + + /** + * + * + *
+   * [Relative visibility]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility)
+   * shows how often your competitors’ offers are shown compared to your offers.
+   * In other words, this is the number of displayed impressions of a competitor
+   * retailer divided by the number of your displayed impressions during a
+   * selected time range for a selected product category and country.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double relative_visibility = 11; + * + * @return Whether the relativeVisibility field is set. + */ + boolean hasRelativeVisibility(); + + /** + * + * + *
+   * [Relative visibility]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility)
+   * shows how often your competitors’ offers are shown compared to your offers.
+   * In other words, this is the number of displayed impressions of a competitor
+   * retailer divided by the number of your displayed impressions during a
+   * selected time range for a selected product category and country.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double relative_visibility = 11; + * + * @return The relativeVisibility. + */ + double getRelativeVisibility(); +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityTopMerchantView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityTopMerchantView.java new file mode 100644 index 000000000000..cdc5aede265c --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityTopMerchantView.java @@ -0,0 +1,2532 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Fields available for query in `competitive_visibility_top_merchant_view`
+ * table.
+ *
+ * [Competitive
+ * visibility](https://support.google.com/merchants/answer/11366442) report with
+ * business with highest visibility.
+ *
+ * Values are only set for fields requested explicitly in the request's search
+ * query.
+ * 
+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView} + */ +public final class CompetitiveVisibilityTopMerchantView + extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView) + CompetitiveVisibilityTopMerchantViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use CompetitiveVisibilityTopMerchantView.newBuilder() to construct. + private CompetitiveVisibilityTopMerchantView( + com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private CompetitiveVisibilityTopMerchantView() { + domain_ = ""; + reportCountryCode_ = ""; + trafficSource_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new CompetitiveVisibilityTopMerchantView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityTopMerchantView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityTopMerchantView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView.class, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + .Builder.class); + } + + private int bitField0_; + public static final int DATE_FIELD_NUMBER = 1; + private com.google.type.Date date_; + + /** + * + * + *
+   * Date of this row.
+   *
+   * Cannot be selected in the `SELECT` clause. A condition on `date` is
+   * required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + @java.lang.Override + public boolean hasDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Date of this row.
+   *
+   * Cannot be selected in the `SELECT` clause. A condition on `date` is
+   * required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + @java.lang.Override + public com.google.type.Date getDate() { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + + /** + * + * + *
+   * Date of this row.
+   *
+   * Cannot be selected in the `SELECT` clause. A condition on `date` is
+   * required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + */ + @java.lang.Override + public com.google.type.DateOrBuilder getDateOrBuilder() { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + + public static final int DOMAIN_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object domain_ = ""; + + /** + * + * + *
+   * Domain of your competitor or your domain, if 'is_your_domain' is true.
+   *
+   * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+   * clause.
+   * 
+ * + * optional string domain = 2; + * + * @return Whether the domain field is set. + */ + @java.lang.Override + public boolean hasDomain() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Domain of your competitor or your domain, if 'is_your_domain' is true.
+   *
+   * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+   * clause.
+   * 
+ * + * optional string domain = 2; + * + * @return The domain. + */ + @java.lang.Override + public java.lang.String getDomain() { + java.lang.Object ref = domain_; + 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(); + domain_ = s; + return s; + } + } + + /** + * + * + *
+   * Domain of your competitor or your domain, if 'is_your_domain' is true.
+   *
+   * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+   * clause.
+   * 
+ * + * optional string domain = 2; + * + * @return The bytes for domain. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDomainBytes() { + java.lang.Object ref = domain_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + domain_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int IS_YOUR_DOMAIN_FIELD_NUMBER = 3; + private boolean isYourDomain_ = false; + + /** + * + * + *
+   * True if this row contains data for your domain.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional bool is_your_domain = 3; + * + * @return Whether the isYourDomain field is set. + */ + @java.lang.Override + public boolean hasIsYourDomain() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * True if this row contains data for your domain.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional bool is_your_domain = 3; + * + * @return The isYourDomain. + */ + @java.lang.Override + public boolean getIsYourDomain() { + return isYourDomain_; + } + + public static final int REPORT_COUNTRY_CODE_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object reportCountryCode_ = ""; + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 4; + * + * @return Whether the reportCountryCode field is set. + */ + @java.lang.Override + public boolean hasReportCountryCode() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 4; + * + * @return The reportCountryCode. + */ + @java.lang.Override + public java.lang.String getReportCountryCode() { + java.lang.Object ref = reportCountryCode_; + 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(); + reportCountryCode_ = s; + return s; + } + } + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 4; + * + * @return The bytes for reportCountryCode. + */ + @java.lang.Override + public com.google.protobuf.ByteString getReportCountryCodeBytes() { + java.lang.Object ref = reportCountryCode_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + reportCountryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int REPORT_CATEGORY_ID_FIELD_NUMBER = 5; + private long reportCategoryId_ = 0L; + + /** + * + * + *
+   * Google product category ID to calculate the report for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. A condition on `report_category_id` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional int64 report_category_id = 5; + * + * @return Whether the reportCategoryId field is set. + */ + @java.lang.Override + public boolean hasReportCategoryId() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * Google product category ID to calculate the report for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. A condition on `report_category_id` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional int64 report_category_id = 5; + * + * @return The reportCategoryId. + */ + @java.lang.Override + public long getReportCategoryId() { + return reportCategoryId_; + } + + public static final int TRAFFIC_SOURCE_FIELD_NUMBER = 6; + private int trafficSource_ = 0; + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return Whether the trafficSource field is set. + */ + @java.lang.Override + public boolean hasTrafficSource() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return The enum numeric value on the wire for trafficSource. + */ + @java.lang.Override + public int getTrafficSourceValue() { + return trafficSource_; + } + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return The trafficSource. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum + getTrafficSource() { + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum result = + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.forNumber( + trafficSource_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.UNRECOGNIZED + : result; + } + + public static final int RANK_FIELD_NUMBER = 7; + private long rank_ = 0L; + + /** + * + * + *
+   * Position of the domain in the top merchants ranking for the selected keys
+   * (`date`, `report_category_id`, `report_country_code`, `traffic_source`)
+   * based on impressions. 1 is the highest.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional int64 rank = 7; + * + * @return Whether the rank field is set. + */ + @java.lang.Override + public boolean hasRank() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+   * Position of the domain in the top merchants ranking for the selected keys
+   * (`date`, `report_category_id`, `report_country_code`, `traffic_source`)
+   * based on impressions. 1 is the highest.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional int64 rank = 7; + * + * @return The rank. + */ + @java.lang.Override + public long getRank() { + return rank_; + } + + public static final int ADS_ORGANIC_RATIO_FIELD_NUMBER = 8; + private double adsOrganicRatio_ = 0D; + + /** + * + * + *
+   * [Ads / organic ratio]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+   * shows how often the domain receives impressions from Shopping ads compared
+   * to organic traffic. The number is rounded and bucketed.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double ads_organic_ratio = 8; + * + * @return Whether the adsOrganicRatio field is set. + */ + @java.lang.Override + public boolean hasAdsOrganicRatio() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+   * [Ads / organic ratio]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+   * shows how often the domain receives impressions from Shopping ads compared
+   * to organic traffic. The number is rounded and bucketed.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double ads_organic_ratio = 8; + * + * @return The adsOrganicRatio. + */ + @java.lang.Override + public double getAdsOrganicRatio() { + return adsOrganicRatio_; + } + + public static final int PAGE_OVERLAP_RATE_FIELD_NUMBER = 9; + private double pageOverlapRate_ = 0D; + + /** + * + * + *
+   * [Page overlap rate]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+   * shows how frequently competing retailers’ offers are shown together with
+   * your offers on the same page.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double page_overlap_rate = 9; + * + * @return Whether the pageOverlapRate field is set. + */ + @java.lang.Override + public boolean hasPageOverlapRate() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+   * [Page overlap rate]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+   * shows how frequently competing retailers’ offers are shown together with
+   * your offers on the same page.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double page_overlap_rate = 9; + * + * @return The pageOverlapRate. + */ + @java.lang.Override + public double getPageOverlapRate() { + return pageOverlapRate_; + } + + public static final int HIGHER_POSITION_RATE_FIELD_NUMBER = 10; + private double higherPositionRate_ = 0D; + + /** + * + * + *
+   * [Higher position rate]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+   * shows how often a competitor’s offer got placed in a higher position on the
+   * page than your offer.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double higher_position_rate = 10; + * + * @return Whether the higherPositionRate field is set. + */ + @java.lang.Override + public boolean hasHigherPositionRate() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+   * [Higher position rate]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+   * shows how often a competitor’s offer got placed in a higher position on the
+   * page than your offer.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double higher_position_rate = 10; + * + * @return The higherPositionRate. + */ + @java.lang.Override + public double getHigherPositionRate() { + return higherPositionRate_; + } + + 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 (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, domain_); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeBool(3, isYourDomain_); + } + if (((bitField0_ & 0x00000008) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, reportCountryCode_); + } + if (((bitField0_ & 0x00000010) != 0)) { + output.writeInt64(5, reportCategoryId_); + } + if (((bitField0_ & 0x00000020) != 0)) { + output.writeEnum(6, trafficSource_); + } + if (((bitField0_ & 0x00000040) != 0)) { + output.writeInt64(7, rank_); + } + if (((bitField0_ & 0x00000080) != 0)) { + output.writeDouble(8, adsOrganicRatio_); + } + if (((bitField0_ & 0x00000100) != 0)) { + output.writeDouble(9, pageOverlapRate_); + } + if (((bitField0_ & 0x00000200) != 0)) { + output.writeDouble(10, higherPositionRate_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, domain_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, isYourDomain_); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, reportCountryCode_); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(5, reportCategoryId_); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(6, trafficSource_); + } + if (((bitField0_ & 0x00000040) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(7, rank_); + } + if (((bitField0_ & 0x00000080) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(8, adsOrganicRatio_); + } + if (((bitField0_ & 0x00000100) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(9, pageOverlapRate_); + } + if (((bitField0_ & 0x00000200) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(10, higherPositionRate_); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView other = + (com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView) obj; + + if (hasDate() != other.hasDate()) return false; + if (hasDate()) { + if (!getDate().equals(other.getDate())) return false; + } + if (hasDomain() != other.hasDomain()) return false; + if (hasDomain()) { + if (!getDomain().equals(other.getDomain())) return false; + } + if (hasIsYourDomain() != other.hasIsYourDomain()) return false; + if (hasIsYourDomain()) { + if (getIsYourDomain() != other.getIsYourDomain()) return false; + } + if (hasReportCountryCode() != other.hasReportCountryCode()) return false; + if (hasReportCountryCode()) { + if (!getReportCountryCode().equals(other.getReportCountryCode())) return false; + } + if (hasReportCategoryId() != other.hasReportCategoryId()) return false; + if (hasReportCategoryId()) { + if (getReportCategoryId() != other.getReportCategoryId()) return false; + } + if (hasTrafficSource() != other.hasTrafficSource()) return false; + if (hasTrafficSource()) { + if (trafficSource_ != other.trafficSource_) return false; + } + if (hasRank() != other.hasRank()) return false; + if (hasRank()) { + if (getRank() != other.getRank()) return false; + } + if (hasAdsOrganicRatio() != other.hasAdsOrganicRatio()) return false; + if (hasAdsOrganicRatio()) { + if (java.lang.Double.doubleToLongBits(getAdsOrganicRatio()) + != java.lang.Double.doubleToLongBits(other.getAdsOrganicRatio())) return false; + } + if (hasPageOverlapRate() != other.hasPageOverlapRate()) return false; + if (hasPageOverlapRate()) { + if (java.lang.Double.doubleToLongBits(getPageOverlapRate()) + != java.lang.Double.doubleToLongBits(other.getPageOverlapRate())) return false; + } + if (hasHigherPositionRate() != other.hasHigherPositionRate()) return false; + if (hasHigherPositionRate()) { + if (java.lang.Double.doubleToLongBits(getHigherPositionRate()) + != java.lang.Double.doubleToLongBits(other.getHigherPositionRate())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasDate()) { + hash = (37 * hash) + DATE_FIELD_NUMBER; + hash = (53 * hash) + getDate().hashCode(); + } + if (hasDomain()) { + hash = (37 * hash) + DOMAIN_FIELD_NUMBER; + hash = (53 * hash) + getDomain().hashCode(); + } + if (hasIsYourDomain()) { + hash = (37 * hash) + IS_YOUR_DOMAIN_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIsYourDomain()); + } + if (hasReportCountryCode()) { + hash = (37 * hash) + REPORT_COUNTRY_CODE_FIELD_NUMBER; + hash = (53 * hash) + getReportCountryCode().hashCode(); + } + if (hasReportCategoryId()) { + hash = (37 * hash) + REPORT_CATEGORY_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getReportCategoryId()); + } + if (hasTrafficSource()) { + hash = (37 * hash) + TRAFFIC_SOURCE_FIELD_NUMBER; + hash = (53 * hash) + trafficSource_; + } + if (hasRank()) { + hash = (37 * hash) + RANK_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getRank()); + } + if (hasAdsOrganicRatio()) { + hash = (37 * hash) + ADS_ORGANIC_RATIO_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getAdsOrganicRatio())); + } + if (hasPageOverlapRate()) { + hash = (37 * hash) + PAGE_OVERLAP_RATE_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getPageOverlapRate())); + } + if (hasHigherPositionRate()) { + hash = (37 * hash) + HIGHER_POSITION_RATE_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getHigherPositionRate())); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView 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; + } + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_top_merchant_view`
+   * table.
+   *
+   * [Competitive
+   * visibility](https://support.google.com/merchants/answer/11366442) report with
+   * business with highest visibility.
+   *
+   * Values are only set for fields requested explicitly in the request's search
+   * query.
+   * 
+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView) + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantViewOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityTopMerchantView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityTopMerchantView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + .class, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + .Builder.class); + } + + // Construct using + // com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getDateFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + date_ = null; + if (dateBuilder_ != null) { + dateBuilder_.dispose(); + dateBuilder_ = null; + } + domain_ = ""; + isYourDomain_ = false; + reportCountryCode_ = ""; + reportCategoryId_ = 0L; + trafficSource_ = 0; + rank_ = 0L; + adsOrganicRatio_ = 0D; + pageOverlapRate_ = 0D; + higherPositionRate_ = 0D; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityTopMerchantView_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + build() { + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + buildPartial() { + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView result = + new com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView( + this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.date_ = dateBuilder_ == null ? date_ : dateBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.domain_ = domain_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.isYourDomain_ = isYourDomain_; + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.reportCountryCode_ = reportCountryCode_; + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.reportCategoryId_ = reportCategoryId_; + to_bitField0_ |= 0x00000010; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.trafficSource_ = trafficSource_; + to_bitField0_ |= 0x00000020; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.rank_ = rank_; + to_bitField0_ |= 0x00000040; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.adsOrganicRatio_ = adsOrganicRatio_; + to_bitField0_ |= 0x00000080; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.pageOverlapRate_ = pageOverlapRate_; + to_bitField0_ |= 0x00000100; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.higherPositionRate_ = higherPositionRate_; + to_bitField0_ |= 0x00000200; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView) { + return mergeFrom( + (com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView) + other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + .getDefaultInstance()) return this; + if (other.hasDate()) { + mergeDate(other.getDate()); + } + if (other.hasDomain()) { + domain_ = other.domain_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.hasIsYourDomain()) { + setIsYourDomain(other.getIsYourDomain()); + } + if (other.hasReportCountryCode()) { + reportCountryCode_ = other.reportCountryCode_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (other.hasReportCategoryId()) { + setReportCategoryId(other.getReportCategoryId()); + } + if (other.hasTrafficSource()) { + setTrafficSource(other.getTrafficSource()); + } + if (other.hasRank()) { + setRank(other.getRank()); + } + if (other.hasAdsOrganicRatio()) { + setAdsOrganicRatio(other.getAdsOrganicRatio()); + } + if (other.hasPageOverlapRate()) { + setPageOverlapRate(other.getPageOverlapRate()); + } + if (other.hasHigherPositionRate()) { + setHigherPositionRate(other.getHigherPositionRate()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getDateFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + domain_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: + { + isYourDomain_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 34: + { + reportCountryCode_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 40: + { + reportCategoryId_ = input.readInt64(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 48: + { + trafficSource_ = input.readEnum(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 56: + { + rank_ = input.readInt64(); + bitField0_ |= 0x00000040; + break; + } // case 56 + case 65: + { + adsOrganicRatio_ = input.readDouble(); + bitField0_ |= 0x00000080; + break; + } // case 65 + case 73: + { + pageOverlapRate_ = input.readDouble(); + bitField0_ |= 0x00000100; + break; + } // case 73 + case 81: + { + higherPositionRate_ = input.readDouble(); + bitField0_ |= 0x00000200; + break; + } // case 81 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.type.Date date_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + dateBuilder_; + + /** + * + * + *
+     * Date of this row.
+     *
+     * Cannot be selected in the `SELECT` clause. A condition on `date` is
+     * required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + public boolean hasDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * Cannot be selected in the `SELECT` clause. A condition on `date` is
+     * required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + public com.google.type.Date getDate() { + if (dateBuilder_ == null) { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } else { + return dateBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * Cannot be selected in the `SELECT` clause. A condition on `date` is
+     * required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder setDate(com.google.type.Date value) { + if (dateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + date_ = value; + } else { + dateBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * Cannot be selected in the `SELECT` clause. A condition on `date` is
+     * required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder setDate(com.google.type.Date.Builder builderForValue) { + if (dateBuilder_ == null) { + date_ = builderForValue.build(); + } else { + dateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * Cannot be selected in the `SELECT` clause. A condition on `date` is
+     * required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder mergeDate(com.google.type.Date value) { + if (dateBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && date_ != null + && date_ != com.google.type.Date.getDefaultInstance()) { + getDateBuilder().mergeFrom(value); + } else { + date_ = value; + } + } else { + dateBuilder_.mergeFrom(value); + } + if (date_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * Cannot be selected in the `SELECT` clause. A condition on `date` is
+     * required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder clearDate() { + bitField0_ = (bitField0_ & ~0x00000001); + date_ = null; + if (dateBuilder_ != null) { + dateBuilder_.dispose(); + dateBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * Cannot be selected in the `SELECT` clause. A condition on `date` is
+     * required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public com.google.type.Date.Builder getDateBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getDateFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * Cannot be selected in the `SELECT` clause. A condition on `date` is
+     * required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public com.google.type.DateOrBuilder getDateOrBuilder() { + if (dateBuilder_ != null) { + return dateBuilder_.getMessageOrBuilder(); + } else { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + } + + /** + * + * + *
+     * Date of this row.
+     *
+     * Cannot be selected in the `SELECT` clause. A condition on `date` is
+     * required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + getDateFieldBuilder() { + if (dateBuilder_ == null) { + dateBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>( + getDate(), getParentForChildren(), isClean()); + date_ = null; + } + return dateBuilder_; + } + + private java.lang.Object domain_ = ""; + + /** + * + * + *
+     * Domain of your competitor or your domain, if 'is_your_domain' is true.
+     *
+     * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+     * clause.
+     * 
+ * + * optional string domain = 2; + * + * @return Whether the domain field is set. + */ + public boolean hasDomain() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Domain of your competitor or your domain, if 'is_your_domain' is true.
+     *
+     * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+     * clause.
+     * 
+ * + * optional string domain = 2; + * + * @return The domain. + */ + public java.lang.String getDomain() { + java.lang.Object ref = domain_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + domain_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Domain of your competitor or your domain, if 'is_your_domain' is true.
+     *
+     * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+     * clause.
+     * 
+ * + * optional string domain = 2; + * + * @return The bytes for domain. + */ + public com.google.protobuf.ByteString getDomainBytes() { + java.lang.Object ref = domain_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + domain_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Domain of your competitor or your domain, if 'is_your_domain' is true.
+     *
+     * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+     * clause.
+     * 
+ * + * optional string domain = 2; + * + * @param value The domain to set. + * @return This builder for chaining. + */ + public Builder setDomain(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + domain_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Domain of your competitor or your domain, if 'is_your_domain' is true.
+     *
+     * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+     * clause.
+     * 
+ * + * optional string domain = 2; + * + * @return This builder for chaining. + */ + public Builder clearDomain() { + domain_ = getDefaultInstance().getDomain(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Domain of your competitor or your domain, if 'is_your_domain' is true.
+     *
+     * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+     * clause.
+     * 
+ * + * optional string domain = 2; + * + * @param value The bytes for domain to set. + * @return This builder for chaining. + */ + public Builder setDomainBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + domain_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private boolean isYourDomain_; + + /** + * + * + *
+     * True if this row contains data for your domain.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional bool is_your_domain = 3; + * + * @return Whether the isYourDomain field is set. + */ + @java.lang.Override + public boolean hasIsYourDomain() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * True if this row contains data for your domain.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional bool is_your_domain = 3; + * + * @return The isYourDomain. + */ + @java.lang.Override + public boolean getIsYourDomain() { + return isYourDomain_; + } + + /** + * + * + *
+     * True if this row contains data for your domain.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional bool is_your_domain = 3; + * + * @param value The isYourDomain to set. + * @return This builder for chaining. + */ + public Builder setIsYourDomain(boolean value) { + + isYourDomain_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * True if this row contains data for your domain.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional bool is_your_domain = 3; + * + * @return This builder for chaining. + */ + public Builder clearIsYourDomain() { + bitField0_ = (bitField0_ & ~0x00000004); + isYourDomain_ = false; + onChanged(); + return this; + } + + private java.lang.Object reportCountryCode_ = ""; + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 4; + * + * @return Whether the reportCountryCode field is set. + */ + public boolean hasReportCountryCode() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 4; + * + * @return The reportCountryCode. + */ + public java.lang.String getReportCountryCode() { + java.lang.Object ref = reportCountryCode_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + reportCountryCode_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 4; + * + * @return The bytes for reportCountryCode. + */ + public com.google.protobuf.ByteString getReportCountryCodeBytes() { + java.lang.Object ref = reportCountryCode_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + reportCountryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 4; + * + * @param value The reportCountryCode to set. + * @return This builder for chaining. + */ + public Builder setReportCountryCode(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + reportCountryCode_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 4; + * + * @return This builder for chaining. + */ + public Builder clearReportCountryCode() { + reportCountryCode_ = getDefaultInstance().getReportCountryCode(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+     * Country where impressions appeared.
+     *
+     * Required in the `SELECT` clause. A condition on `report_country_code` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional string report_country_code = 4; + * + * @param value The bytes for reportCountryCode to set. + * @return This builder for chaining. + */ + public Builder setReportCountryCodeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + reportCountryCode_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private long reportCategoryId_; + + /** + * + * + *
+     * Google product category ID to calculate the report for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. A condition on `report_category_id` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional int64 report_category_id = 5; + * + * @return Whether the reportCategoryId field is set. + */ + @java.lang.Override + public boolean hasReportCategoryId() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * Google product category ID to calculate the report for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. A condition on `report_category_id` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional int64 report_category_id = 5; + * + * @return The reportCategoryId. + */ + @java.lang.Override + public long getReportCategoryId() { + return reportCategoryId_; + } + + /** + * + * + *
+     * Google product category ID to calculate the report for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. A condition on `report_category_id` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional int64 report_category_id = 5; + * + * @param value The reportCategoryId to set. + * @return This builder for chaining. + */ + public Builder setReportCategoryId(long value) { + + reportCategoryId_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Google product category ID to calculate the report for, represented in
+     * [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     *
+     * Required in the `SELECT` clause. A condition on `report_category_id` is
+     * required in the `WHERE` clause.
+     * 
+ * + * optional int64 report_category_id = 5; + * + * @return This builder for chaining. + */ + public Builder clearReportCategoryId() { + bitField0_ = (bitField0_ & ~0x00000010); + reportCategoryId_ = 0L; + onChanged(); + return this; + } + + private int trafficSource_ = 0; + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return Whether the trafficSource field is set. + */ + @java.lang.Override + public boolean hasTrafficSource() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return The enum numeric value on the wire for trafficSource. + */ + @java.lang.Override + public int getTrafficSourceValue() { + return trafficSource_; + } + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @param value The enum numeric value on the wire for trafficSource to set. + * @return This builder for chaining. + */ + public Builder setTrafficSourceValue(int value) { + trafficSource_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return The trafficSource. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum + getTrafficSource() { + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum result = + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.forNumber( + trafficSource_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @param value The trafficSource to set. + * @return This builder for chaining. + */ + public Builder setTrafficSource( + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000020; + trafficSource_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Traffic source of impressions.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return This builder for chaining. + */ + public Builder clearTrafficSource() { + bitField0_ = (bitField0_ & ~0x00000020); + trafficSource_ = 0; + onChanged(); + return this; + } + + private long rank_; + + /** + * + * + *
+     * Position of the domain in the top merchants ranking for the selected keys
+     * (`date`, `report_category_id`, `report_country_code`, `traffic_source`)
+     * based on impressions. 1 is the highest.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional int64 rank = 7; + * + * @return Whether the rank field is set. + */ + @java.lang.Override + public boolean hasRank() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+     * Position of the domain in the top merchants ranking for the selected keys
+     * (`date`, `report_category_id`, `report_country_code`, `traffic_source`)
+     * based on impressions. 1 is the highest.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional int64 rank = 7; + * + * @return The rank. + */ + @java.lang.Override + public long getRank() { + return rank_; + } + + /** + * + * + *
+     * Position of the domain in the top merchants ranking for the selected keys
+     * (`date`, `report_category_id`, `report_country_code`, `traffic_source`)
+     * based on impressions. 1 is the highest.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional int64 rank = 7; + * + * @param value The rank to set. + * @return This builder for chaining. + */ + public Builder setRank(long value) { + + rank_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * Position of the domain in the top merchants ranking for the selected keys
+     * (`date`, `report_category_id`, `report_country_code`, `traffic_source`)
+     * based on impressions. 1 is the highest.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional int64 rank = 7; + * + * @return This builder for chaining. + */ + public Builder clearRank() { + bitField0_ = (bitField0_ & ~0x00000040); + rank_ = 0L; + onChanged(); + return this; + } + + private double adsOrganicRatio_; + + /** + * + * + *
+     * [Ads / organic ratio]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+     * shows how often the domain receives impressions from Shopping ads compared
+     * to organic traffic. The number is rounded and bucketed.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double ads_organic_ratio = 8; + * + * @return Whether the adsOrganicRatio field is set. + */ + @java.lang.Override + public boolean hasAdsOrganicRatio() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+     * [Ads / organic ratio]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+     * shows how often the domain receives impressions from Shopping ads compared
+     * to organic traffic. The number is rounded and bucketed.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double ads_organic_ratio = 8; + * + * @return The adsOrganicRatio. + */ + @java.lang.Override + public double getAdsOrganicRatio() { + return adsOrganicRatio_; + } + + /** + * + * + *
+     * [Ads / organic ratio]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+     * shows how often the domain receives impressions from Shopping ads compared
+     * to organic traffic. The number is rounded and bucketed.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double ads_organic_ratio = 8; + * + * @param value The adsOrganicRatio to set. + * @return This builder for chaining. + */ + public Builder setAdsOrganicRatio(double value) { + + adsOrganicRatio_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Ads / organic ratio]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+     * shows how often the domain receives impressions from Shopping ads compared
+     * to organic traffic. The number is rounded and bucketed.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double ads_organic_ratio = 8; + * + * @return This builder for chaining. + */ + public Builder clearAdsOrganicRatio() { + bitField0_ = (bitField0_ & ~0x00000080); + adsOrganicRatio_ = 0D; + onChanged(); + return this; + } + + private double pageOverlapRate_; + + /** + * + * + *
+     * [Page overlap rate]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+     * shows how frequently competing retailers’ offers are shown together with
+     * your offers on the same page.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double page_overlap_rate = 9; + * + * @return Whether the pageOverlapRate field is set. + */ + @java.lang.Override + public boolean hasPageOverlapRate() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+     * [Page overlap rate]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+     * shows how frequently competing retailers’ offers are shown together with
+     * your offers on the same page.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double page_overlap_rate = 9; + * + * @return The pageOverlapRate. + */ + @java.lang.Override + public double getPageOverlapRate() { + return pageOverlapRate_; + } + + /** + * + * + *
+     * [Page overlap rate]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+     * shows how frequently competing retailers’ offers are shown together with
+     * your offers on the same page.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double page_overlap_rate = 9; + * + * @param value The pageOverlapRate to set. + * @return This builder for chaining. + */ + public Builder setPageOverlapRate(double value) { + + pageOverlapRate_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Page overlap rate]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+     * shows how frequently competing retailers’ offers are shown together with
+     * your offers on the same page.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double page_overlap_rate = 9; + * + * @return This builder for chaining. + */ + public Builder clearPageOverlapRate() { + bitField0_ = (bitField0_ & ~0x00000100); + pageOverlapRate_ = 0D; + onChanged(); + return this; + } + + private double higherPositionRate_; + + /** + * + * + *
+     * [Higher position rate]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+     * shows how often a competitor’s offer got placed in a higher position on the
+     * page than your offer.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double higher_position_rate = 10; + * + * @return Whether the higherPositionRate field is set. + */ + @java.lang.Override + public boolean hasHigherPositionRate() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+     * [Higher position rate]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+     * shows how often a competitor’s offer got placed in a higher position on the
+     * page than your offer.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double higher_position_rate = 10; + * + * @return The higherPositionRate. + */ + @java.lang.Override + public double getHigherPositionRate() { + return higherPositionRate_; + } + + /** + * + * + *
+     * [Higher position rate]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+     * shows how often a competitor’s offer got placed in a higher position on the
+     * page than your offer.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double higher_position_rate = 10; + * + * @param value The higherPositionRate to set. + * @return This builder for chaining. + */ + public Builder setHigherPositionRate(double value) { + + higherPositionRate_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Higher position rate]
+     * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+     * shows how often a competitor’s offer got placed in a higher position on the
+     * page than your offer.
+     *
+     * Cannot be filtered on in the 'WHERE' clause.
+     * 
+ * + * optional double higher_position_rate = 10; + * + * @return This builder for chaining. + */ + public Builder clearHigherPositionRate() { + bitField0_ = (bitField0_ & ~0x00000200); + higherPositionRate_ = 0D; + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView) + private static final com.google.shopping.merchant.reports.v1alpha + .CompetitiveVisibilityTopMerchantView + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView(); + } + + public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CompetitiveVisibilityTopMerchantView parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityTopMerchantViewOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityTopMerchantViewOrBuilder.java new file mode 100644 index 000000000000..5b7fb0ee27e8 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityTopMerchantViewOrBuilder.java @@ -0,0 +1,427 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface CompetitiveVisibilityTopMerchantViewOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Date of this row.
+   *
+   * Cannot be selected in the `SELECT` clause. A condition on `date` is
+   * required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + boolean hasDate(); + + /** + * + * + *
+   * Date of this row.
+   *
+   * Cannot be selected in the `SELECT` clause. A condition on `date` is
+   * required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + com.google.type.Date getDate(); + + /** + * + * + *
+   * Date of this row.
+   *
+   * Cannot be selected in the `SELECT` clause. A condition on `date` is
+   * required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + */ + com.google.type.DateOrBuilder getDateOrBuilder(); + + /** + * + * + *
+   * Domain of your competitor or your domain, if 'is_your_domain' is true.
+   *
+   * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+   * clause.
+   * 
+ * + * optional string domain = 2; + * + * @return Whether the domain field is set. + */ + boolean hasDomain(); + + /** + * + * + *
+   * Domain of your competitor or your domain, if 'is_your_domain' is true.
+   *
+   * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+   * clause.
+   * 
+ * + * optional string domain = 2; + * + * @return The domain. + */ + java.lang.String getDomain(); + + /** + * + * + *
+   * Domain of your competitor or your domain, if 'is_your_domain' is true.
+   *
+   * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+   * clause.
+   * 
+ * + * optional string domain = 2; + * + * @return The bytes for domain. + */ + com.google.protobuf.ByteString getDomainBytes(); + + /** + * + * + *
+   * True if this row contains data for your domain.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional bool is_your_domain = 3; + * + * @return Whether the isYourDomain field is set. + */ + boolean hasIsYourDomain(); + + /** + * + * + *
+   * True if this row contains data for your domain.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional bool is_your_domain = 3; + * + * @return The isYourDomain. + */ + boolean getIsYourDomain(); + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 4; + * + * @return Whether the reportCountryCode field is set. + */ + boolean hasReportCountryCode(); + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 4; + * + * @return The reportCountryCode. + */ + java.lang.String getReportCountryCode(); + + /** + * + * + *
+   * Country where impressions appeared.
+   *
+   * Required in the `SELECT` clause. A condition on `report_country_code` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional string report_country_code = 4; + * + * @return The bytes for reportCountryCode. + */ + com.google.protobuf.ByteString getReportCountryCodeBytes(); + + /** + * + * + *
+   * Google product category ID to calculate the report for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. A condition on `report_category_id` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional int64 report_category_id = 5; + * + * @return Whether the reportCategoryId field is set. + */ + boolean hasReportCategoryId(); + + /** + * + * + *
+   * Google product category ID to calculate the report for, represented in
+   * [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   *
+   * Required in the `SELECT` clause. A condition on `report_category_id` is
+   * required in the `WHERE` clause.
+   * 
+ * + * optional int64 report_category_id = 5; + * + * @return The reportCategoryId. + */ + long getReportCategoryId(); + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return Whether the trafficSource field is set. + */ + boolean hasTrafficSource(); + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return The enum numeric value on the wire for trafficSource. + */ + int getTrafficSourceValue(); + + /** + * + * + *
+   * Traffic source of impressions.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6; + * + * + * @return The trafficSource. + */ + com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum getTrafficSource(); + + /** + * + * + *
+   * Position of the domain in the top merchants ranking for the selected keys
+   * (`date`, `report_category_id`, `report_country_code`, `traffic_source`)
+   * based on impressions. 1 is the highest.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional int64 rank = 7; + * + * @return Whether the rank field is set. + */ + boolean hasRank(); + + /** + * + * + *
+   * Position of the domain in the top merchants ranking for the selected keys
+   * (`date`, `report_category_id`, `report_country_code`, `traffic_source`)
+   * based on impressions. 1 is the highest.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional int64 rank = 7; + * + * @return The rank. + */ + long getRank(); + + /** + * + * + *
+   * [Ads / organic ratio]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+   * shows how often the domain receives impressions from Shopping ads compared
+   * to organic traffic. The number is rounded and bucketed.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double ads_organic_ratio = 8; + * + * @return Whether the adsOrganicRatio field is set. + */ + boolean hasAdsOrganicRatio(); + + /** + * + * + *
+   * [Ads / organic ratio]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+   * shows how often the domain receives impressions from Shopping ads compared
+   * to organic traffic. The number is rounded and bucketed.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double ads_organic_ratio = 8; + * + * @return The adsOrganicRatio. + */ + double getAdsOrganicRatio(); + + /** + * + * + *
+   * [Page overlap rate]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+   * shows how frequently competing retailers’ offers are shown together with
+   * your offers on the same page.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double page_overlap_rate = 9; + * + * @return Whether the pageOverlapRate field is set. + */ + boolean hasPageOverlapRate(); + + /** + * + * + *
+   * [Page overlap rate]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+   * shows how frequently competing retailers’ offers are shown together with
+   * your offers on the same page.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double page_overlap_rate = 9; + * + * @return The pageOverlapRate. + */ + double getPageOverlapRate(); + + /** + * + * + *
+   * [Higher position rate]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+   * shows how often a competitor’s offer got placed in a higher position on the
+   * page than your offer.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double higher_position_rate = 10; + * + * @return Whether the higherPositionRate field is set. + */ + boolean hasHigherPositionRate(); + + /** + * + * + *
+   * [Higher position rate]
+   * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+   * shows how often a competitor’s offer got placed in a higher position on the
+   * page than your offer.
+   *
+   * Cannot be filtered on in the 'WHERE' clause.
+   * 
+ * + * optional double higher_position_rate = 10; + * + * @return The higherPositionRate. + */ + double getHigherPositionRate(); +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/MarketingMethod.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/MarketingMethod.java new file mode 100644 index 000000000000..2151a63a8793 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/MarketingMethod.java @@ -0,0 +1,605 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Marketing method used to promote your products on Google (organic versus
+ * ads).
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.MarketingMethod} + */ +public final class MarketingMethod extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.MarketingMethod) + MarketingMethodOrBuilder { + private static final long serialVersionUID = 0L; + + // Use MarketingMethod.newBuilder() to construct. + private MarketingMethod(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private MarketingMethod() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new MarketingMethod(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_MarketingMethod_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_MarketingMethod_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.MarketingMethod.class, + com.google.shopping.merchant.reports.v1alpha.MarketingMethod.Builder.class); + } + + /** + * + * + *
+   * Marketing method values.
+   * 
+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum} + */ + public enum MarketingMethodEnum implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Not specified.
+     * 
+ * + * MARKETING_METHOD_ENUM_UNSPECIFIED = 0; + */ + MARKETING_METHOD_ENUM_UNSPECIFIED(0), + /** + * + * + *
+     * Organic marketing.
+     * 
+ * + * ORGANIC = 1; + */ + ORGANIC(1), + /** + * + * + *
+     * Ads-based marketing.
+     * 
+ * + * ADS = 2; + */ + ADS(2), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+     * Not specified.
+     * 
+ * + * MARKETING_METHOD_ENUM_UNSPECIFIED = 0; + */ + public static final int MARKETING_METHOD_ENUM_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+     * Organic marketing.
+     * 
+ * + * ORGANIC = 1; + */ + public static final int ORGANIC_VALUE = 1; + + /** + * + * + *
+     * Ads-based marketing.
+     * 
+ * + * ADS = 2; + */ + public static final int ADS_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 MarketingMethodEnum 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 MarketingMethodEnum forNumber(int value) { + switch (value) { + case 0: + return MARKETING_METHOD_ENUM_UNSPECIFIED; + case 1: + return ORGANIC; + case 2: + return ADS; + 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 MarketingMethodEnum findValueByNumber(int number) { + return MarketingMethodEnum.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.shopping.merchant.reports.v1alpha.MarketingMethod.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final MarketingMethodEnum[] VALUES = values(); + + public static MarketingMethodEnum 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 MarketingMethodEnum(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum) + } + + 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 { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.MarketingMethod)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.MarketingMethod other = + (com.google.shopping.merchant.reports.v1alpha.MarketingMethod) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) 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) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.MarketingMethod parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.MarketingMethod parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.MarketingMethod parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.MarketingMethod 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.shopping.merchant.reports.v1alpha.MarketingMethod parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.MarketingMethod parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.MarketingMethod parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.MarketingMethod 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.shopping.merchant.reports.v1alpha.MarketingMethod parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.MarketingMethod 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.shopping.merchant.reports.v1alpha.MarketingMethod parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.MarketingMethod 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.shopping.merchant.reports.v1alpha.MarketingMethod 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; + } + + /** + * + * + *
+   * Marketing method used to promote your products on Google (organic versus
+   * ads).
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.MarketingMethod} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.MarketingMethod) + com.google.shopping.merchant.reports.v1alpha.MarketingMethodOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_MarketingMethod_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_MarketingMethod_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.MarketingMethod.class, + com.google.shopping.merchant.reports.v1alpha.MarketingMethod.Builder.class); + } + + // Construct using com.google.shopping.merchant.reports.v1alpha.MarketingMethod.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_MarketingMethod_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.MarketingMethod + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.MarketingMethod.getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.MarketingMethod build() { + com.google.shopping.merchant.reports.v1alpha.MarketingMethod result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.MarketingMethod buildPartial() { + com.google.shopping.merchant.reports.v1alpha.MarketingMethod result = + new com.google.shopping.merchant.reports.v1alpha.MarketingMethod(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.shopping.merchant.reports.v1alpha.MarketingMethod) { + return mergeFrom((com.google.shopping.merchant.reports.v1alpha.MarketingMethod) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.shopping.merchant.reports.v1alpha.MarketingMethod other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.MarketingMethod.getDefaultInstance()) + return this; + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + 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.shopping.merchant.reports.v1alpha.MarketingMethod) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.MarketingMethod) + private static final com.google.shopping.merchant.reports.v1alpha.MarketingMethod + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.MarketingMethod(); + } + + public static com.google.shopping.merchant.reports.v1alpha.MarketingMethod getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MarketingMethod parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.MarketingMethod getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/MarketingMethodOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/MarketingMethodOrBuilder.java new file mode 100644 index 000000000000..9370728c4cbd --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/MarketingMethodOrBuilder.java @@ -0,0 +1,25 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface MarketingMethodOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.MarketingMethod) + com.google.protobuf.MessageOrBuilder {} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/NonProductPerformanceView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/NonProductPerformanceView.java new file mode 100644 index 000000000000..767e4c1707a2 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/NonProductPerformanceView.java @@ -0,0 +1,1491 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Fields available for query in `non_product_performance_view` table.
+ *
+ * Performance data on images and online store links leading to your non-product
+ * pages. This includes performance metrics (for example, `clicks`)
+ * and dimensions according to which performance metrics are segmented (for
+ * example, `date`).
+ *
+ * Segment fields cannot be selected in queries without also selecting at least
+ * one metric field.
+ *
+ * Values are only set for fields requested explicitly in the request's search
+ * query.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.NonProductPerformanceView} + */ +public final class NonProductPerformanceView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.NonProductPerformanceView) + NonProductPerformanceViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use NonProductPerformanceView.newBuilder() to construct. + private NonProductPerformanceView(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private NonProductPerformanceView() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new NonProductPerformanceView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_NonProductPerformanceView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_NonProductPerformanceView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView.class, + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView.Builder.class); + } + + private int bitField0_; + public static final int DATE_FIELD_NUMBER = 1; + private com.google.type.Date date_; + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + @java.lang.Override + public boolean hasDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + @java.lang.Override + public com.google.type.Date getDate() { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + */ + @java.lang.Override + public com.google.type.DateOrBuilder getDateOrBuilder() { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + + public static final int WEEK_FIELD_NUMBER = 2; + private com.google.type.Date week_; + + /** + * + * + *
+   * First day of the week (Monday) of the metrics date in the merchant
+   * timezone. Segment.
+   * 
+ * + * .google.type.Date week = 2; + * + * @return Whether the week field is set. + */ + @java.lang.Override + public boolean hasWeek() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * First day of the week (Monday) of the metrics date in the merchant
+   * timezone. Segment.
+   * 
+ * + * .google.type.Date week = 2; + * + * @return The week. + */ + @java.lang.Override + public com.google.type.Date getWeek() { + return week_ == null ? com.google.type.Date.getDefaultInstance() : week_; + } + + /** + * + * + *
+   * First day of the week (Monday) of the metrics date in the merchant
+   * timezone. Segment.
+   * 
+ * + * .google.type.Date week = 2; + */ + @java.lang.Override + public com.google.type.DateOrBuilder getWeekOrBuilder() { + return week_ == null ? com.google.type.Date.getDefaultInstance() : week_; + } + + public static final int CLICKS_FIELD_NUMBER = 3; + private long clicks_ = 0L; + + /** + * + * + *
+   * Number of clicks on images and online store links leading to your
+   * non-product pages. Metric.
+   * 
+ * + * optional int64 clicks = 3; + * + * @return Whether the clicks field is set. + */ + @java.lang.Override + public boolean hasClicks() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * Number of clicks on images and online store links leading to your
+   * non-product pages. Metric.
+   * 
+ * + * optional int64 clicks = 3; + * + * @return The clicks. + */ + @java.lang.Override + public long getClicks() { + return clicks_; + } + + public static final int IMPRESSIONS_FIELD_NUMBER = 4; + private long impressions_ = 0L; + + /** + * + * + *
+   * Number of times images and online store links leading to your non-product
+   * pages were shown. Metric.
+   * 
+ * + * optional int64 impressions = 4; + * + * @return Whether the impressions field is set. + */ + @java.lang.Override + public boolean hasImpressions() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * Number of times images and online store links leading to your non-product
+   * pages were shown. Metric.
+   * 
+ * + * optional int64 impressions = 4; + * + * @return The impressions. + */ + @java.lang.Override + public long getImpressions() { + return impressions_; + } + + public static final int CLICK_THROUGH_RATE_FIELD_NUMBER = 5; + private double clickThroughRate_ = 0D; + + /** + * + * + *
+   * Click-through rate - the number of clicks (`clicks`) divided by the number
+   * of impressions (`impressions`) of images and online store links leading to
+   * your non-product pages. Metric.
+   * 
+ * + * optional double click_through_rate = 5; + * + * @return Whether the clickThroughRate field is set. + */ + @java.lang.Override + public boolean hasClickThroughRate() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * Click-through rate - the number of clicks (`clicks`) divided by the number
+   * of impressions (`impressions`) of images and online store links leading to
+   * your non-product pages. Metric.
+   * 
+ * + * optional double click_through_rate = 5; + * + * @return The clickThroughRate. + */ + @java.lang.Override + public double getClickThroughRate() { + return clickThroughRate_; + } + + 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 (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(2, getWeek()); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeInt64(3, clicks_); + } + if (((bitField0_ & 0x00000008) != 0)) { + output.writeInt64(4, impressions_); + } + if (((bitField0_ & 0x00000010) != 0)) { + output.writeDouble(5, clickThroughRate_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getWeek()); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(3, clicks_); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(4, impressions_); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(5, clickThroughRate_); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.NonProductPerformanceView)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView other = + (com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView) obj; + + if (hasDate() != other.hasDate()) return false; + if (hasDate()) { + if (!getDate().equals(other.getDate())) return false; + } + if (hasWeek() != other.hasWeek()) return false; + if (hasWeek()) { + if (!getWeek().equals(other.getWeek())) return false; + } + if (hasClicks() != other.hasClicks()) return false; + if (hasClicks()) { + if (getClicks() != other.getClicks()) return false; + } + if (hasImpressions() != other.hasImpressions()) return false; + if (hasImpressions()) { + if (getImpressions() != other.getImpressions()) return false; + } + if (hasClickThroughRate() != other.hasClickThroughRate()) return false; + if (hasClickThroughRate()) { + if (java.lang.Double.doubleToLongBits(getClickThroughRate()) + != java.lang.Double.doubleToLongBits(other.getClickThroughRate())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasDate()) { + hash = (37 * hash) + DATE_FIELD_NUMBER; + hash = (53 * hash) + getDate().hashCode(); + } + if (hasWeek()) { + hash = (37 * hash) + WEEK_FIELD_NUMBER; + hash = (53 * hash) + getWeek().hashCode(); + } + if (hasClicks()) { + hash = (37 * hash) + CLICKS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getClicks()); + } + if (hasImpressions()) { + hash = (37 * hash) + IMPRESSIONS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getImpressions()); + } + if (hasClickThroughRate()) { + hash = (37 * hash) + CLICK_THROUGH_RATE_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getClickThroughRate())); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView 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.shopping.merchant.reports.v1alpha.NonProductPerformanceView parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView 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.shopping.merchant.reports.v1alpha.NonProductPerformanceView + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView + 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.shopping.merchant.reports.v1alpha.NonProductPerformanceView parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView 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.shopping.merchant.reports.v1alpha.NonProductPerformanceView 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; + } + + /** + * + * + *
+   * Fields available for query in `non_product_performance_view` table.
+   *
+   * Performance data on images and online store links leading to your non-product
+   * pages. This includes performance metrics (for example, `clicks`)
+   * and dimensions according to which performance metrics are segmented (for
+   * example, `date`).
+   *
+   * Segment fields cannot be selected in queries without also selecting at least
+   * one metric field.
+   *
+   * Values are only set for fields requested explicitly in the request's search
+   * query.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.NonProductPerformanceView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.NonProductPerformanceView) + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceViewOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_NonProductPerformanceView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_NonProductPerformanceView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView.class, + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView.Builder.class); + } + + // Construct using + // com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getDateFieldBuilder(); + getWeekFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + date_ = null; + if (dateBuilder_ != null) { + dateBuilder_.dispose(); + dateBuilder_ = null; + } + week_ = null; + if (weekBuilder_ != null) { + weekBuilder_.dispose(); + weekBuilder_ = null; + } + clicks_ = 0L; + impressions_ = 0L; + clickThroughRate_ = 0D; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_NonProductPerformanceView_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView build() { + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView buildPartial() { + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView result = + new com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.date_ = dateBuilder_ == null ? date_ : dateBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.week_ = weekBuilder_ == null ? week_ : weekBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.clicks_ = clicks_; + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.impressions_ = impressions_; + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.clickThroughRate_ = clickThroughRate_; + to_bitField0_ |= 0x00000010; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.NonProductPerformanceView) { + return mergeFrom( + (com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView + .getDefaultInstance()) return this; + if (other.hasDate()) { + mergeDate(other.getDate()); + } + if (other.hasWeek()) { + mergeWeek(other.getWeek()); + } + if (other.hasClicks()) { + setClicks(other.getClicks()); + } + if (other.hasImpressions()) { + setImpressions(other.getImpressions()); + } + if (other.hasClickThroughRate()) { + setClickThroughRate(other.getClickThroughRate()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getDateFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + input.readMessage(getWeekFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: + { + clicks_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: + { + impressions_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 41: + { + clickThroughRate_ = input.readDouble(); + bitField0_ |= 0x00000010; + break; + } // case 41 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.type.Date date_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + dateBuilder_; + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + public boolean hasDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + public com.google.type.Date getDate() { + if (dateBuilder_ == null) { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } else { + return dateBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder setDate(com.google.type.Date value) { + if (dateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + date_ = value; + } else { + dateBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder setDate(com.google.type.Date.Builder builderForValue) { + if (dateBuilder_ == null) { + date_ = builderForValue.build(); + } else { + dateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder mergeDate(com.google.type.Date value) { + if (dateBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && date_ != null + && date_ != com.google.type.Date.getDefaultInstance()) { + getDateBuilder().mergeFrom(value); + } else { + date_ = value; + } + } else { + dateBuilder_.mergeFrom(value); + } + if (date_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder clearDate() { + bitField0_ = (bitField0_ & ~0x00000001); + date_ = null; + if (dateBuilder_ != null) { + dateBuilder_.dispose(); + dateBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public com.google.type.Date.Builder getDateBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getDateFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public com.google.type.DateOrBuilder getDateOrBuilder() { + if (dateBuilder_ != null) { + return dateBuilder_.getMessageOrBuilder(); + } else { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + getDateFieldBuilder() { + if (dateBuilder_ == null) { + dateBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>( + getDate(), getParentForChildren(), isClean()); + date_ = null; + } + return dateBuilder_; + } + + private com.google.type.Date week_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + weekBuilder_; + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 2; + * + * @return Whether the week field is set. + */ + public boolean hasWeek() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 2; + * + * @return The week. + */ + public com.google.type.Date getWeek() { + if (weekBuilder_ == null) { + return week_ == null ? com.google.type.Date.getDefaultInstance() : week_; + } else { + return weekBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 2; + */ + public Builder setWeek(com.google.type.Date value) { + if (weekBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + week_ = value; + } else { + weekBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 2; + */ + public Builder setWeek(com.google.type.Date.Builder builderForValue) { + if (weekBuilder_ == null) { + week_ = builderForValue.build(); + } else { + weekBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 2; + */ + public Builder mergeWeek(com.google.type.Date value) { + if (weekBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) + && week_ != null + && week_ != com.google.type.Date.getDefaultInstance()) { + getWeekBuilder().mergeFrom(value); + } else { + week_ = value; + } + } else { + weekBuilder_.mergeFrom(value); + } + if (week_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 2; + */ + public Builder clearWeek() { + bitField0_ = (bitField0_ & ~0x00000002); + week_ = null; + if (weekBuilder_ != null) { + weekBuilder_.dispose(); + weekBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 2; + */ + public com.google.type.Date.Builder getWeekBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getWeekFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 2; + */ + public com.google.type.DateOrBuilder getWeekOrBuilder() { + if (weekBuilder_ != null) { + return weekBuilder_.getMessageOrBuilder(); + } else { + return week_ == null ? com.google.type.Date.getDefaultInstance() : week_; + } + } + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + getWeekFieldBuilder() { + if (weekBuilder_ == null) { + weekBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>( + getWeek(), getParentForChildren(), isClean()); + week_ = null; + } + return weekBuilder_; + } + + private long clicks_; + + /** + * + * + *
+     * Number of clicks on images and online store links leading to your
+     * non-product pages. Metric.
+     * 
+ * + * optional int64 clicks = 3; + * + * @return Whether the clicks field is set. + */ + @java.lang.Override + public boolean hasClicks() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * Number of clicks on images and online store links leading to your
+     * non-product pages. Metric.
+     * 
+ * + * optional int64 clicks = 3; + * + * @return The clicks. + */ + @java.lang.Override + public long getClicks() { + return clicks_; + } + + /** + * + * + *
+     * Number of clicks on images and online store links leading to your
+     * non-product pages. Metric.
+     * 
+ * + * optional int64 clicks = 3; + * + * @param value The clicks to set. + * @return This builder for chaining. + */ + public Builder setClicks(long value) { + + clicks_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Number of clicks on images and online store links leading to your
+     * non-product pages. Metric.
+     * 
+ * + * optional int64 clicks = 3; + * + * @return This builder for chaining. + */ + public Builder clearClicks() { + bitField0_ = (bitField0_ & ~0x00000004); + clicks_ = 0L; + onChanged(); + return this; + } + + private long impressions_; + + /** + * + * + *
+     * Number of times images and online store links leading to your non-product
+     * pages were shown. Metric.
+     * 
+ * + * optional int64 impressions = 4; + * + * @return Whether the impressions field is set. + */ + @java.lang.Override + public boolean hasImpressions() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Number of times images and online store links leading to your non-product
+     * pages were shown. Metric.
+     * 
+ * + * optional int64 impressions = 4; + * + * @return The impressions. + */ + @java.lang.Override + public long getImpressions() { + return impressions_; + } + + /** + * + * + *
+     * Number of times images and online store links leading to your non-product
+     * pages were shown. Metric.
+     * 
+ * + * optional int64 impressions = 4; + * + * @param value The impressions to set. + * @return This builder for chaining. + */ + public Builder setImpressions(long value) { + + impressions_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Number of times images and online store links leading to your non-product
+     * pages were shown. Metric.
+     * 
+ * + * optional int64 impressions = 4; + * + * @return This builder for chaining. + */ + public Builder clearImpressions() { + bitField0_ = (bitField0_ & ~0x00000008); + impressions_ = 0L; + onChanged(); + return this; + } + + private double clickThroughRate_; + + /** + * + * + *
+     * Click-through rate - the number of clicks (`clicks`) divided by the number
+     * of impressions (`impressions`) of images and online store links leading to
+     * your non-product pages. Metric.
+     * 
+ * + * optional double click_through_rate = 5; + * + * @return Whether the clickThroughRate field is set. + */ + @java.lang.Override + public boolean hasClickThroughRate() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * Click-through rate - the number of clicks (`clicks`) divided by the number
+     * of impressions (`impressions`) of images and online store links leading to
+     * your non-product pages. Metric.
+     * 
+ * + * optional double click_through_rate = 5; + * + * @return The clickThroughRate. + */ + @java.lang.Override + public double getClickThroughRate() { + return clickThroughRate_; + } + + /** + * + * + *
+     * Click-through rate - the number of clicks (`clicks`) divided by the number
+     * of impressions (`impressions`) of images and online store links leading to
+     * your non-product pages. Metric.
+     * 
+ * + * optional double click_through_rate = 5; + * + * @param value The clickThroughRate to set. + * @return This builder for chaining. + */ + public Builder setClickThroughRate(double value) { + + clickThroughRate_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Click-through rate - the number of clicks (`clicks`) divided by the number
+     * of impressions (`impressions`) of images and online store links leading to
+     * your non-product pages. Metric.
+     * 
+ * + * optional double click_through_rate = 5; + * + * @return This builder for chaining. + */ + public Builder clearClickThroughRate() { + bitField0_ = (bitField0_ & ~0x00000010); + clickThroughRate_ = 0D; + 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.shopping.merchant.reports.v1alpha.NonProductPerformanceView) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.NonProductPerformanceView) + private static final com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView(); + } + + public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public NonProductPerformanceView parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.NonProductPerformanceView + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/NonProductPerformanceViewOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/NonProductPerformanceViewOrBuilder.java new file mode 100644 index 000000000000..1eeb9267f878 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/NonProductPerformanceViewOrBuilder.java @@ -0,0 +1,195 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface NonProductPerformanceViewOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.NonProductPerformanceView) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + boolean hasDate(); + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + com.google.type.Date getDate(); + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + */ + com.google.type.DateOrBuilder getDateOrBuilder(); + + /** + * + * + *
+   * First day of the week (Monday) of the metrics date in the merchant
+   * timezone. Segment.
+   * 
+ * + * .google.type.Date week = 2; + * + * @return Whether the week field is set. + */ + boolean hasWeek(); + + /** + * + * + *
+   * First day of the week (Monday) of the metrics date in the merchant
+   * timezone. Segment.
+   * 
+ * + * .google.type.Date week = 2; + * + * @return The week. + */ + com.google.type.Date getWeek(); + + /** + * + * + *
+   * First day of the week (Monday) of the metrics date in the merchant
+   * timezone. Segment.
+   * 
+ * + * .google.type.Date week = 2; + */ + com.google.type.DateOrBuilder getWeekOrBuilder(); + + /** + * + * + *
+   * Number of clicks on images and online store links leading to your
+   * non-product pages. Metric.
+   * 
+ * + * optional int64 clicks = 3; + * + * @return Whether the clicks field is set. + */ + boolean hasClicks(); + + /** + * + * + *
+   * Number of clicks on images and online store links leading to your
+   * non-product pages. Metric.
+   * 
+ * + * optional int64 clicks = 3; + * + * @return The clicks. + */ + long getClicks(); + + /** + * + * + *
+   * Number of times images and online store links leading to your non-product
+   * pages were shown. Metric.
+   * 
+ * + * optional int64 impressions = 4; + * + * @return Whether the impressions field is set. + */ + boolean hasImpressions(); + + /** + * + * + *
+   * Number of times images and online store links leading to your non-product
+   * pages were shown. Metric.
+   * 
+ * + * optional int64 impressions = 4; + * + * @return The impressions. + */ + long getImpressions(); + + /** + * + * + *
+   * Click-through rate - the number of clicks (`clicks`) divided by the number
+   * of impressions (`impressions`) of images and online store links leading to
+   * your non-product pages. Metric.
+   * 
+ * + * optional double click_through_rate = 5; + * + * @return Whether the clickThroughRate field is set. + */ + boolean hasClickThroughRate(); + + /** + * + * + *
+   * Click-through rate - the number of clicks (`clicks`) divided by the number
+   * of impressions (`impressions`) of images and online store links leading to
+   * your non-product pages. Metric.
+   * 
+ * + * optional double click_through_rate = 5; + * + * @return The clickThroughRate. + */ + double getClickThroughRate(); +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceCompetitivenessProductView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceCompetitivenessProductView.java new file mode 100644 index 000000000000..924f22e13e37 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceCompetitivenessProductView.java @@ -0,0 +1,4592 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Fields available for query in `price_competitiveness_product_view` table.
+ *
+ * [Price competitiveness](https://support.google.com/merchants/answer/9626903)
+ * report.
+ *
+ * Values are only set for fields requested explicitly in the request's search
+ * query.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView} + */ +public final class PriceCompetitivenessProductView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView) + PriceCompetitivenessProductViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use PriceCompetitivenessProductView.newBuilder() to construct. + private PriceCompetitivenessProductView( + com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private PriceCompetitivenessProductView() { + reportCountryCode_ = ""; + id_ = ""; + offerId_ = ""; + title_ = ""; + brand_ = ""; + categoryL1_ = ""; + categoryL2_ = ""; + categoryL3_ = ""; + categoryL4_ = ""; + categoryL5_ = ""; + productTypeL1_ = ""; + productTypeL2_ = ""; + productTypeL3_ = ""; + productTypeL4_ = ""; + productTypeL5_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new PriceCompetitivenessProductView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_PriceCompetitivenessProductView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_PriceCompetitivenessProductView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView.class, + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView.Builder + .class); + } + + private int bitField0_; + public static final int REPORT_COUNTRY_CODE_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object reportCountryCode_ = ""; + + /** + * + * + *
+   * Country of the price benchmark. Represented in the ISO 3166 format.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string report_country_code = 1; + * + * @return Whether the reportCountryCode field is set. + */ + @java.lang.Override + public boolean hasReportCountryCode() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Country of the price benchmark. Represented in the ISO 3166 format.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string report_country_code = 1; + * + * @return The reportCountryCode. + */ + @java.lang.Override + public java.lang.String getReportCountryCode() { + java.lang.Object ref = reportCountryCode_; + 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(); + reportCountryCode_ = s; + return s; + } + } + + /** + * + * + *
+   * Country of the price benchmark. Represented in the ISO 3166 format.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string report_country_code = 1; + * + * @return The bytes for reportCountryCode. + */ + @java.lang.Override + public com.google.protobuf.ByteString getReportCountryCodeBytes() { + java.lang.Object ref = reportCountryCode_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + reportCountryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ID_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object id_ = ""; + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+   * `product_view` table.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 2; + * + * @return Whether the id field is set. + */ + @java.lang.Override + public boolean hasId() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+   * `product_view` table.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 2; + * + * @return The id. + */ + @java.lang.Override + public java.lang.String getId() { + java.lang.Object ref = id_; + 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(); + id_ = s; + return s; + } + } + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+   * `product_view` table.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 2; + * + * @return The bytes for id. + */ + @java.lang.Override + public com.google.protobuf.ByteString getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int OFFER_ID_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object offerId_ = ""; + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 3; + * + * @return Whether the offerId field is set. + */ + @java.lang.Override + public boolean hasOfferId() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 3; + * + * @return The offerId. + */ + @java.lang.Override + public java.lang.String getOfferId() { + java.lang.Object ref = offerId_; + 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(); + offerId_ = s; + return s; + } + } + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 3; + * + * @return The bytes for offerId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getOfferIdBytes() { + java.lang.Object ref = offerId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + offerId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TITLE_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object title_ = ""; + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 4; + * + * @return Whether the title field is set. + */ + @java.lang.Override + public boolean hasTitle() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 4; + * + * @return The title. + */ + @java.lang.Override + public java.lang.String getTitle() { + java.lang.Object ref = title_; + 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(); + title_ = s; + return s; + } + } + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 4; + * + * @return The bytes for title. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BRAND_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private volatile java.lang.Object brand_ = ""; + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 5; + * + * @return Whether the brand field is set. + */ + @java.lang.Override + public boolean hasBrand() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 5; + * + * @return The brand. + */ + @java.lang.Override + public java.lang.String getBrand() { + java.lang.Object ref = brand_; + 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(); + brand_ = s; + return s; + } + } + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 5; + * + * @return The bytes for brand. + */ + @java.lang.Override + public com.google.protobuf.ByteString getBrandBytes() { + java.lang.Object ref = brand_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + brand_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L1_FIELD_NUMBER = 6; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL1_ = ""; + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 6; + * + * @return Whether the categoryL1 field is set. + */ + @java.lang.Override + public boolean hasCategoryL1() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 6; + * + * @return The categoryL1. + */ + @java.lang.Override + public java.lang.String getCategoryL1() { + java.lang.Object ref = categoryL1_; + 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(); + categoryL1_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 6; + * + * @return The bytes for categoryL1. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL1Bytes() { + java.lang.Object ref = categoryL1_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L2_FIELD_NUMBER = 7; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL2_ = ""; + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 7; + * + * @return Whether the categoryL2 field is set. + */ + @java.lang.Override + public boolean hasCategoryL2() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 7; + * + * @return The categoryL2. + */ + @java.lang.Override + public java.lang.String getCategoryL2() { + java.lang.Object ref = categoryL2_; + 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(); + categoryL2_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 7; + * + * @return The bytes for categoryL2. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL2Bytes() { + java.lang.Object ref = categoryL2_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L3_FIELD_NUMBER = 8; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL3_ = ""; + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 8; + * + * @return Whether the categoryL3 field is set. + */ + @java.lang.Override + public boolean hasCategoryL3() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 8; + * + * @return The categoryL3. + */ + @java.lang.Override + public java.lang.String getCategoryL3() { + java.lang.Object ref = categoryL3_; + 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(); + categoryL3_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 8; + * + * @return The bytes for categoryL3. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL3Bytes() { + java.lang.Object ref = categoryL3_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L4_FIELD_NUMBER = 9; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL4_ = ""; + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 9; + * + * @return Whether the categoryL4 field is set. + */ + @java.lang.Override + public boolean hasCategoryL4() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 9; + * + * @return The categoryL4. + */ + @java.lang.Override + public java.lang.String getCategoryL4() { + java.lang.Object ref = categoryL4_; + 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(); + categoryL4_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 9; + * + * @return The bytes for categoryL4. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL4Bytes() { + java.lang.Object ref = categoryL4_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L5_FIELD_NUMBER = 10; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL5_ = ""; + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 10; + * + * @return Whether the categoryL5 field is set. + */ + @java.lang.Override + public boolean hasCategoryL5() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 10; + * + * @return The categoryL5. + */ + @java.lang.Override + public java.lang.String getCategoryL5() { + java.lang.Object ref = categoryL5_; + 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(); + categoryL5_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 10; + * + * @return The bytes for categoryL5. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL5Bytes() { + java.lang.Object ref = categoryL5_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L1_FIELD_NUMBER = 11; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL1_ = ""; + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 11; + * + * @return Whether the productTypeL1 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL1() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 11; + * + * @return The productTypeL1. + */ + @java.lang.Override + public java.lang.String getProductTypeL1() { + java.lang.Object ref = productTypeL1_; + 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(); + productTypeL1_ = s; + return s; + } + } + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 11; + * + * @return The bytes for productTypeL1. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL1Bytes() { + java.lang.Object ref = productTypeL1_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L2_FIELD_NUMBER = 12; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL2_ = ""; + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 12; + * + * @return Whether the productTypeL2 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL2() { + return ((bitField0_ & 0x00000800) != 0); + } + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 12; + * + * @return The productTypeL2. + */ + @java.lang.Override + public java.lang.String getProductTypeL2() { + java.lang.Object ref = productTypeL2_; + 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(); + productTypeL2_ = s; + return s; + } + } + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 12; + * + * @return The bytes for productTypeL2. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL2Bytes() { + java.lang.Object ref = productTypeL2_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L3_FIELD_NUMBER = 13; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL3_ = ""; + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 13; + * + * @return Whether the productTypeL3 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL3() { + return ((bitField0_ & 0x00001000) != 0); + } + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 13; + * + * @return The productTypeL3. + */ + @java.lang.Override + public java.lang.String getProductTypeL3() { + java.lang.Object ref = productTypeL3_; + 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(); + productTypeL3_ = s; + return s; + } + } + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 13; + * + * @return The bytes for productTypeL3. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL3Bytes() { + java.lang.Object ref = productTypeL3_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L4_FIELD_NUMBER = 14; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL4_ = ""; + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 14; + * + * @return Whether the productTypeL4 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL4() { + return ((bitField0_ & 0x00002000) != 0); + } + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 14; + * + * @return The productTypeL4. + */ + @java.lang.Override + public java.lang.String getProductTypeL4() { + java.lang.Object ref = productTypeL4_; + 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(); + productTypeL4_ = s; + return s; + } + } + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 14; + * + * @return The bytes for productTypeL4. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL4Bytes() { + java.lang.Object ref = productTypeL4_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L5_FIELD_NUMBER = 15; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL5_ = ""; + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 15; + * + * @return Whether the productTypeL5 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL5() { + return ((bitField0_ & 0x00004000) != 0); + } + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 15; + * + * @return The productTypeL5. + */ + @java.lang.Override + public java.lang.String getProductTypeL5() { + java.lang.Object ref = productTypeL5_; + 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(); + productTypeL5_ = s; + return s; + } + } + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 15; + * + * @return The bytes for productTypeL5. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL5Bytes() { + java.lang.Object ref = productTypeL5_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRICE_FIELD_NUMBER = 16; + private com.google.shopping.type.Price price_; + + /** + * + * + *
+   * Current price of the product.
+   * 
+ * + * .google.shopping.type.Price price = 16; + * + * @return Whether the price field is set. + */ + @java.lang.Override + public boolean hasPrice() { + return ((bitField0_ & 0x00008000) != 0); + } + + /** + * + * + *
+   * Current price of the product.
+   * 
+ * + * .google.shopping.type.Price price = 16; + * + * @return The price. + */ + @java.lang.Override + public com.google.shopping.type.Price getPrice() { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } + + /** + * + * + *
+   * Current price of the product.
+   * 
+ * + * .google.shopping.type.Price price = 16; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } + + public static final int BENCHMARK_PRICE_FIELD_NUMBER = 17; + private com.google.shopping.type.Price benchmarkPrice_; + + /** + * + * + *
+   * Latest available price benchmark for the product's catalog in the benchmark
+   * country.
+   * 
+ * + * .google.shopping.type.Price benchmark_price = 17; + * + * @return Whether the benchmarkPrice field is set. + */ + @java.lang.Override + public boolean hasBenchmarkPrice() { + return ((bitField0_ & 0x00010000) != 0); + } + + /** + * + * + *
+   * Latest available price benchmark for the product's catalog in the benchmark
+   * country.
+   * 
+ * + * .google.shopping.type.Price benchmark_price = 17; + * + * @return The benchmarkPrice. + */ + @java.lang.Override + public com.google.shopping.type.Price getBenchmarkPrice() { + return benchmarkPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : benchmarkPrice_; + } + + /** + * + * + *
+   * Latest available price benchmark for the product's catalog in the benchmark
+   * country.
+   * 
+ * + * .google.shopping.type.Price benchmark_price = 17; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getBenchmarkPriceOrBuilder() { + return benchmarkPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : benchmarkPrice_; + } + + 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 (((bitField0_ & 0x00000001) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, reportCountryCode_); + } + if (((bitField0_ & 0x00000002) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, id_); + } + if (((bitField0_ & 0x00000004) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, offerId_); + } + if (((bitField0_ & 0x00000008) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, title_); + } + if (((bitField0_ & 0x00000010) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, brand_); + } + if (((bitField0_ & 0x00000020) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, categoryL1_); + } + if (((bitField0_ & 0x00000040) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, categoryL2_); + } + if (((bitField0_ & 0x00000080) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 8, categoryL3_); + } + if (((bitField0_ & 0x00000100) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 9, categoryL4_); + } + if (((bitField0_ & 0x00000200) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 10, categoryL5_); + } + if (((bitField0_ & 0x00000400) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 11, productTypeL1_); + } + if (((bitField0_ & 0x00000800) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 12, productTypeL2_); + } + if (((bitField0_ & 0x00001000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 13, productTypeL3_); + } + if (((bitField0_ & 0x00002000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 14, productTypeL4_); + } + if (((bitField0_ & 0x00004000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 15, productTypeL5_); + } + if (((bitField0_ & 0x00008000) != 0)) { + output.writeMessage(16, getPrice()); + } + if (((bitField0_ & 0x00010000) != 0)) { + output.writeMessage(17, getBenchmarkPrice()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, reportCountryCode_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, id_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, offerId_); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, title_); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, brand_); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, categoryL1_); + } + if (((bitField0_ & 0x00000040) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, categoryL2_); + } + if (((bitField0_ & 0x00000080) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, categoryL3_); + } + if (((bitField0_ & 0x00000100) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, categoryL4_); + } + if (((bitField0_ & 0x00000200) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, categoryL5_); + } + if (((bitField0_ & 0x00000400) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, productTypeL1_); + } + if (((bitField0_ & 0x00000800) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, productTypeL2_); + } + if (((bitField0_ & 0x00001000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, productTypeL3_); + } + if (((bitField0_ & 0x00002000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, productTypeL4_); + } + if (((bitField0_ & 0x00004000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, productTypeL5_); + } + if (((bitField0_ & 0x00008000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(16, getPrice()); + } + if (((bitField0_ & 0x00010000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(17, getBenchmarkPrice()); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView other = + (com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView) obj; + + if (hasReportCountryCode() != other.hasReportCountryCode()) return false; + if (hasReportCountryCode()) { + if (!getReportCountryCode().equals(other.getReportCountryCode())) return false; + } + if (hasId() != other.hasId()) return false; + if (hasId()) { + if (!getId().equals(other.getId())) return false; + } + if (hasOfferId() != other.hasOfferId()) return false; + if (hasOfferId()) { + if (!getOfferId().equals(other.getOfferId())) return false; + } + if (hasTitle() != other.hasTitle()) return false; + if (hasTitle()) { + if (!getTitle().equals(other.getTitle())) return false; + } + if (hasBrand() != other.hasBrand()) return false; + if (hasBrand()) { + if (!getBrand().equals(other.getBrand())) return false; + } + if (hasCategoryL1() != other.hasCategoryL1()) return false; + if (hasCategoryL1()) { + if (!getCategoryL1().equals(other.getCategoryL1())) return false; + } + if (hasCategoryL2() != other.hasCategoryL2()) return false; + if (hasCategoryL2()) { + if (!getCategoryL2().equals(other.getCategoryL2())) return false; + } + if (hasCategoryL3() != other.hasCategoryL3()) return false; + if (hasCategoryL3()) { + if (!getCategoryL3().equals(other.getCategoryL3())) return false; + } + if (hasCategoryL4() != other.hasCategoryL4()) return false; + if (hasCategoryL4()) { + if (!getCategoryL4().equals(other.getCategoryL4())) return false; + } + if (hasCategoryL5() != other.hasCategoryL5()) return false; + if (hasCategoryL5()) { + if (!getCategoryL5().equals(other.getCategoryL5())) return false; + } + if (hasProductTypeL1() != other.hasProductTypeL1()) return false; + if (hasProductTypeL1()) { + if (!getProductTypeL1().equals(other.getProductTypeL1())) return false; + } + if (hasProductTypeL2() != other.hasProductTypeL2()) return false; + if (hasProductTypeL2()) { + if (!getProductTypeL2().equals(other.getProductTypeL2())) return false; + } + if (hasProductTypeL3() != other.hasProductTypeL3()) return false; + if (hasProductTypeL3()) { + if (!getProductTypeL3().equals(other.getProductTypeL3())) return false; + } + if (hasProductTypeL4() != other.hasProductTypeL4()) return false; + if (hasProductTypeL4()) { + if (!getProductTypeL4().equals(other.getProductTypeL4())) return false; + } + if (hasProductTypeL5() != other.hasProductTypeL5()) return false; + if (hasProductTypeL5()) { + if (!getProductTypeL5().equals(other.getProductTypeL5())) return false; + } + if (hasPrice() != other.hasPrice()) return false; + if (hasPrice()) { + if (!getPrice().equals(other.getPrice())) return false; + } + if (hasBenchmarkPrice() != other.hasBenchmarkPrice()) return false; + if (hasBenchmarkPrice()) { + if (!getBenchmarkPrice().equals(other.getBenchmarkPrice())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasReportCountryCode()) { + hash = (37 * hash) + REPORT_COUNTRY_CODE_FIELD_NUMBER; + hash = (53 * hash) + getReportCountryCode().hashCode(); + } + if (hasId()) { + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId().hashCode(); + } + if (hasOfferId()) { + hash = (37 * hash) + OFFER_ID_FIELD_NUMBER; + hash = (53 * hash) + getOfferId().hashCode(); + } + if (hasTitle()) { + hash = (37 * hash) + TITLE_FIELD_NUMBER; + hash = (53 * hash) + getTitle().hashCode(); + } + if (hasBrand()) { + hash = (37 * hash) + BRAND_FIELD_NUMBER; + hash = (53 * hash) + getBrand().hashCode(); + } + if (hasCategoryL1()) { + hash = (37 * hash) + CATEGORY_L1_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL1().hashCode(); + } + if (hasCategoryL2()) { + hash = (37 * hash) + CATEGORY_L2_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL2().hashCode(); + } + if (hasCategoryL3()) { + hash = (37 * hash) + CATEGORY_L3_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL3().hashCode(); + } + if (hasCategoryL4()) { + hash = (37 * hash) + CATEGORY_L4_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL4().hashCode(); + } + if (hasCategoryL5()) { + hash = (37 * hash) + CATEGORY_L5_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL5().hashCode(); + } + if (hasProductTypeL1()) { + hash = (37 * hash) + PRODUCT_TYPE_L1_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL1().hashCode(); + } + if (hasProductTypeL2()) { + hash = (37 * hash) + PRODUCT_TYPE_L2_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL2().hashCode(); + } + if (hasProductTypeL3()) { + hash = (37 * hash) + PRODUCT_TYPE_L3_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL3().hashCode(); + } + if (hasProductTypeL4()) { + hash = (37 * hash) + PRODUCT_TYPE_L4_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL4().hashCode(); + } + if (hasProductTypeL5()) { + hash = (37 * hash) + PRODUCT_TYPE_L5_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL5().hashCode(); + } + if (hasPrice()) { + hash = (37 * hash) + PRICE_FIELD_NUMBER; + hash = (53 * hash) + getPrice().hashCode(); + } + if (hasBenchmarkPrice()) { + hash = (37 * hash) + BENCHMARK_PRICE_FIELD_NUMBER; + hash = (53 * hash) + getBenchmarkPrice().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + 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.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + 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.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + 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.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + 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.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView 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; + } + + /** + * + * + *
+   * Fields available for query in `price_competitiveness_product_view` table.
+   *
+   * [Price competitiveness](https://support.google.com/merchants/answer/9626903)
+   * report.
+   *
+   * Values are only set for fields requested explicitly in the request's search
+   * query.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView) + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductViewOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_PriceCompetitivenessProductView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_PriceCompetitivenessProductView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView.class, + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView.Builder + .class); + } + + // Construct using + // com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getPriceFieldBuilder(); + getBenchmarkPriceFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + reportCountryCode_ = ""; + id_ = ""; + offerId_ = ""; + title_ = ""; + brand_ = ""; + categoryL1_ = ""; + categoryL2_ = ""; + categoryL3_ = ""; + categoryL4_ = ""; + categoryL5_ = ""; + productTypeL1_ = ""; + productTypeL2_ = ""; + productTypeL3_ = ""; + productTypeL4_ = ""; + productTypeL5_ = ""; + price_ = null; + if (priceBuilder_ != null) { + priceBuilder_.dispose(); + priceBuilder_ = null; + } + benchmarkPrice_ = null; + if (benchmarkPriceBuilder_ != null) { + benchmarkPriceBuilder_.dispose(); + benchmarkPriceBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_PriceCompetitivenessProductView_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView build() { + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + buildPartial() { + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView result = + new com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.reportCountryCode_ = reportCountryCode_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.id_ = id_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.offerId_ = offerId_; + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.title_ = title_; + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.brand_ = brand_; + to_bitField0_ |= 0x00000010; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.categoryL1_ = categoryL1_; + to_bitField0_ |= 0x00000020; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.categoryL2_ = categoryL2_; + to_bitField0_ |= 0x00000040; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.categoryL3_ = categoryL3_; + to_bitField0_ |= 0x00000080; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.categoryL4_ = categoryL4_; + to_bitField0_ |= 0x00000100; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.categoryL5_ = categoryL5_; + to_bitField0_ |= 0x00000200; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.productTypeL1_ = productTypeL1_; + to_bitField0_ |= 0x00000400; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.productTypeL2_ = productTypeL2_; + to_bitField0_ |= 0x00000800; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.productTypeL3_ = productTypeL3_; + to_bitField0_ |= 0x00001000; + } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.productTypeL4_ = productTypeL4_; + to_bitField0_ |= 0x00002000; + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.productTypeL5_ = productTypeL5_; + to_bitField0_ |= 0x00004000; + } + if (((from_bitField0_ & 0x00008000) != 0)) { + result.price_ = priceBuilder_ == null ? price_ : priceBuilder_.build(); + to_bitField0_ |= 0x00008000; + } + if (((from_bitField0_ & 0x00010000) != 0)) { + result.benchmarkPrice_ = + benchmarkPriceBuilder_ == null ? benchmarkPrice_ : benchmarkPriceBuilder_.build(); + to_bitField0_ |= 0x00010000; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView) { + return mergeFrom( + (com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + .getDefaultInstance()) return this; + if (other.hasReportCountryCode()) { + reportCountryCode_ = other.reportCountryCode_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasId()) { + id_ = other.id_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.hasOfferId()) { + offerId_ = other.offerId_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.hasTitle()) { + title_ = other.title_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (other.hasBrand()) { + brand_ = other.brand_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (other.hasCategoryL1()) { + categoryL1_ = other.categoryL1_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (other.hasCategoryL2()) { + categoryL2_ = other.categoryL2_; + bitField0_ |= 0x00000040; + onChanged(); + } + if (other.hasCategoryL3()) { + categoryL3_ = other.categoryL3_; + bitField0_ |= 0x00000080; + onChanged(); + } + if (other.hasCategoryL4()) { + categoryL4_ = other.categoryL4_; + bitField0_ |= 0x00000100; + onChanged(); + } + if (other.hasCategoryL5()) { + categoryL5_ = other.categoryL5_; + bitField0_ |= 0x00000200; + onChanged(); + } + if (other.hasProductTypeL1()) { + productTypeL1_ = other.productTypeL1_; + bitField0_ |= 0x00000400; + onChanged(); + } + if (other.hasProductTypeL2()) { + productTypeL2_ = other.productTypeL2_; + bitField0_ |= 0x00000800; + onChanged(); + } + if (other.hasProductTypeL3()) { + productTypeL3_ = other.productTypeL3_; + bitField0_ |= 0x00001000; + onChanged(); + } + if (other.hasProductTypeL4()) { + productTypeL4_ = other.productTypeL4_; + bitField0_ |= 0x00002000; + onChanged(); + } + if (other.hasProductTypeL5()) { + productTypeL5_ = other.productTypeL5_; + bitField0_ |= 0x00004000; + onChanged(); + } + if (other.hasPrice()) { + mergePrice(other.getPrice()); + } + if (other.hasBenchmarkPrice()) { + mergeBenchmarkPrice(other.getBenchmarkPrice()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + reportCountryCode_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + id_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + offerId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + title_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: + { + brand_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 50: + { + categoryL1_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 58: + { + categoryL2_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 66: + { + categoryL3_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000080; + break; + } // case 66 + case 74: + { + categoryL4_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000100; + break; + } // case 74 + case 82: + { + categoryL5_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000200; + break; + } // case 82 + case 90: + { + productTypeL1_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000400; + break; + } // case 90 + case 98: + { + productTypeL2_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000800; + break; + } // case 98 + case 106: + { + productTypeL3_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00001000; + break; + } // case 106 + case 114: + { + productTypeL4_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00002000; + break; + } // case 114 + case 122: + { + productTypeL5_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00004000; + break; + } // case 122 + case 130: + { + input.readMessage(getPriceFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00008000; + break; + } // case 130 + case 138: + { + input.readMessage(getBenchmarkPriceFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00010000; + break; + } // case 138 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.lang.Object reportCountryCode_ = ""; + + /** + * + * + *
+     * Country of the price benchmark. Represented in the ISO 3166 format.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string report_country_code = 1; + * + * @return Whether the reportCountryCode field is set. + */ + public boolean hasReportCountryCode() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Country of the price benchmark. Represented in the ISO 3166 format.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string report_country_code = 1; + * + * @return The reportCountryCode. + */ + public java.lang.String getReportCountryCode() { + java.lang.Object ref = reportCountryCode_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + reportCountryCode_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Country of the price benchmark. Represented in the ISO 3166 format.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string report_country_code = 1; + * + * @return The bytes for reportCountryCode. + */ + public com.google.protobuf.ByteString getReportCountryCodeBytes() { + java.lang.Object ref = reportCountryCode_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + reportCountryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Country of the price benchmark. Represented in the ISO 3166 format.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string report_country_code = 1; + * + * @param value The reportCountryCode to set. + * @return This builder for chaining. + */ + public Builder setReportCountryCode(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + reportCountryCode_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Country of the price benchmark. Represented in the ISO 3166 format.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string report_country_code = 1; + * + * @return This builder for chaining. + */ + public Builder clearReportCountryCode() { + reportCountryCode_ = getDefaultInstance().getReportCountryCode(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * Country of the price benchmark. Represented in the ISO 3166 format.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string report_country_code = 1; + * + * @param value The bytes for reportCountryCode to set. + * @return This builder for chaining. + */ + public Builder setReportCountryCodeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + reportCountryCode_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object id_ = ""; + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+     * `product_view` table.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 2; + * + * @return Whether the id field is set. + */ + public boolean hasId() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+     * `product_view` table.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 2; + * + * @return The id. + */ + public java.lang.String getId() { + java.lang.Object ref = id_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+     * `product_view` table.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 2; + * + * @return The bytes for id. + */ + public com.google.protobuf.ByteString getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+     * `product_view` table.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 2; + * + * @param value The id to set. + * @return This builder for chaining. + */ + public Builder setId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + id_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+     * `product_view` table.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 2; + * + * @return This builder for chaining. + */ + public Builder clearId() { + id_ = getDefaultInstance().getId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+     * `product_view` table.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 2; + * + * @param value The bytes for id to set. + * @return This builder for chaining. + */ + public Builder setIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + id_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object offerId_ = ""; + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 3; + * + * @return Whether the offerId field is set. + */ + public boolean hasOfferId() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 3; + * + * @return The offerId. + */ + public java.lang.String getOfferId() { + java.lang.Object ref = offerId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + offerId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 3; + * + * @return The bytes for offerId. + */ + public com.google.protobuf.ByteString getOfferIdBytes() { + java.lang.Object ref = offerId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + offerId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 3; + * + * @param value The offerId to set. + * @return This builder for chaining. + */ + public Builder setOfferId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + offerId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 3; + * + * @return This builder for chaining. + */ + public Builder clearOfferId() { + offerId_ = getDefaultInstance().getOfferId(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 3; + * + * @param value The bytes for offerId to set. + * @return This builder for chaining. + */ + public Builder setOfferIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + offerId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object title_ = ""; + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 4; + * + * @return Whether the title field is set. + */ + public boolean hasTitle() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 4; + * + * @return The title. + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 4; + * + * @return The bytes for title. + */ + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 4; + * + * @param value The title to set. + * @return This builder for chaining. + */ + public Builder setTitle(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + title_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 4; + * + * @return This builder for chaining. + */ + public Builder clearTitle() { + title_ = getDefaultInstance().getTitle(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 4; + * + * @param value The bytes for title to set. + * @return This builder for chaining. + */ + public Builder setTitleBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + title_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private java.lang.Object brand_ = ""; + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 5; + * + * @return Whether the brand field is set. + */ + public boolean hasBrand() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 5; + * + * @return The brand. + */ + public java.lang.String getBrand() { + java.lang.Object ref = brand_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + brand_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 5; + * + * @return The bytes for brand. + */ + public com.google.protobuf.ByteString getBrandBytes() { + java.lang.Object ref = brand_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + brand_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 5; + * + * @param value The brand to set. + * @return This builder for chaining. + */ + public Builder setBrand(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + brand_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 5; + * + * @return This builder for chaining. + */ + public Builder clearBrand() { + brand_ = getDefaultInstance().getBrand(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 5; + * + * @param value The bytes for brand to set. + * @return This builder for chaining. + */ + public Builder setBrandBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + brand_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private java.lang.Object categoryL1_ = ""; + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 6; + * + * @return Whether the categoryL1 field is set. + */ + public boolean hasCategoryL1() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 6; + * + * @return The categoryL1. + */ + public java.lang.String getCategoryL1() { + java.lang.Object ref = categoryL1_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL1_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 6; + * + * @return The bytes for categoryL1. + */ + public com.google.protobuf.ByteString getCategoryL1Bytes() { + java.lang.Object ref = categoryL1_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 6; + * + * @param value The categoryL1 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL1(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL1_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 6; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL1() { + categoryL1_ = getDefaultInstance().getCategoryL1(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 6; + * + * @param value The bytes for categoryL1 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL1Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL1_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private java.lang.Object categoryL2_ = ""; + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 7; + * + * @return Whether the categoryL2 field is set. + */ + public boolean hasCategoryL2() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 7; + * + * @return The categoryL2. + */ + public java.lang.String getCategoryL2() { + java.lang.Object ref = categoryL2_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL2_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 7; + * + * @return The bytes for categoryL2. + */ + public com.google.protobuf.ByteString getCategoryL2Bytes() { + java.lang.Object ref = categoryL2_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 7; + * + * @param value The categoryL2 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL2(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL2_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 7; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL2() { + categoryL2_ = getDefaultInstance().getCategoryL2(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 7; + * + * @param value The bytes for categoryL2 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL2Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL2_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + private java.lang.Object categoryL3_ = ""; + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 8; + * + * @return Whether the categoryL3 field is set. + */ + public boolean hasCategoryL3() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 8; + * + * @return The categoryL3. + */ + public java.lang.String getCategoryL3() { + java.lang.Object ref = categoryL3_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL3_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 8; + * + * @return The bytes for categoryL3. + */ + public com.google.protobuf.ByteString getCategoryL3Bytes() { + java.lang.Object ref = categoryL3_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 8; + * + * @param value The categoryL3 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL3(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL3_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 8; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL3() { + categoryL3_ = getDefaultInstance().getCategoryL3(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 8; + * + * @param value The bytes for categoryL3 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL3Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL3_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + private java.lang.Object categoryL4_ = ""; + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 9; + * + * @return Whether the categoryL4 field is set. + */ + public boolean hasCategoryL4() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 9; + * + * @return The categoryL4. + */ + public java.lang.String getCategoryL4() { + java.lang.Object ref = categoryL4_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL4_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 9; + * + * @return The bytes for categoryL4. + */ + public com.google.protobuf.ByteString getCategoryL4Bytes() { + java.lang.Object ref = categoryL4_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 9; + * + * @param value The categoryL4 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL4(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL4_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 9; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL4() { + categoryL4_ = getDefaultInstance().getCategoryL4(); + bitField0_ = (bitField0_ & ~0x00000100); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 9; + * + * @param value The bytes for categoryL4 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL4Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL4_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + private java.lang.Object categoryL5_ = ""; + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 10; + * + * @return Whether the categoryL5 field is set. + */ + public boolean hasCategoryL5() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 10; + * + * @return The categoryL5. + */ + public java.lang.String getCategoryL5() { + java.lang.Object ref = categoryL5_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL5_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 10; + * + * @return The bytes for categoryL5. + */ + public com.google.protobuf.ByteString getCategoryL5Bytes() { + java.lang.Object ref = categoryL5_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 10; + * + * @param value The categoryL5 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL5(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL5_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 10; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL5() { + categoryL5_ = getDefaultInstance().getCategoryL5(); + bitField0_ = (bitField0_ & ~0x00000200); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 10; + * + * @param value The bytes for categoryL5 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL5Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL5_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + private java.lang.Object productTypeL1_ = ""; + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 11; + * + * @return Whether the productTypeL1 field is set. + */ + public boolean hasProductTypeL1() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 11; + * + * @return The productTypeL1. + */ + public java.lang.String getProductTypeL1() { + java.lang.Object ref = productTypeL1_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL1_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 11; + * + * @return The bytes for productTypeL1. + */ + public com.google.protobuf.ByteString getProductTypeL1Bytes() { + java.lang.Object ref = productTypeL1_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 11; + * + * @param value The productTypeL1 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL1(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL1_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 11; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL1() { + productTypeL1_ = getDefaultInstance().getProductTypeL1(); + bitField0_ = (bitField0_ & ~0x00000400); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 11; + * + * @param value The bytes for productTypeL1 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL1Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL1_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + private java.lang.Object productTypeL2_ = ""; + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 12; + * + * @return Whether the productTypeL2 field is set. + */ + public boolean hasProductTypeL2() { + return ((bitField0_ & 0x00000800) != 0); + } + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 12; + * + * @return The productTypeL2. + */ + public java.lang.String getProductTypeL2() { + java.lang.Object ref = productTypeL2_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL2_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 12; + * + * @return The bytes for productTypeL2. + */ + public com.google.protobuf.ByteString getProductTypeL2Bytes() { + java.lang.Object ref = productTypeL2_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 12; + * + * @param value The productTypeL2 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL2(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL2_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 12; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL2() { + productTypeL2_ = getDefaultInstance().getProductTypeL2(); + bitField0_ = (bitField0_ & ~0x00000800); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 12; + * + * @param value The bytes for productTypeL2 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL2Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL2_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + private java.lang.Object productTypeL3_ = ""; + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 13; + * + * @return Whether the productTypeL3 field is set. + */ + public boolean hasProductTypeL3() { + return ((bitField0_ & 0x00001000) != 0); + } + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 13; + * + * @return The productTypeL3. + */ + public java.lang.String getProductTypeL3() { + java.lang.Object ref = productTypeL3_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL3_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 13; + * + * @return The bytes for productTypeL3. + */ + public com.google.protobuf.ByteString getProductTypeL3Bytes() { + java.lang.Object ref = productTypeL3_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 13; + * + * @param value The productTypeL3 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL3(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL3_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 13; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL3() { + productTypeL3_ = getDefaultInstance().getProductTypeL3(); + bitField0_ = (bitField0_ & ~0x00001000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 13; + * + * @param value The bytes for productTypeL3 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL3Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL3_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + private java.lang.Object productTypeL4_ = ""; + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 14; + * + * @return Whether the productTypeL4 field is set. + */ + public boolean hasProductTypeL4() { + return ((bitField0_ & 0x00002000) != 0); + } + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 14; + * + * @return The productTypeL4. + */ + public java.lang.String getProductTypeL4() { + java.lang.Object ref = productTypeL4_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL4_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 14; + * + * @return The bytes for productTypeL4. + */ + public com.google.protobuf.ByteString getProductTypeL4Bytes() { + java.lang.Object ref = productTypeL4_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 14; + * + * @param value The productTypeL4 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL4(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL4_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 14; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL4() { + productTypeL4_ = getDefaultInstance().getProductTypeL4(); + bitField0_ = (bitField0_ & ~0x00002000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 14; + * + * @param value The bytes for productTypeL4 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL4Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL4_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + + private java.lang.Object productTypeL5_ = ""; + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 15; + * + * @return Whether the productTypeL5 field is set. + */ + public boolean hasProductTypeL5() { + return ((bitField0_ & 0x00004000) != 0); + } + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 15; + * + * @return The productTypeL5. + */ + public java.lang.String getProductTypeL5() { + java.lang.Object ref = productTypeL5_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL5_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 15; + * + * @return The bytes for productTypeL5. + */ + public com.google.protobuf.ByteString getProductTypeL5Bytes() { + java.lang.Object ref = productTypeL5_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 15; + * + * @param value The productTypeL5 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL5(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL5_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 15; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL5() { + productTypeL5_ = getDefaultInstance().getProductTypeL5(); + bitField0_ = (bitField0_ & ~0x00004000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 15; + * + * @param value The bytes for productTypeL5 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL5Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL5_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + + private com.google.shopping.type.Price price_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + priceBuilder_; + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 16; + * + * @return Whether the price field is set. + */ + public boolean hasPrice() { + return ((bitField0_ & 0x00008000) != 0); + } + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 16; + * + * @return The price. + */ + public com.google.shopping.type.Price getPrice() { + if (priceBuilder_ == null) { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } else { + return priceBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 16; + */ + public Builder setPrice(com.google.shopping.type.Price value) { + if (priceBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + price_ = value; + } else { + priceBuilder_.setMessage(value); + } + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 16; + */ + public Builder setPrice(com.google.shopping.type.Price.Builder builderForValue) { + if (priceBuilder_ == null) { + price_ = builderForValue.build(); + } else { + priceBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 16; + */ + public Builder mergePrice(com.google.shopping.type.Price value) { + if (priceBuilder_ == null) { + if (((bitField0_ & 0x00008000) != 0) + && price_ != null + && price_ != com.google.shopping.type.Price.getDefaultInstance()) { + getPriceBuilder().mergeFrom(value); + } else { + price_ = value; + } + } else { + priceBuilder_.mergeFrom(value); + } + if (price_ != null) { + bitField0_ |= 0x00008000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 16; + */ + public Builder clearPrice() { + bitField0_ = (bitField0_ & ~0x00008000); + price_ = null; + if (priceBuilder_ != null) { + priceBuilder_.dispose(); + priceBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 16; + */ + public com.google.shopping.type.Price.Builder getPriceBuilder() { + bitField0_ |= 0x00008000; + onChanged(); + return getPriceFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 16; + */ + public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() { + if (priceBuilder_ != null) { + return priceBuilder_.getMessageOrBuilder(); + } else { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } + } + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 16; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + getPriceFieldBuilder() { + if (priceBuilder_ == null) { + priceBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getPrice(), getParentForChildren(), isClean()); + price_ = null; + } + return priceBuilder_; + } + + private com.google.shopping.type.Price benchmarkPrice_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + benchmarkPriceBuilder_; + + /** + * + * + *
+     * Latest available price benchmark for the product's catalog in the benchmark
+     * country.
+     * 
+ * + * .google.shopping.type.Price benchmark_price = 17; + * + * @return Whether the benchmarkPrice field is set. + */ + public boolean hasBenchmarkPrice() { + return ((bitField0_ & 0x00010000) != 0); + } + + /** + * + * + *
+     * Latest available price benchmark for the product's catalog in the benchmark
+     * country.
+     * 
+ * + * .google.shopping.type.Price benchmark_price = 17; + * + * @return The benchmarkPrice. + */ + public com.google.shopping.type.Price getBenchmarkPrice() { + if (benchmarkPriceBuilder_ == null) { + return benchmarkPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : benchmarkPrice_; + } else { + return benchmarkPriceBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Latest available price benchmark for the product's catalog in the benchmark
+     * country.
+     * 
+ * + * .google.shopping.type.Price benchmark_price = 17; + */ + public Builder setBenchmarkPrice(com.google.shopping.type.Price value) { + if (benchmarkPriceBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + benchmarkPrice_ = value; + } else { + benchmarkPriceBuilder_.setMessage(value); + } + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Latest available price benchmark for the product's catalog in the benchmark
+     * country.
+     * 
+ * + * .google.shopping.type.Price benchmark_price = 17; + */ + public Builder setBenchmarkPrice(com.google.shopping.type.Price.Builder builderForValue) { + if (benchmarkPriceBuilder_ == null) { + benchmarkPrice_ = builderForValue.build(); + } else { + benchmarkPriceBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Latest available price benchmark for the product's catalog in the benchmark
+     * country.
+     * 
+ * + * .google.shopping.type.Price benchmark_price = 17; + */ + public Builder mergeBenchmarkPrice(com.google.shopping.type.Price value) { + if (benchmarkPriceBuilder_ == null) { + if (((bitField0_ & 0x00010000) != 0) + && benchmarkPrice_ != null + && benchmarkPrice_ != com.google.shopping.type.Price.getDefaultInstance()) { + getBenchmarkPriceBuilder().mergeFrom(value); + } else { + benchmarkPrice_ = value; + } + } else { + benchmarkPriceBuilder_.mergeFrom(value); + } + if (benchmarkPrice_ != null) { + bitField0_ |= 0x00010000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Latest available price benchmark for the product's catalog in the benchmark
+     * country.
+     * 
+ * + * .google.shopping.type.Price benchmark_price = 17; + */ + public Builder clearBenchmarkPrice() { + bitField0_ = (bitField0_ & ~0x00010000); + benchmarkPrice_ = null; + if (benchmarkPriceBuilder_ != null) { + benchmarkPriceBuilder_.dispose(); + benchmarkPriceBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Latest available price benchmark for the product's catalog in the benchmark
+     * country.
+     * 
+ * + * .google.shopping.type.Price benchmark_price = 17; + */ + public com.google.shopping.type.Price.Builder getBenchmarkPriceBuilder() { + bitField0_ |= 0x00010000; + onChanged(); + return getBenchmarkPriceFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Latest available price benchmark for the product's catalog in the benchmark
+     * country.
+     * 
+ * + * .google.shopping.type.Price benchmark_price = 17; + */ + public com.google.shopping.type.PriceOrBuilder getBenchmarkPriceOrBuilder() { + if (benchmarkPriceBuilder_ != null) { + return benchmarkPriceBuilder_.getMessageOrBuilder(); + } else { + return benchmarkPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : benchmarkPrice_; + } + } + + /** + * + * + *
+     * Latest available price benchmark for the product's catalog in the benchmark
+     * country.
+     * 
+ * + * .google.shopping.type.Price benchmark_price = 17; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + getBenchmarkPriceFieldBuilder() { + if (benchmarkPriceBuilder_ == null) { + benchmarkPriceBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getBenchmarkPrice(), getParentForChildren(), isClean()); + benchmarkPrice_ = null; + } + return benchmarkPriceBuilder_; + } + + @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.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView) + private static final com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView(); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PriceCompetitivenessProductView parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceCompetitivenessProductViewOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceCompetitivenessProductViewOrBuilder.java new file mode 100644 index 000000000000..a27baead8bdd --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceCompetitivenessProductViewOrBuilder.java @@ -0,0 +1,736 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface PriceCompetitivenessProductViewOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Country of the price benchmark. Represented in the ISO 3166 format.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string report_country_code = 1; + * + * @return Whether the reportCountryCode field is set. + */ + boolean hasReportCountryCode(); + + /** + * + * + *
+   * Country of the price benchmark. Represented in the ISO 3166 format.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string report_country_code = 1; + * + * @return The reportCountryCode. + */ + java.lang.String getReportCountryCode(); + + /** + * + * + *
+   * Country of the price benchmark. Represented in the ISO 3166 format.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string report_country_code = 1; + * + * @return The bytes for reportCountryCode. + */ + com.google.protobuf.ByteString getReportCountryCodeBytes(); + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+   * `product_view` table.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 2; + * + * @return Whether the id field is set. + */ + boolean hasId(); + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+   * `product_view` table.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 2; + * + * @return The id. + */ + java.lang.String getId(); + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+   * `product_view` table.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 2; + * + * @return The bytes for id. + */ + com.google.protobuf.ByteString getIdBytes(); + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 3; + * + * @return Whether the offerId field is set. + */ + boolean hasOfferId(); + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 3; + * + * @return The offerId. + */ + java.lang.String getOfferId(); + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 3; + * + * @return The bytes for offerId. + */ + com.google.protobuf.ByteString getOfferIdBytes(); + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 4; + * + * @return Whether the title field is set. + */ + boolean hasTitle(); + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 4; + * + * @return The title. + */ + java.lang.String getTitle(); + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 4; + * + * @return The bytes for title. + */ + com.google.protobuf.ByteString getTitleBytes(); + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 5; + * + * @return Whether the brand field is set. + */ + boolean hasBrand(); + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 5; + * + * @return The brand. + */ + java.lang.String getBrand(); + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 5; + * + * @return The bytes for brand. + */ + com.google.protobuf.ByteString getBrandBytes(); + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 6; + * + * @return Whether the categoryL1 field is set. + */ + boolean hasCategoryL1(); + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 6; + * + * @return The categoryL1. + */ + java.lang.String getCategoryL1(); + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 6; + * + * @return The bytes for categoryL1. + */ + com.google.protobuf.ByteString getCategoryL1Bytes(); + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 7; + * + * @return Whether the categoryL2 field is set. + */ + boolean hasCategoryL2(); + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 7; + * + * @return The categoryL2. + */ + java.lang.String getCategoryL2(); + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 7; + * + * @return The bytes for categoryL2. + */ + com.google.protobuf.ByteString getCategoryL2Bytes(); + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 8; + * + * @return Whether the categoryL3 field is set. + */ + boolean hasCategoryL3(); + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 8; + * + * @return The categoryL3. + */ + java.lang.String getCategoryL3(); + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 8; + * + * @return The bytes for categoryL3. + */ + com.google.protobuf.ByteString getCategoryL3Bytes(); + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 9; + * + * @return Whether the categoryL4 field is set. + */ + boolean hasCategoryL4(); + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 9; + * + * @return The categoryL4. + */ + java.lang.String getCategoryL4(); + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 9; + * + * @return The bytes for categoryL4. + */ + com.google.protobuf.ByteString getCategoryL4Bytes(); + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 10; + * + * @return Whether the categoryL5 field is set. + */ + boolean hasCategoryL5(); + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 10; + * + * @return The categoryL5. + */ + java.lang.String getCategoryL5(); + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 10; + * + * @return The bytes for categoryL5. + */ + com.google.protobuf.ByteString getCategoryL5Bytes(); + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 11; + * + * @return Whether the productTypeL1 field is set. + */ + boolean hasProductTypeL1(); + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 11; + * + * @return The productTypeL1. + */ + java.lang.String getProductTypeL1(); + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 11; + * + * @return The bytes for productTypeL1. + */ + com.google.protobuf.ByteString getProductTypeL1Bytes(); + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 12; + * + * @return Whether the productTypeL2 field is set. + */ + boolean hasProductTypeL2(); + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 12; + * + * @return The productTypeL2. + */ + java.lang.String getProductTypeL2(); + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 12; + * + * @return The bytes for productTypeL2. + */ + com.google.protobuf.ByteString getProductTypeL2Bytes(); + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 13; + * + * @return Whether the productTypeL3 field is set. + */ + boolean hasProductTypeL3(); + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 13; + * + * @return The productTypeL3. + */ + java.lang.String getProductTypeL3(); + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 13; + * + * @return The bytes for productTypeL3. + */ + com.google.protobuf.ByteString getProductTypeL3Bytes(); + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 14; + * + * @return Whether the productTypeL4 field is set. + */ + boolean hasProductTypeL4(); + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 14; + * + * @return The productTypeL4. + */ + java.lang.String getProductTypeL4(); + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 14; + * + * @return The bytes for productTypeL4. + */ + com.google.protobuf.ByteString getProductTypeL4Bytes(); + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 15; + * + * @return Whether the productTypeL5 field is set. + */ + boolean hasProductTypeL5(); + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 15; + * + * @return The productTypeL5. + */ + java.lang.String getProductTypeL5(); + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 15; + * + * @return The bytes for productTypeL5. + */ + com.google.protobuf.ByteString getProductTypeL5Bytes(); + + /** + * + * + *
+   * Current price of the product.
+   * 
+ * + * .google.shopping.type.Price price = 16; + * + * @return Whether the price field is set. + */ + boolean hasPrice(); + + /** + * + * + *
+   * Current price of the product.
+   * 
+ * + * .google.shopping.type.Price price = 16; + * + * @return The price. + */ + com.google.shopping.type.Price getPrice(); + + /** + * + * + *
+   * Current price of the product.
+   * 
+ * + * .google.shopping.type.Price price = 16; + */ + com.google.shopping.type.PriceOrBuilder getPriceOrBuilder(); + + /** + * + * + *
+   * Latest available price benchmark for the product's catalog in the benchmark
+   * country.
+   * 
+ * + * .google.shopping.type.Price benchmark_price = 17; + * + * @return Whether the benchmarkPrice field is set. + */ + boolean hasBenchmarkPrice(); + + /** + * + * + *
+   * Latest available price benchmark for the product's catalog in the benchmark
+   * country.
+   * 
+ * + * .google.shopping.type.Price benchmark_price = 17; + * + * @return The benchmarkPrice. + */ + com.google.shopping.type.Price getBenchmarkPrice(); + + /** + * + * + *
+   * Latest available price benchmark for the product's catalog in the benchmark
+   * country.
+   * 
+ * + * .google.shopping.type.Price benchmark_price = 17; + */ + com.google.shopping.type.PriceOrBuilder getBenchmarkPriceOrBuilder(); +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceInsightsProductView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceInsightsProductView.java new file mode 100644 index 000000000000..8e98ee223565 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceInsightsProductView.java @@ -0,0 +1,5165 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Fields available for query in `price_insights_product_view` table.
+ *
+ * [Price insights](https://support.google.com/merchants/answer/11916926)
+ * report.
+ *
+ * Values are only set for fields requested explicitly in the request's search
+ * query.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.PriceInsightsProductView} + */ +public final class PriceInsightsProductView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.PriceInsightsProductView) + PriceInsightsProductViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use PriceInsightsProductView.newBuilder() to construct. + private PriceInsightsProductView(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private PriceInsightsProductView() { + id_ = ""; + offerId_ = ""; + title_ = ""; + brand_ = ""; + categoryL1_ = ""; + categoryL2_ = ""; + categoryL3_ = ""; + categoryL4_ = ""; + categoryL5_ = ""; + productTypeL1_ = ""; + productTypeL2_ = ""; + productTypeL3_ = ""; + productTypeL4_ = ""; + productTypeL5_ = ""; + effectiveness_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new PriceInsightsProductView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_PriceInsightsProductView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_PriceInsightsProductView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.class, + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Builder.class); + } + + /** + * + * + *
+   * Predicted effectiveness bucket.
+   *
+   * Effectiveness indicates which products would benefit most from price
+   * changes. This rating takes into consideration the performance boost
+   * predicted by adjusting the sale price and the difference between your
+   * current price and the suggested price. Price suggestions with `HIGH`
+   * effectiveness are predicted to drive the largest increase in performance.
+   * 
+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness} + */ + public enum Effectiveness implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Effectiveness is unknown.
+     * 
+ * + * EFFECTIVENESS_UNSPECIFIED = 0; + */ + EFFECTIVENESS_UNSPECIFIED(0), + /** + * + * + *
+     * Effectiveness is low.
+     * 
+ * + * LOW = 1; + */ + LOW(1), + /** + * + * + *
+     * Effectiveness is medium.
+     * 
+ * + * MEDIUM = 2; + */ + MEDIUM(2), + /** + * + * + *
+     * Effectiveness is high.
+     * 
+ * + * HIGH = 3; + */ + HIGH(3), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+     * Effectiveness is unknown.
+     * 
+ * + * EFFECTIVENESS_UNSPECIFIED = 0; + */ + public static final int EFFECTIVENESS_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+     * Effectiveness is low.
+     * 
+ * + * LOW = 1; + */ + public static final int LOW_VALUE = 1; + + /** + * + * + *
+     * Effectiveness is medium.
+     * 
+ * + * MEDIUM = 2; + */ + public static final int MEDIUM_VALUE = 2; + + /** + * + * + *
+     * Effectiveness is high.
+     * 
+ * + * HIGH = 3; + */ + public static final int HIGH_VALUE = 3; + + 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 Effectiveness 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 Effectiveness forNumber(int value) { + switch (value) { + case 0: + return EFFECTIVENESS_UNSPECIFIED; + case 1: + return LOW; + case 2: + return MEDIUM; + case 3: + return HIGH; + 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 Effectiveness findValueByNumber(int number) { + return Effectiveness.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.shopping.merchant.reports.v1alpha.PriceInsightsProductView.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final Effectiveness[] VALUES = values(); + + public static Effectiveness 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 Effectiveness(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness) + } + + private int bitField0_; + public static final int ID_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object id_ = ""; + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+   * `product_view` table.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 1; + * + * @return Whether the id field is set. + */ + @java.lang.Override + public boolean hasId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+   * `product_view` table.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 1; + * + * @return The id. + */ + @java.lang.Override + public java.lang.String getId() { + java.lang.Object ref = id_; + 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(); + id_ = s; + return s; + } + } + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+   * `product_view` table.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 1; + * + * @return The bytes for id. + */ + @java.lang.Override + public com.google.protobuf.ByteString getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int OFFER_ID_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object offerId_ = ""; + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 2; + * + * @return Whether the offerId field is set. + */ + @java.lang.Override + public boolean hasOfferId() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 2; + * + * @return The offerId. + */ + @java.lang.Override + public java.lang.String getOfferId() { + java.lang.Object ref = offerId_; + 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(); + offerId_ = s; + return s; + } + } + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 2; + * + * @return The bytes for offerId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getOfferIdBytes() { + java.lang.Object ref = offerId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + offerId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TITLE_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object title_ = ""; + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 3; + * + * @return Whether the title field is set. + */ + @java.lang.Override + public boolean hasTitle() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 3; + * + * @return The title. + */ + @java.lang.Override + public java.lang.String getTitle() { + java.lang.Object ref = title_; + 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(); + title_ = s; + return s; + } + } + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 3; + * + * @return The bytes for title. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BRAND_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object brand_ = ""; + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 4; + * + * @return Whether the brand field is set. + */ + @java.lang.Override + public boolean hasBrand() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 4; + * + * @return The brand. + */ + @java.lang.Override + public java.lang.String getBrand() { + java.lang.Object ref = brand_; + 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(); + brand_ = s; + return s; + } + } + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 4; + * + * @return The bytes for brand. + */ + @java.lang.Override + public com.google.protobuf.ByteString getBrandBytes() { + java.lang.Object ref = brand_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + brand_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L1_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL1_ = ""; + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 5; + * + * @return Whether the categoryL1 field is set. + */ + @java.lang.Override + public boolean hasCategoryL1() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 5; + * + * @return The categoryL1. + */ + @java.lang.Override + public java.lang.String getCategoryL1() { + java.lang.Object ref = categoryL1_; + 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(); + categoryL1_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 5; + * + * @return The bytes for categoryL1. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL1Bytes() { + java.lang.Object ref = categoryL1_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L2_FIELD_NUMBER = 6; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL2_ = ""; + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 6; + * + * @return Whether the categoryL2 field is set. + */ + @java.lang.Override + public boolean hasCategoryL2() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 6; + * + * @return The categoryL2. + */ + @java.lang.Override + public java.lang.String getCategoryL2() { + java.lang.Object ref = categoryL2_; + 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(); + categoryL2_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 6; + * + * @return The bytes for categoryL2. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL2Bytes() { + java.lang.Object ref = categoryL2_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L3_FIELD_NUMBER = 7; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL3_ = ""; + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 7; + * + * @return Whether the categoryL3 field is set. + */ + @java.lang.Override + public boolean hasCategoryL3() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 7; + * + * @return The categoryL3. + */ + @java.lang.Override + public java.lang.String getCategoryL3() { + java.lang.Object ref = categoryL3_; + 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(); + categoryL3_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 7; + * + * @return The bytes for categoryL3. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL3Bytes() { + java.lang.Object ref = categoryL3_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L4_FIELD_NUMBER = 8; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL4_ = ""; + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 8; + * + * @return Whether the categoryL4 field is set. + */ + @java.lang.Override + public boolean hasCategoryL4() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 8; + * + * @return The categoryL4. + */ + @java.lang.Override + public java.lang.String getCategoryL4() { + java.lang.Object ref = categoryL4_; + 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(); + categoryL4_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 8; + * + * @return The bytes for categoryL4. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL4Bytes() { + java.lang.Object ref = categoryL4_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L5_FIELD_NUMBER = 9; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL5_ = ""; + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 9; + * + * @return Whether the categoryL5 field is set. + */ + @java.lang.Override + public boolean hasCategoryL5() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 9; + * + * @return The categoryL5. + */ + @java.lang.Override + public java.lang.String getCategoryL5() { + java.lang.Object ref = categoryL5_; + 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(); + categoryL5_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 9; + * + * @return The bytes for categoryL5. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL5Bytes() { + java.lang.Object ref = categoryL5_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L1_FIELD_NUMBER = 10; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL1_ = ""; + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 10; + * + * @return Whether the productTypeL1 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL1() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 10; + * + * @return The productTypeL1. + */ + @java.lang.Override + public java.lang.String getProductTypeL1() { + java.lang.Object ref = productTypeL1_; + 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(); + productTypeL1_ = s; + return s; + } + } + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 10; + * + * @return The bytes for productTypeL1. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL1Bytes() { + java.lang.Object ref = productTypeL1_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L2_FIELD_NUMBER = 11; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL2_ = ""; + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 11; + * + * @return Whether the productTypeL2 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL2() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 11; + * + * @return The productTypeL2. + */ + @java.lang.Override + public java.lang.String getProductTypeL2() { + java.lang.Object ref = productTypeL2_; + 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(); + productTypeL2_ = s; + return s; + } + } + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 11; + * + * @return The bytes for productTypeL2. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL2Bytes() { + java.lang.Object ref = productTypeL2_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L3_FIELD_NUMBER = 12; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL3_ = ""; + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 12; + * + * @return Whether the productTypeL3 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL3() { + return ((bitField0_ & 0x00000800) != 0); + } + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 12; + * + * @return The productTypeL3. + */ + @java.lang.Override + public java.lang.String getProductTypeL3() { + java.lang.Object ref = productTypeL3_; + 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(); + productTypeL3_ = s; + return s; + } + } + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 12; + * + * @return The bytes for productTypeL3. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL3Bytes() { + java.lang.Object ref = productTypeL3_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L4_FIELD_NUMBER = 13; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL4_ = ""; + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 13; + * + * @return Whether the productTypeL4 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL4() { + return ((bitField0_ & 0x00001000) != 0); + } + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 13; + * + * @return The productTypeL4. + */ + @java.lang.Override + public java.lang.String getProductTypeL4() { + java.lang.Object ref = productTypeL4_; + 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(); + productTypeL4_ = s; + return s; + } + } + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 13; + * + * @return The bytes for productTypeL4. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL4Bytes() { + java.lang.Object ref = productTypeL4_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L5_FIELD_NUMBER = 14; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL5_ = ""; + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 14; + * + * @return Whether the productTypeL5 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL5() { + return ((bitField0_ & 0x00002000) != 0); + } + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 14; + * + * @return The productTypeL5. + */ + @java.lang.Override + public java.lang.String getProductTypeL5() { + java.lang.Object ref = productTypeL5_; + 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(); + productTypeL5_ = s; + return s; + } + } + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 14; + * + * @return The bytes for productTypeL5. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL5Bytes() { + java.lang.Object ref = productTypeL5_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRICE_FIELD_NUMBER = 15; + private com.google.shopping.type.Price price_; + + /** + * + * + *
+   * Current price of the product.
+   * 
+ * + * .google.shopping.type.Price price = 15; + * + * @return Whether the price field is set. + */ + @java.lang.Override + public boolean hasPrice() { + return ((bitField0_ & 0x00004000) != 0); + } + + /** + * + * + *
+   * Current price of the product.
+   * 
+ * + * .google.shopping.type.Price price = 15; + * + * @return The price. + */ + @java.lang.Override + public com.google.shopping.type.Price getPrice() { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } + + /** + * + * + *
+   * Current price of the product.
+   * 
+ * + * .google.shopping.type.Price price = 15; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } + + public static final int SUGGESTED_PRICE_FIELD_NUMBER = 16; + private com.google.shopping.type.Price suggestedPrice_; + + /** + * + * + *
+   * Latest suggested price for the product.
+   * 
+ * + * .google.shopping.type.Price suggested_price = 16; + * + * @return Whether the suggestedPrice field is set. + */ + @java.lang.Override + public boolean hasSuggestedPrice() { + return ((bitField0_ & 0x00008000) != 0); + } + + /** + * + * + *
+   * Latest suggested price for the product.
+   * 
+ * + * .google.shopping.type.Price suggested_price = 16; + * + * @return The suggestedPrice. + */ + @java.lang.Override + public com.google.shopping.type.Price getSuggestedPrice() { + return suggestedPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : suggestedPrice_; + } + + /** + * + * + *
+   * Latest suggested price for the product.
+   * 
+ * + * .google.shopping.type.Price suggested_price = 16; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getSuggestedPriceOrBuilder() { + return suggestedPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : suggestedPrice_; + } + + public static final int PREDICTED_IMPRESSIONS_CHANGE_FRACTION_FIELD_NUMBER = 17; + private double predictedImpressionsChangeFraction_ = 0D; + + /** + * + * + *
+   * Predicted change in impressions as a fraction after introducing the
+   * suggested price compared to current active price. For example, 0.05 is a 5%
+   * predicted increase in impressions.
+   * 
+ * + * optional double predicted_impressions_change_fraction = 17; + * + * @return Whether the predictedImpressionsChangeFraction field is set. + */ + @java.lang.Override + public boolean hasPredictedImpressionsChangeFraction() { + return ((bitField0_ & 0x00010000) != 0); + } + + /** + * + * + *
+   * Predicted change in impressions as a fraction after introducing the
+   * suggested price compared to current active price. For example, 0.05 is a 5%
+   * predicted increase in impressions.
+   * 
+ * + * optional double predicted_impressions_change_fraction = 17; + * + * @return The predictedImpressionsChangeFraction. + */ + @java.lang.Override + public double getPredictedImpressionsChangeFraction() { + return predictedImpressionsChangeFraction_; + } + + public static final int PREDICTED_CLICKS_CHANGE_FRACTION_FIELD_NUMBER = 18; + private double predictedClicksChangeFraction_ = 0D; + + /** + * + * + *
+   * Predicted change in clicks as a fraction after introducing the
+   * suggested price compared to current active price. For example, 0.05 is a 5%
+   * predicted increase in clicks.
+   * 
+ * + * optional double predicted_clicks_change_fraction = 18; + * + * @return Whether the predictedClicksChangeFraction field is set. + */ + @java.lang.Override + public boolean hasPredictedClicksChangeFraction() { + return ((bitField0_ & 0x00020000) != 0); + } + + /** + * + * + *
+   * Predicted change in clicks as a fraction after introducing the
+   * suggested price compared to current active price. For example, 0.05 is a 5%
+   * predicted increase in clicks.
+   * 
+ * + * optional double predicted_clicks_change_fraction = 18; + * + * @return The predictedClicksChangeFraction. + */ + @java.lang.Override + public double getPredictedClicksChangeFraction() { + return predictedClicksChangeFraction_; + } + + public static final int PREDICTED_CONVERSIONS_CHANGE_FRACTION_FIELD_NUMBER = 19; + private double predictedConversionsChangeFraction_ = 0D; + + /** + * + * + *
+   * Predicted change in conversions as a fraction after introducing the
+   * suggested price compared to current active price. For example, 0.05 is a 5%
+   * predicted increase in conversions).
+   * 
+ * + * optional double predicted_conversions_change_fraction = 19; + * + * @return Whether the predictedConversionsChangeFraction field is set. + */ + @java.lang.Override + public boolean hasPredictedConversionsChangeFraction() { + return ((bitField0_ & 0x00040000) != 0); + } + + /** + * + * + *
+   * Predicted change in conversions as a fraction after introducing the
+   * suggested price compared to current active price. For example, 0.05 is a 5%
+   * predicted increase in conversions).
+   * 
+ * + * optional double predicted_conversions_change_fraction = 19; + * + * @return The predictedConversionsChangeFraction. + */ + @java.lang.Override + public double getPredictedConversionsChangeFraction() { + return predictedConversionsChangeFraction_; + } + + public static final int EFFECTIVENESS_FIELD_NUMBER = 22; + private int effectiveness_ = 0; + + /** + * + * + *
+   * The predicted effectiveness of applying the price suggestion, bucketed.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22; + * + * + * @return The enum numeric value on the wire for effectiveness. + */ + @java.lang.Override + public int getEffectivenessValue() { + return effectiveness_; + } + + /** + * + * + *
+   * The predicted effectiveness of applying the price suggestion, bucketed.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22; + * + * + * @return The effectiveness. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness + getEffectiveness() { + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness result = + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness + .forNumber(effectiveness_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness + .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 (((bitField0_ & 0x00000001) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); + } + if (((bitField0_ & 0x00000002) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, offerId_); + } + if (((bitField0_ & 0x00000004) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, title_); + } + if (((bitField0_ & 0x00000008) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, brand_); + } + if (((bitField0_ & 0x00000010) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, categoryL1_); + } + if (((bitField0_ & 0x00000020) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, categoryL2_); + } + if (((bitField0_ & 0x00000040) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, categoryL3_); + } + if (((bitField0_ & 0x00000080) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 8, categoryL4_); + } + if (((bitField0_ & 0x00000100) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 9, categoryL5_); + } + if (((bitField0_ & 0x00000200) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 10, productTypeL1_); + } + if (((bitField0_ & 0x00000400) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 11, productTypeL2_); + } + if (((bitField0_ & 0x00000800) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 12, productTypeL3_); + } + if (((bitField0_ & 0x00001000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 13, productTypeL4_); + } + if (((bitField0_ & 0x00002000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 14, productTypeL5_); + } + if (((bitField0_ & 0x00004000) != 0)) { + output.writeMessage(15, getPrice()); + } + if (((bitField0_ & 0x00008000) != 0)) { + output.writeMessage(16, getSuggestedPrice()); + } + if (((bitField0_ & 0x00010000) != 0)) { + output.writeDouble(17, predictedImpressionsChangeFraction_); + } + if (((bitField0_ & 0x00020000) != 0)) { + output.writeDouble(18, predictedClicksChangeFraction_); + } + if (((bitField0_ & 0x00040000) != 0)) { + output.writeDouble(19, predictedConversionsChangeFraction_); + } + if (effectiveness_ + != com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness + .EFFECTIVENESS_UNSPECIFIED + .getNumber()) { + output.writeEnum(22, effectiveness_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, offerId_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, title_); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, brand_); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, categoryL1_); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, categoryL2_); + } + if (((bitField0_ & 0x00000040) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, categoryL3_); + } + if (((bitField0_ & 0x00000080) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, categoryL4_); + } + if (((bitField0_ & 0x00000100) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, categoryL5_); + } + if (((bitField0_ & 0x00000200) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, productTypeL1_); + } + if (((bitField0_ & 0x00000400) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, productTypeL2_); + } + if (((bitField0_ & 0x00000800) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, productTypeL3_); + } + if (((bitField0_ & 0x00001000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, productTypeL4_); + } + if (((bitField0_ & 0x00002000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, productTypeL5_); + } + if (((bitField0_ & 0x00004000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(15, getPrice()); + } + if (((bitField0_ & 0x00008000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(16, getSuggestedPrice()); + } + if (((bitField0_ & 0x00010000) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeDoubleSize( + 17, predictedImpressionsChangeFraction_); + } + if (((bitField0_ & 0x00020000) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeDoubleSize( + 18, predictedClicksChangeFraction_); + } + if (((bitField0_ & 0x00040000) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeDoubleSize( + 19, predictedConversionsChangeFraction_); + } + if (effectiveness_ + != com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness + .EFFECTIVENESS_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(22, effectiveness_); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.PriceInsightsProductView)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView other = + (com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView) obj; + + if (hasId() != other.hasId()) return false; + if (hasId()) { + if (!getId().equals(other.getId())) return false; + } + if (hasOfferId() != other.hasOfferId()) return false; + if (hasOfferId()) { + if (!getOfferId().equals(other.getOfferId())) return false; + } + if (hasTitle() != other.hasTitle()) return false; + if (hasTitle()) { + if (!getTitle().equals(other.getTitle())) return false; + } + if (hasBrand() != other.hasBrand()) return false; + if (hasBrand()) { + if (!getBrand().equals(other.getBrand())) return false; + } + if (hasCategoryL1() != other.hasCategoryL1()) return false; + if (hasCategoryL1()) { + if (!getCategoryL1().equals(other.getCategoryL1())) return false; + } + if (hasCategoryL2() != other.hasCategoryL2()) return false; + if (hasCategoryL2()) { + if (!getCategoryL2().equals(other.getCategoryL2())) return false; + } + if (hasCategoryL3() != other.hasCategoryL3()) return false; + if (hasCategoryL3()) { + if (!getCategoryL3().equals(other.getCategoryL3())) return false; + } + if (hasCategoryL4() != other.hasCategoryL4()) return false; + if (hasCategoryL4()) { + if (!getCategoryL4().equals(other.getCategoryL4())) return false; + } + if (hasCategoryL5() != other.hasCategoryL5()) return false; + if (hasCategoryL5()) { + if (!getCategoryL5().equals(other.getCategoryL5())) return false; + } + if (hasProductTypeL1() != other.hasProductTypeL1()) return false; + if (hasProductTypeL1()) { + if (!getProductTypeL1().equals(other.getProductTypeL1())) return false; + } + if (hasProductTypeL2() != other.hasProductTypeL2()) return false; + if (hasProductTypeL2()) { + if (!getProductTypeL2().equals(other.getProductTypeL2())) return false; + } + if (hasProductTypeL3() != other.hasProductTypeL3()) return false; + if (hasProductTypeL3()) { + if (!getProductTypeL3().equals(other.getProductTypeL3())) return false; + } + if (hasProductTypeL4() != other.hasProductTypeL4()) return false; + if (hasProductTypeL4()) { + if (!getProductTypeL4().equals(other.getProductTypeL4())) return false; + } + if (hasProductTypeL5() != other.hasProductTypeL5()) return false; + if (hasProductTypeL5()) { + if (!getProductTypeL5().equals(other.getProductTypeL5())) return false; + } + if (hasPrice() != other.hasPrice()) return false; + if (hasPrice()) { + if (!getPrice().equals(other.getPrice())) return false; + } + if (hasSuggestedPrice() != other.hasSuggestedPrice()) return false; + if (hasSuggestedPrice()) { + if (!getSuggestedPrice().equals(other.getSuggestedPrice())) return false; + } + if (hasPredictedImpressionsChangeFraction() != other.hasPredictedImpressionsChangeFraction()) + return false; + if (hasPredictedImpressionsChangeFraction()) { + if (java.lang.Double.doubleToLongBits(getPredictedImpressionsChangeFraction()) + != java.lang.Double.doubleToLongBits(other.getPredictedImpressionsChangeFraction())) + return false; + } + if (hasPredictedClicksChangeFraction() != other.hasPredictedClicksChangeFraction()) + return false; + if (hasPredictedClicksChangeFraction()) { + if (java.lang.Double.doubleToLongBits(getPredictedClicksChangeFraction()) + != java.lang.Double.doubleToLongBits(other.getPredictedClicksChangeFraction())) + return false; + } + if (hasPredictedConversionsChangeFraction() != other.hasPredictedConversionsChangeFraction()) + return false; + if (hasPredictedConversionsChangeFraction()) { + if (java.lang.Double.doubleToLongBits(getPredictedConversionsChangeFraction()) + != java.lang.Double.doubleToLongBits(other.getPredictedConversionsChangeFraction())) + return false; + } + if (effectiveness_ != other.effectiveness_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasId()) { + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId().hashCode(); + } + if (hasOfferId()) { + hash = (37 * hash) + OFFER_ID_FIELD_NUMBER; + hash = (53 * hash) + getOfferId().hashCode(); + } + if (hasTitle()) { + hash = (37 * hash) + TITLE_FIELD_NUMBER; + hash = (53 * hash) + getTitle().hashCode(); + } + if (hasBrand()) { + hash = (37 * hash) + BRAND_FIELD_NUMBER; + hash = (53 * hash) + getBrand().hashCode(); + } + if (hasCategoryL1()) { + hash = (37 * hash) + CATEGORY_L1_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL1().hashCode(); + } + if (hasCategoryL2()) { + hash = (37 * hash) + CATEGORY_L2_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL2().hashCode(); + } + if (hasCategoryL3()) { + hash = (37 * hash) + CATEGORY_L3_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL3().hashCode(); + } + if (hasCategoryL4()) { + hash = (37 * hash) + CATEGORY_L4_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL4().hashCode(); + } + if (hasCategoryL5()) { + hash = (37 * hash) + CATEGORY_L5_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL5().hashCode(); + } + if (hasProductTypeL1()) { + hash = (37 * hash) + PRODUCT_TYPE_L1_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL1().hashCode(); + } + if (hasProductTypeL2()) { + hash = (37 * hash) + PRODUCT_TYPE_L2_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL2().hashCode(); + } + if (hasProductTypeL3()) { + hash = (37 * hash) + PRODUCT_TYPE_L3_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL3().hashCode(); + } + if (hasProductTypeL4()) { + hash = (37 * hash) + PRODUCT_TYPE_L4_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL4().hashCode(); + } + if (hasProductTypeL5()) { + hash = (37 * hash) + PRODUCT_TYPE_L5_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL5().hashCode(); + } + if (hasPrice()) { + hash = (37 * hash) + PRICE_FIELD_NUMBER; + hash = (53 * hash) + getPrice().hashCode(); + } + if (hasSuggestedPrice()) { + hash = (37 * hash) + SUGGESTED_PRICE_FIELD_NUMBER; + hash = (53 * hash) + getSuggestedPrice().hashCode(); + } + if (hasPredictedImpressionsChangeFraction()) { + hash = (37 * hash) + PREDICTED_IMPRESSIONS_CHANGE_FRACTION_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getPredictedImpressionsChangeFraction())); + } + if (hasPredictedClicksChangeFraction()) { + hash = (37 * hash) + PREDICTED_CLICKS_CHANGE_FRACTION_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getPredictedClicksChangeFraction())); + } + if (hasPredictedConversionsChangeFraction()) { + hash = (37 * hash) + PREDICTED_CONVERSIONS_CHANGE_FRACTION_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getPredictedConversionsChangeFraction())); + } + hash = (37 * hash) + EFFECTIVENESS_FIELD_NUMBER; + hash = (53 * hash) + effectiveness_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView 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.shopping.merchant.reports.v1alpha.PriceInsightsProductView parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView 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.shopping.merchant.reports.v1alpha.PriceInsightsProductView + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView + 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.shopping.merchant.reports.v1alpha.PriceInsightsProductView parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView 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.shopping.merchant.reports.v1alpha.PriceInsightsProductView 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; + } + + /** + * + * + *
+   * Fields available for query in `price_insights_product_view` table.
+   *
+   * [Price insights](https://support.google.com/merchants/answer/11916926)
+   * report.
+   *
+   * Values are only set for fields requested explicitly in the request's search
+   * query.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.PriceInsightsProductView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.PriceInsightsProductView) + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductViewOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_PriceInsightsProductView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_PriceInsightsProductView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.class, + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Builder.class); + } + + // Construct using + // com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getPriceFieldBuilder(); + getSuggestedPriceFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + id_ = ""; + offerId_ = ""; + title_ = ""; + brand_ = ""; + categoryL1_ = ""; + categoryL2_ = ""; + categoryL3_ = ""; + categoryL4_ = ""; + categoryL5_ = ""; + productTypeL1_ = ""; + productTypeL2_ = ""; + productTypeL3_ = ""; + productTypeL4_ = ""; + productTypeL5_ = ""; + price_ = null; + if (priceBuilder_ != null) { + priceBuilder_.dispose(); + priceBuilder_ = null; + } + suggestedPrice_ = null; + if (suggestedPriceBuilder_ != null) { + suggestedPriceBuilder_.dispose(); + suggestedPriceBuilder_ = null; + } + predictedImpressionsChangeFraction_ = 0D; + predictedClicksChangeFraction_ = 0D; + predictedConversionsChangeFraction_ = 0D; + effectiveness_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_PriceInsightsProductView_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView build() { + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView buildPartial() { + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView result = + new com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.id_ = id_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.offerId_ = offerId_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.title_ = title_; + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.brand_ = brand_; + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.categoryL1_ = categoryL1_; + to_bitField0_ |= 0x00000010; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.categoryL2_ = categoryL2_; + to_bitField0_ |= 0x00000020; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.categoryL3_ = categoryL3_; + to_bitField0_ |= 0x00000040; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.categoryL4_ = categoryL4_; + to_bitField0_ |= 0x00000080; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.categoryL5_ = categoryL5_; + to_bitField0_ |= 0x00000100; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.productTypeL1_ = productTypeL1_; + to_bitField0_ |= 0x00000200; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.productTypeL2_ = productTypeL2_; + to_bitField0_ |= 0x00000400; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.productTypeL3_ = productTypeL3_; + to_bitField0_ |= 0x00000800; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.productTypeL4_ = productTypeL4_; + to_bitField0_ |= 0x00001000; + } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.productTypeL5_ = productTypeL5_; + to_bitField0_ |= 0x00002000; + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.price_ = priceBuilder_ == null ? price_ : priceBuilder_.build(); + to_bitField0_ |= 0x00004000; + } + if (((from_bitField0_ & 0x00008000) != 0)) { + result.suggestedPrice_ = + suggestedPriceBuilder_ == null ? suggestedPrice_ : suggestedPriceBuilder_.build(); + to_bitField0_ |= 0x00008000; + } + if (((from_bitField0_ & 0x00010000) != 0)) { + result.predictedImpressionsChangeFraction_ = predictedImpressionsChangeFraction_; + to_bitField0_ |= 0x00010000; + } + if (((from_bitField0_ & 0x00020000) != 0)) { + result.predictedClicksChangeFraction_ = predictedClicksChangeFraction_; + to_bitField0_ |= 0x00020000; + } + if (((from_bitField0_ & 0x00040000) != 0)) { + result.predictedConversionsChangeFraction_ = predictedConversionsChangeFraction_; + to_bitField0_ |= 0x00040000; + } + if (((from_bitField0_ & 0x00080000) != 0)) { + result.effectiveness_ = effectiveness_; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.PriceInsightsProductView) { + return mergeFrom( + (com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView + .getDefaultInstance()) return this; + if (other.hasId()) { + id_ = other.id_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasOfferId()) { + offerId_ = other.offerId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.hasTitle()) { + title_ = other.title_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.hasBrand()) { + brand_ = other.brand_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (other.hasCategoryL1()) { + categoryL1_ = other.categoryL1_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (other.hasCategoryL2()) { + categoryL2_ = other.categoryL2_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (other.hasCategoryL3()) { + categoryL3_ = other.categoryL3_; + bitField0_ |= 0x00000040; + onChanged(); + } + if (other.hasCategoryL4()) { + categoryL4_ = other.categoryL4_; + bitField0_ |= 0x00000080; + onChanged(); + } + if (other.hasCategoryL5()) { + categoryL5_ = other.categoryL5_; + bitField0_ |= 0x00000100; + onChanged(); + } + if (other.hasProductTypeL1()) { + productTypeL1_ = other.productTypeL1_; + bitField0_ |= 0x00000200; + onChanged(); + } + if (other.hasProductTypeL2()) { + productTypeL2_ = other.productTypeL2_; + bitField0_ |= 0x00000400; + onChanged(); + } + if (other.hasProductTypeL3()) { + productTypeL3_ = other.productTypeL3_; + bitField0_ |= 0x00000800; + onChanged(); + } + if (other.hasProductTypeL4()) { + productTypeL4_ = other.productTypeL4_; + bitField0_ |= 0x00001000; + onChanged(); + } + if (other.hasProductTypeL5()) { + productTypeL5_ = other.productTypeL5_; + bitField0_ |= 0x00002000; + onChanged(); + } + if (other.hasPrice()) { + mergePrice(other.getPrice()); + } + if (other.hasSuggestedPrice()) { + mergeSuggestedPrice(other.getSuggestedPrice()); + } + if (other.hasPredictedImpressionsChangeFraction()) { + setPredictedImpressionsChangeFraction(other.getPredictedImpressionsChangeFraction()); + } + if (other.hasPredictedClicksChangeFraction()) { + setPredictedClicksChangeFraction(other.getPredictedClicksChangeFraction()); + } + if (other.hasPredictedConversionsChangeFraction()) { + setPredictedConversionsChangeFraction(other.getPredictedConversionsChangeFraction()); + } + if (other.effectiveness_ != 0) { + setEffectivenessValue(other.getEffectivenessValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + id_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + offerId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + title_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + brand_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: + { + categoryL1_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 50: + { + categoryL2_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 58: + { + categoryL3_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 66: + { + categoryL4_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000080; + break; + } // case 66 + case 74: + { + categoryL5_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000100; + break; + } // case 74 + case 82: + { + productTypeL1_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000200; + break; + } // case 82 + case 90: + { + productTypeL2_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000400; + break; + } // case 90 + case 98: + { + productTypeL3_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000800; + break; + } // case 98 + case 106: + { + productTypeL4_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00001000; + break; + } // case 106 + case 114: + { + productTypeL5_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00002000; + break; + } // case 114 + case 122: + { + input.readMessage(getPriceFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00004000; + break; + } // case 122 + case 130: + { + input.readMessage(getSuggestedPriceFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00008000; + break; + } // case 130 + case 137: + { + predictedImpressionsChangeFraction_ = input.readDouble(); + bitField0_ |= 0x00010000; + break; + } // case 137 + case 145: + { + predictedClicksChangeFraction_ = input.readDouble(); + bitField0_ |= 0x00020000; + break; + } // case 145 + case 153: + { + predictedConversionsChangeFraction_ = input.readDouble(); + bitField0_ |= 0x00040000; + break; + } // case 153 + case 176: + { + effectiveness_ = input.readEnum(); + bitField0_ |= 0x00080000; + break; + } // case 176 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.lang.Object id_ = ""; + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+     * `product_view` table.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 1; + * + * @return Whether the id field is set. + */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+     * `product_view` table.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 1; + * + * @return The id. + */ + public java.lang.String getId() { + java.lang.Object ref = id_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+     * `product_view` table.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 1; + * + * @return The bytes for id. + */ + public com.google.protobuf.ByteString getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+     * `product_view` table.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 1; + * + * @param value The id to set. + * @return This builder for chaining. + */ + public Builder setId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+     * `product_view` table.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 1; + * + * @return This builder for chaining. + */ + public Builder clearId() { + id_ = getDefaultInstance().getId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+     * `product_view` table.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 1; + * + * @param value The bytes for id to set. + * @return This builder for chaining. + */ + public Builder setIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object offerId_ = ""; + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 2; + * + * @return Whether the offerId field is set. + */ + public boolean hasOfferId() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 2; + * + * @return The offerId. + */ + public java.lang.String getOfferId() { + java.lang.Object ref = offerId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + offerId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 2; + * + * @return The bytes for offerId. + */ + public com.google.protobuf.ByteString getOfferIdBytes() { + java.lang.Object ref = offerId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + offerId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 2; + * + * @param value The offerId to set. + * @return This builder for chaining. + */ + public Builder setOfferId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + offerId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 2; + * + * @return This builder for chaining. + */ + public Builder clearOfferId() { + offerId_ = getDefaultInstance().getOfferId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 2; + * + * @param value The bytes for offerId to set. + * @return This builder for chaining. + */ + public Builder setOfferIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + offerId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object title_ = ""; + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 3; + * + * @return Whether the title field is set. + */ + public boolean hasTitle() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 3; + * + * @return The title. + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 3; + * + * @return The bytes for title. + */ + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 3; + * + * @param value The title to set. + * @return This builder for chaining. + */ + public Builder setTitle(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + title_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 3; + * + * @return This builder for chaining. + */ + public Builder clearTitle() { + title_ = getDefaultInstance().getTitle(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 3; + * + * @param value The bytes for title to set. + * @return This builder for chaining. + */ + public Builder setTitleBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + title_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object brand_ = ""; + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 4; + * + * @return Whether the brand field is set. + */ + public boolean hasBrand() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 4; + * + * @return The brand. + */ + public java.lang.String getBrand() { + java.lang.Object ref = brand_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + brand_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 4; + * + * @return The bytes for brand. + */ + public com.google.protobuf.ByteString getBrandBytes() { + java.lang.Object ref = brand_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + brand_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 4; + * + * @param value The brand to set. + * @return This builder for chaining. + */ + public Builder setBrand(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + brand_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 4; + * + * @return This builder for chaining. + */ + public Builder clearBrand() { + brand_ = getDefaultInstance().getBrand(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 4; + * + * @param value The bytes for brand to set. + * @return This builder for chaining. + */ + public Builder setBrandBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + brand_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private java.lang.Object categoryL1_ = ""; + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 5; + * + * @return Whether the categoryL1 field is set. + */ + public boolean hasCategoryL1() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 5; + * + * @return The categoryL1. + */ + public java.lang.String getCategoryL1() { + java.lang.Object ref = categoryL1_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL1_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 5; + * + * @return The bytes for categoryL1. + */ + public com.google.protobuf.ByteString getCategoryL1Bytes() { + java.lang.Object ref = categoryL1_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 5; + * + * @param value The categoryL1 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL1(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL1_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 5; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL1() { + categoryL1_ = getDefaultInstance().getCategoryL1(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 5; + * + * @param value The bytes for categoryL1 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL1Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL1_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private java.lang.Object categoryL2_ = ""; + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 6; + * + * @return Whether the categoryL2 field is set. + */ + public boolean hasCategoryL2() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 6; + * + * @return The categoryL2. + */ + public java.lang.String getCategoryL2() { + java.lang.Object ref = categoryL2_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL2_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 6; + * + * @return The bytes for categoryL2. + */ + public com.google.protobuf.ByteString getCategoryL2Bytes() { + java.lang.Object ref = categoryL2_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 6; + * + * @param value The categoryL2 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL2(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL2_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 6; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL2() { + categoryL2_ = getDefaultInstance().getCategoryL2(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 6; + * + * @param value The bytes for categoryL2 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL2Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL2_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private java.lang.Object categoryL3_ = ""; + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 7; + * + * @return Whether the categoryL3 field is set. + */ + public boolean hasCategoryL3() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 7; + * + * @return The categoryL3. + */ + public java.lang.String getCategoryL3() { + java.lang.Object ref = categoryL3_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL3_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 7; + * + * @return The bytes for categoryL3. + */ + public com.google.protobuf.ByteString getCategoryL3Bytes() { + java.lang.Object ref = categoryL3_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 7; + * + * @param value The categoryL3 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL3(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL3_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 7; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL3() { + categoryL3_ = getDefaultInstance().getCategoryL3(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 7; + * + * @param value The bytes for categoryL3 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL3Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL3_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + private java.lang.Object categoryL4_ = ""; + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 8; + * + * @return Whether the categoryL4 field is set. + */ + public boolean hasCategoryL4() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 8; + * + * @return The categoryL4. + */ + public java.lang.String getCategoryL4() { + java.lang.Object ref = categoryL4_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL4_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 8; + * + * @return The bytes for categoryL4. + */ + public com.google.protobuf.ByteString getCategoryL4Bytes() { + java.lang.Object ref = categoryL4_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 8; + * + * @param value The categoryL4 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL4(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL4_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 8; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL4() { + categoryL4_ = getDefaultInstance().getCategoryL4(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 8; + * + * @param value The bytes for categoryL4 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL4Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL4_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + private java.lang.Object categoryL5_ = ""; + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 9; + * + * @return Whether the categoryL5 field is set. + */ + public boolean hasCategoryL5() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 9; + * + * @return The categoryL5. + */ + public java.lang.String getCategoryL5() { + java.lang.Object ref = categoryL5_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL5_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 9; + * + * @return The bytes for categoryL5. + */ + public com.google.protobuf.ByteString getCategoryL5Bytes() { + java.lang.Object ref = categoryL5_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 9; + * + * @param value The categoryL5 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL5(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL5_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 9; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL5() { + categoryL5_ = getDefaultInstance().getCategoryL5(); + bitField0_ = (bitField0_ & ~0x00000100); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 9; + * + * @param value The bytes for categoryL5 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL5Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL5_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + private java.lang.Object productTypeL1_ = ""; + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 10; + * + * @return Whether the productTypeL1 field is set. + */ + public boolean hasProductTypeL1() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 10; + * + * @return The productTypeL1. + */ + public java.lang.String getProductTypeL1() { + java.lang.Object ref = productTypeL1_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL1_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 10; + * + * @return The bytes for productTypeL1. + */ + public com.google.protobuf.ByteString getProductTypeL1Bytes() { + java.lang.Object ref = productTypeL1_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 10; + * + * @param value The productTypeL1 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL1(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL1_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 10; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL1() { + productTypeL1_ = getDefaultInstance().getProductTypeL1(); + bitField0_ = (bitField0_ & ~0x00000200); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 10; + * + * @param value The bytes for productTypeL1 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL1Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL1_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + private java.lang.Object productTypeL2_ = ""; + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 11; + * + * @return Whether the productTypeL2 field is set. + */ + public boolean hasProductTypeL2() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 11; + * + * @return The productTypeL2. + */ + public java.lang.String getProductTypeL2() { + java.lang.Object ref = productTypeL2_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL2_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 11; + * + * @return The bytes for productTypeL2. + */ + public com.google.protobuf.ByteString getProductTypeL2Bytes() { + java.lang.Object ref = productTypeL2_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 11; + * + * @param value The productTypeL2 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL2(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL2_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 11; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL2() { + productTypeL2_ = getDefaultInstance().getProductTypeL2(); + bitField0_ = (bitField0_ & ~0x00000400); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 11; + * + * @param value The bytes for productTypeL2 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL2Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL2_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + private java.lang.Object productTypeL3_ = ""; + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 12; + * + * @return Whether the productTypeL3 field is set. + */ + public boolean hasProductTypeL3() { + return ((bitField0_ & 0x00000800) != 0); + } + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 12; + * + * @return The productTypeL3. + */ + public java.lang.String getProductTypeL3() { + java.lang.Object ref = productTypeL3_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL3_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 12; + * + * @return The bytes for productTypeL3. + */ + public com.google.protobuf.ByteString getProductTypeL3Bytes() { + java.lang.Object ref = productTypeL3_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 12; + * + * @param value The productTypeL3 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL3(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL3_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 12; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL3() { + productTypeL3_ = getDefaultInstance().getProductTypeL3(); + bitField0_ = (bitField0_ & ~0x00000800); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 12; + * + * @param value The bytes for productTypeL3 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL3Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL3_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + private java.lang.Object productTypeL4_ = ""; + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 13; + * + * @return Whether the productTypeL4 field is set. + */ + public boolean hasProductTypeL4() { + return ((bitField0_ & 0x00001000) != 0); + } + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 13; + * + * @return The productTypeL4. + */ + public java.lang.String getProductTypeL4() { + java.lang.Object ref = productTypeL4_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL4_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 13; + * + * @return The bytes for productTypeL4. + */ + public com.google.protobuf.ByteString getProductTypeL4Bytes() { + java.lang.Object ref = productTypeL4_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 13; + * + * @param value The productTypeL4 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL4(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL4_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 13; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL4() { + productTypeL4_ = getDefaultInstance().getProductTypeL4(); + bitField0_ = (bitField0_ & ~0x00001000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 13; + * + * @param value The bytes for productTypeL4 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL4Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL4_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + private java.lang.Object productTypeL5_ = ""; + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 14; + * + * @return Whether the productTypeL5 field is set. + */ + public boolean hasProductTypeL5() { + return ((bitField0_ & 0x00002000) != 0); + } + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 14; + * + * @return The productTypeL5. + */ + public java.lang.String getProductTypeL5() { + java.lang.Object ref = productTypeL5_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL5_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 14; + * + * @return The bytes for productTypeL5. + */ + public com.google.protobuf.ByteString getProductTypeL5Bytes() { + java.lang.Object ref = productTypeL5_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 14; + * + * @param value The productTypeL5 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL5(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL5_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 14; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL5() { + productTypeL5_ = getDefaultInstance().getProductTypeL5(); + bitField0_ = (bitField0_ & ~0x00002000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 14; + * + * @param value The bytes for productTypeL5 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL5Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL5_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + + private com.google.shopping.type.Price price_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + priceBuilder_; + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 15; + * + * @return Whether the price field is set. + */ + public boolean hasPrice() { + return ((bitField0_ & 0x00004000) != 0); + } + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 15; + * + * @return The price. + */ + public com.google.shopping.type.Price getPrice() { + if (priceBuilder_ == null) { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } else { + return priceBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 15; + */ + public Builder setPrice(com.google.shopping.type.Price value) { + if (priceBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + price_ = value; + } else { + priceBuilder_.setMessage(value); + } + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 15; + */ + public Builder setPrice(com.google.shopping.type.Price.Builder builderForValue) { + if (priceBuilder_ == null) { + price_ = builderForValue.build(); + } else { + priceBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 15; + */ + public Builder mergePrice(com.google.shopping.type.Price value) { + if (priceBuilder_ == null) { + if (((bitField0_ & 0x00004000) != 0) + && price_ != null + && price_ != com.google.shopping.type.Price.getDefaultInstance()) { + getPriceBuilder().mergeFrom(value); + } else { + price_ = value; + } + } else { + priceBuilder_.mergeFrom(value); + } + if (price_ != null) { + bitField0_ |= 0x00004000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 15; + */ + public Builder clearPrice() { + bitField0_ = (bitField0_ & ~0x00004000); + price_ = null; + if (priceBuilder_ != null) { + priceBuilder_.dispose(); + priceBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 15; + */ + public com.google.shopping.type.Price.Builder getPriceBuilder() { + bitField0_ |= 0x00004000; + onChanged(); + return getPriceFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 15; + */ + public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() { + if (priceBuilder_ != null) { + return priceBuilder_.getMessageOrBuilder(); + } else { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } + } + + /** + * + * + *
+     * Current price of the product.
+     * 
+ * + * .google.shopping.type.Price price = 15; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + getPriceFieldBuilder() { + if (priceBuilder_ == null) { + priceBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getPrice(), getParentForChildren(), isClean()); + price_ = null; + } + return priceBuilder_; + } + + private com.google.shopping.type.Price suggestedPrice_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + suggestedPriceBuilder_; + + /** + * + * + *
+     * Latest suggested price for the product.
+     * 
+ * + * .google.shopping.type.Price suggested_price = 16; + * + * @return Whether the suggestedPrice field is set. + */ + public boolean hasSuggestedPrice() { + return ((bitField0_ & 0x00008000) != 0); + } + + /** + * + * + *
+     * Latest suggested price for the product.
+     * 
+ * + * .google.shopping.type.Price suggested_price = 16; + * + * @return The suggestedPrice. + */ + public com.google.shopping.type.Price getSuggestedPrice() { + if (suggestedPriceBuilder_ == null) { + return suggestedPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : suggestedPrice_; + } else { + return suggestedPriceBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Latest suggested price for the product.
+     * 
+ * + * .google.shopping.type.Price suggested_price = 16; + */ + public Builder setSuggestedPrice(com.google.shopping.type.Price value) { + if (suggestedPriceBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + suggestedPrice_ = value; + } else { + suggestedPriceBuilder_.setMessage(value); + } + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Latest suggested price for the product.
+     * 
+ * + * .google.shopping.type.Price suggested_price = 16; + */ + public Builder setSuggestedPrice(com.google.shopping.type.Price.Builder builderForValue) { + if (suggestedPriceBuilder_ == null) { + suggestedPrice_ = builderForValue.build(); + } else { + suggestedPriceBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Latest suggested price for the product.
+     * 
+ * + * .google.shopping.type.Price suggested_price = 16; + */ + public Builder mergeSuggestedPrice(com.google.shopping.type.Price value) { + if (suggestedPriceBuilder_ == null) { + if (((bitField0_ & 0x00008000) != 0) + && suggestedPrice_ != null + && suggestedPrice_ != com.google.shopping.type.Price.getDefaultInstance()) { + getSuggestedPriceBuilder().mergeFrom(value); + } else { + suggestedPrice_ = value; + } + } else { + suggestedPriceBuilder_.mergeFrom(value); + } + if (suggestedPrice_ != null) { + bitField0_ |= 0x00008000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Latest suggested price for the product.
+     * 
+ * + * .google.shopping.type.Price suggested_price = 16; + */ + public Builder clearSuggestedPrice() { + bitField0_ = (bitField0_ & ~0x00008000); + suggestedPrice_ = null; + if (suggestedPriceBuilder_ != null) { + suggestedPriceBuilder_.dispose(); + suggestedPriceBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Latest suggested price for the product.
+     * 
+ * + * .google.shopping.type.Price suggested_price = 16; + */ + public com.google.shopping.type.Price.Builder getSuggestedPriceBuilder() { + bitField0_ |= 0x00008000; + onChanged(); + return getSuggestedPriceFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Latest suggested price for the product.
+     * 
+ * + * .google.shopping.type.Price suggested_price = 16; + */ + public com.google.shopping.type.PriceOrBuilder getSuggestedPriceOrBuilder() { + if (suggestedPriceBuilder_ != null) { + return suggestedPriceBuilder_.getMessageOrBuilder(); + } else { + return suggestedPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : suggestedPrice_; + } + } + + /** + * + * + *
+     * Latest suggested price for the product.
+     * 
+ * + * .google.shopping.type.Price suggested_price = 16; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + getSuggestedPriceFieldBuilder() { + if (suggestedPriceBuilder_ == null) { + suggestedPriceBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getSuggestedPrice(), getParentForChildren(), isClean()); + suggestedPrice_ = null; + } + return suggestedPriceBuilder_; + } + + private double predictedImpressionsChangeFraction_; + + /** + * + * + *
+     * Predicted change in impressions as a fraction after introducing the
+     * suggested price compared to current active price. For example, 0.05 is a 5%
+     * predicted increase in impressions.
+     * 
+ * + * optional double predicted_impressions_change_fraction = 17; + * + * @return Whether the predictedImpressionsChangeFraction field is set. + */ + @java.lang.Override + public boolean hasPredictedImpressionsChangeFraction() { + return ((bitField0_ & 0x00010000) != 0); + } + + /** + * + * + *
+     * Predicted change in impressions as a fraction after introducing the
+     * suggested price compared to current active price. For example, 0.05 is a 5%
+     * predicted increase in impressions.
+     * 
+ * + * optional double predicted_impressions_change_fraction = 17; + * + * @return The predictedImpressionsChangeFraction. + */ + @java.lang.Override + public double getPredictedImpressionsChangeFraction() { + return predictedImpressionsChangeFraction_; + } + + /** + * + * + *
+     * Predicted change in impressions as a fraction after introducing the
+     * suggested price compared to current active price. For example, 0.05 is a 5%
+     * predicted increase in impressions.
+     * 
+ * + * optional double predicted_impressions_change_fraction = 17; + * + * @param value The predictedImpressionsChangeFraction to set. + * @return This builder for chaining. + */ + public Builder setPredictedImpressionsChangeFraction(double value) { + + predictedImpressionsChangeFraction_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Predicted change in impressions as a fraction after introducing the
+     * suggested price compared to current active price. For example, 0.05 is a 5%
+     * predicted increase in impressions.
+     * 
+ * + * optional double predicted_impressions_change_fraction = 17; + * + * @return This builder for chaining. + */ + public Builder clearPredictedImpressionsChangeFraction() { + bitField0_ = (bitField0_ & ~0x00010000); + predictedImpressionsChangeFraction_ = 0D; + onChanged(); + return this; + } + + private double predictedClicksChangeFraction_; + + /** + * + * + *
+     * Predicted change in clicks as a fraction after introducing the
+     * suggested price compared to current active price. For example, 0.05 is a 5%
+     * predicted increase in clicks.
+     * 
+ * + * optional double predicted_clicks_change_fraction = 18; + * + * @return Whether the predictedClicksChangeFraction field is set. + */ + @java.lang.Override + public boolean hasPredictedClicksChangeFraction() { + return ((bitField0_ & 0x00020000) != 0); + } + + /** + * + * + *
+     * Predicted change in clicks as a fraction after introducing the
+     * suggested price compared to current active price. For example, 0.05 is a 5%
+     * predicted increase in clicks.
+     * 
+ * + * optional double predicted_clicks_change_fraction = 18; + * + * @return The predictedClicksChangeFraction. + */ + @java.lang.Override + public double getPredictedClicksChangeFraction() { + return predictedClicksChangeFraction_; + } + + /** + * + * + *
+     * Predicted change in clicks as a fraction after introducing the
+     * suggested price compared to current active price. For example, 0.05 is a 5%
+     * predicted increase in clicks.
+     * 
+ * + * optional double predicted_clicks_change_fraction = 18; + * + * @param value The predictedClicksChangeFraction to set. + * @return This builder for chaining. + */ + public Builder setPredictedClicksChangeFraction(double value) { + + predictedClicksChangeFraction_ = value; + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Predicted change in clicks as a fraction after introducing the
+     * suggested price compared to current active price. For example, 0.05 is a 5%
+     * predicted increase in clicks.
+     * 
+ * + * optional double predicted_clicks_change_fraction = 18; + * + * @return This builder for chaining. + */ + public Builder clearPredictedClicksChangeFraction() { + bitField0_ = (bitField0_ & ~0x00020000); + predictedClicksChangeFraction_ = 0D; + onChanged(); + return this; + } + + private double predictedConversionsChangeFraction_; + + /** + * + * + *
+     * Predicted change in conversions as a fraction after introducing the
+     * suggested price compared to current active price. For example, 0.05 is a 5%
+     * predicted increase in conversions).
+     * 
+ * + * optional double predicted_conversions_change_fraction = 19; + * + * @return Whether the predictedConversionsChangeFraction field is set. + */ + @java.lang.Override + public boolean hasPredictedConversionsChangeFraction() { + return ((bitField0_ & 0x00040000) != 0); + } + + /** + * + * + *
+     * Predicted change in conversions as a fraction after introducing the
+     * suggested price compared to current active price. For example, 0.05 is a 5%
+     * predicted increase in conversions).
+     * 
+ * + * optional double predicted_conversions_change_fraction = 19; + * + * @return The predictedConversionsChangeFraction. + */ + @java.lang.Override + public double getPredictedConversionsChangeFraction() { + return predictedConversionsChangeFraction_; + } + + /** + * + * + *
+     * Predicted change in conversions as a fraction after introducing the
+     * suggested price compared to current active price. For example, 0.05 is a 5%
+     * predicted increase in conversions).
+     * 
+ * + * optional double predicted_conversions_change_fraction = 19; + * + * @param value The predictedConversionsChangeFraction to set. + * @return This builder for chaining. + */ + public Builder setPredictedConversionsChangeFraction(double value) { + + predictedConversionsChangeFraction_ = value; + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Predicted change in conversions as a fraction after introducing the
+     * suggested price compared to current active price. For example, 0.05 is a 5%
+     * predicted increase in conversions).
+     * 
+ * + * optional double predicted_conversions_change_fraction = 19; + * + * @return This builder for chaining. + */ + public Builder clearPredictedConversionsChangeFraction() { + bitField0_ = (bitField0_ & ~0x00040000); + predictedConversionsChangeFraction_ = 0D; + onChanged(); + return this; + } + + private int effectiveness_ = 0; + + /** + * + * + *
+     * The predicted effectiveness of applying the price suggestion, bucketed.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22; + * + * + * @return The enum numeric value on the wire for effectiveness. + */ + @java.lang.Override + public int getEffectivenessValue() { + return effectiveness_; + } + + /** + * + * + *
+     * The predicted effectiveness of applying the price suggestion, bucketed.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22; + * + * + * @param value The enum numeric value on the wire for effectiveness to set. + * @return This builder for chaining. + */ + public Builder setEffectivenessValue(int value) { + effectiveness_ = value; + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + + /** + * + * + *
+     * The predicted effectiveness of applying the price suggestion, bucketed.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22; + * + * + * @return The effectiveness. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness + getEffectiveness() { + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness result = + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness + .forNumber(effectiveness_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * The predicted effectiveness of applying the price suggestion, bucketed.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22; + * + * + * @param value The effectiveness to set. + * @return This builder for chaining. + */ + public Builder setEffectiveness( + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00080000; + effectiveness_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * The predicted effectiveness of applying the price suggestion, bucketed.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22; + * + * + * @return This builder for chaining. + */ + public Builder clearEffectiveness() { + bitField0_ = (bitField0_ & ~0x00080000); + effectiveness_ = 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.shopping.merchant.reports.v1alpha.PriceInsightsProductView) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.PriceInsightsProductView) + private static final com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView(); + } + + public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PriceInsightsProductView parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.PriceInsightsProductView + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceInsightsProductViewOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceInsightsProductViewOrBuilder.java new file mode 100644 index 000000000000..ded29092899c --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceInsightsProductViewOrBuilder.java @@ -0,0 +1,809 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface PriceInsightsProductViewOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.PriceInsightsProductView) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+   * `product_view` table.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 1; + * + * @return Whether the id field is set. + */ + boolean hasId(); + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+   * `product_view` table.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 1; + * + * @return The id. + */ + java.lang.String getId(); + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+   * `product_view` table.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 1; + * + * @return The bytes for id. + */ + com.google.protobuf.ByteString getIdBytes(); + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 2; + * + * @return Whether the offerId field is set. + */ + boolean hasOfferId(); + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 2; + * + * @return The offerId. + */ + java.lang.String getOfferId(); + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 2; + * + * @return The bytes for offerId. + */ + com.google.protobuf.ByteString getOfferIdBytes(); + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 3; + * + * @return Whether the title field is set. + */ + boolean hasTitle(); + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 3; + * + * @return The title. + */ + java.lang.String getTitle(); + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 3; + * + * @return The bytes for title. + */ + com.google.protobuf.ByteString getTitleBytes(); + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 4; + * + * @return Whether the brand field is set. + */ + boolean hasBrand(); + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 4; + * + * @return The brand. + */ + java.lang.String getBrand(); + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 4; + * + * @return The bytes for brand. + */ + com.google.protobuf.ByteString getBrandBytes(); + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 5; + * + * @return Whether the categoryL1 field is set. + */ + boolean hasCategoryL1(); + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 5; + * + * @return The categoryL1. + */ + java.lang.String getCategoryL1(); + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 5; + * + * @return The bytes for categoryL1. + */ + com.google.protobuf.ByteString getCategoryL1Bytes(); + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 6; + * + * @return Whether the categoryL2 field is set. + */ + boolean hasCategoryL2(); + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 6; + * + * @return The categoryL2. + */ + java.lang.String getCategoryL2(); + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 6; + * + * @return The bytes for categoryL2. + */ + com.google.protobuf.ByteString getCategoryL2Bytes(); + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 7; + * + * @return Whether the categoryL3 field is set. + */ + boolean hasCategoryL3(); + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 7; + * + * @return The categoryL3. + */ + java.lang.String getCategoryL3(); + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 7; + * + * @return The bytes for categoryL3. + */ + com.google.protobuf.ByteString getCategoryL3Bytes(); + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 8; + * + * @return Whether the categoryL4 field is set. + */ + boolean hasCategoryL4(); + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 8; + * + * @return The categoryL4. + */ + java.lang.String getCategoryL4(); + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 8; + * + * @return The bytes for categoryL4. + */ + com.google.protobuf.ByteString getCategoryL4Bytes(); + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 9; + * + * @return Whether the categoryL5 field is set. + */ + boolean hasCategoryL5(); + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 9; + * + * @return The categoryL5. + */ + java.lang.String getCategoryL5(); + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 9; + * + * @return The bytes for categoryL5. + */ + com.google.protobuf.ByteString getCategoryL5Bytes(); + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 10; + * + * @return Whether the productTypeL1 field is set. + */ + boolean hasProductTypeL1(); + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 10; + * + * @return The productTypeL1. + */ + java.lang.String getProductTypeL1(); + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 10; + * + * @return The bytes for productTypeL1. + */ + com.google.protobuf.ByteString getProductTypeL1Bytes(); + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 11; + * + * @return Whether the productTypeL2 field is set. + */ + boolean hasProductTypeL2(); + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 11; + * + * @return The productTypeL2. + */ + java.lang.String getProductTypeL2(); + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 11; + * + * @return The bytes for productTypeL2. + */ + com.google.protobuf.ByteString getProductTypeL2Bytes(); + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 12; + * + * @return Whether the productTypeL3 field is set. + */ + boolean hasProductTypeL3(); + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 12; + * + * @return The productTypeL3. + */ + java.lang.String getProductTypeL3(); + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 12; + * + * @return The bytes for productTypeL3. + */ + com.google.protobuf.ByteString getProductTypeL3Bytes(); + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 13; + * + * @return Whether the productTypeL4 field is set. + */ + boolean hasProductTypeL4(); + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 13; + * + * @return The productTypeL4. + */ + java.lang.String getProductTypeL4(); + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 13; + * + * @return The bytes for productTypeL4. + */ + com.google.protobuf.ByteString getProductTypeL4Bytes(); + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 14; + * + * @return Whether the productTypeL5 field is set. + */ + boolean hasProductTypeL5(); + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 14; + * + * @return The productTypeL5. + */ + java.lang.String getProductTypeL5(); + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 14; + * + * @return The bytes for productTypeL5. + */ + com.google.protobuf.ByteString getProductTypeL5Bytes(); + + /** + * + * + *
+   * Current price of the product.
+   * 
+ * + * .google.shopping.type.Price price = 15; + * + * @return Whether the price field is set. + */ + boolean hasPrice(); + + /** + * + * + *
+   * Current price of the product.
+   * 
+ * + * .google.shopping.type.Price price = 15; + * + * @return The price. + */ + com.google.shopping.type.Price getPrice(); + + /** + * + * + *
+   * Current price of the product.
+   * 
+ * + * .google.shopping.type.Price price = 15; + */ + com.google.shopping.type.PriceOrBuilder getPriceOrBuilder(); + + /** + * + * + *
+   * Latest suggested price for the product.
+   * 
+ * + * .google.shopping.type.Price suggested_price = 16; + * + * @return Whether the suggestedPrice field is set. + */ + boolean hasSuggestedPrice(); + + /** + * + * + *
+   * Latest suggested price for the product.
+   * 
+ * + * .google.shopping.type.Price suggested_price = 16; + * + * @return The suggestedPrice. + */ + com.google.shopping.type.Price getSuggestedPrice(); + + /** + * + * + *
+   * Latest suggested price for the product.
+   * 
+ * + * .google.shopping.type.Price suggested_price = 16; + */ + com.google.shopping.type.PriceOrBuilder getSuggestedPriceOrBuilder(); + + /** + * + * + *
+   * Predicted change in impressions as a fraction after introducing the
+   * suggested price compared to current active price. For example, 0.05 is a 5%
+   * predicted increase in impressions.
+   * 
+ * + * optional double predicted_impressions_change_fraction = 17; + * + * @return Whether the predictedImpressionsChangeFraction field is set. + */ + boolean hasPredictedImpressionsChangeFraction(); + + /** + * + * + *
+   * Predicted change in impressions as a fraction after introducing the
+   * suggested price compared to current active price. For example, 0.05 is a 5%
+   * predicted increase in impressions.
+   * 
+ * + * optional double predicted_impressions_change_fraction = 17; + * + * @return The predictedImpressionsChangeFraction. + */ + double getPredictedImpressionsChangeFraction(); + + /** + * + * + *
+   * Predicted change in clicks as a fraction after introducing the
+   * suggested price compared to current active price. For example, 0.05 is a 5%
+   * predicted increase in clicks.
+   * 
+ * + * optional double predicted_clicks_change_fraction = 18; + * + * @return Whether the predictedClicksChangeFraction field is set. + */ + boolean hasPredictedClicksChangeFraction(); + + /** + * + * + *
+   * Predicted change in clicks as a fraction after introducing the
+   * suggested price compared to current active price. For example, 0.05 is a 5%
+   * predicted increase in clicks.
+   * 
+ * + * optional double predicted_clicks_change_fraction = 18; + * + * @return The predictedClicksChangeFraction. + */ + double getPredictedClicksChangeFraction(); + + /** + * + * + *
+   * Predicted change in conversions as a fraction after introducing the
+   * suggested price compared to current active price. For example, 0.05 is a 5%
+   * predicted increase in conversions).
+   * 
+ * + * optional double predicted_conversions_change_fraction = 19; + * + * @return Whether the predictedConversionsChangeFraction field is set. + */ + boolean hasPredictedConversionsChangeFraction(); + + /** + * + * + *
+   * Predicted change in conversions as a fraction after introducing the
+   * suggested price compared to current active price. For example, 0.05 is a 5%
+   * predicted increase in conversions).
+   * 
+ * + * optional double predicted_conversions_change_fraction = 19; + * + * @return The predictedConversionsChangeFraction. + */ + double getPredictedConversionsChangeFraction(); + + /** + * + * + *
+   * The predicted effectiveness of applying the price suggestion, bucketed.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22; + * + * + * @return The enum numeric value on the wire for effectiveness. + */ + int getEffectivenessValue(); + + /** + * + * + *
+   * The predicted effectiveness of applying the price suggestion, bucketed.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22; + * + * + * @return The effectiveness. + */ + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness + getEffectiveness(); +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductPerformanceView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductPerformanceView.java new file mode 100644 index 000000000000..3527fb35256a --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductPerformanceView.java @@ -0,0 +1,6854 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Fields available for query in `product_performance_view` table.
+ *
+ * Product performance data for your account, including performance metrics (for
+ * example, `clicks`) and dimensions according to which performance metrics are
+ * segmented (for example, `offer_id`). Values of product dimensions, such as
+ * `offer_id`, reflect the state of a product at the time of the impression.
+ *
+ * Segment fields cannot be selected in queries without also selecting at least
+ * one metric field.
+ *
+ * Values are only set for fields requested explicitly in the request's search
+ * query.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ProductPerformanceView} + */ +public final class ProductPerformanceView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.ProductPerformanceView) + ProductPerformanceViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ProductPerformanceView.newBuilder() to construct. + private ProductPerformanceView(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ProductPerformanceView() { + marketingMethod_ = 0; + customerCountryCode_ = ""; + offerId_ = ""; + title_ = ""; + brand_ = ""; + categoryL1_ = ""; + categoryL2_ = ""; + categoryL3_ = ""; + categoryL4_ = ""; + categoryL5_ = ""; + productTypeL1_ = ""; + productTypeL2_ = ""; + productTypeL3_ = ""; + productTypeL4_ = ""; + productTypeL5_ = ""; + customLabel0_ = ""; + customLabel1_ = ""; + customLabel2_ = ""; + customLabel3_ = ""; + customLabel4_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ProductPerformanceView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductPerformanceView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductPerformanceView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.class, + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.Builder.class); + } + + private int bitField0_; + public static final int MARKETING_METHOD_FIELD_NUMBER = 1; + private int marketingMethod_ = 0; + + /** + * + * + *
+   * Marketing method to which metrics apply. Segment.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1; + * + * + * @return Whether the marketingMethod field is set. + */ + @java.lang.Override + public boolean hasMarketingMethod() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Marketing method to which metrics apply. Segment.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1; + * + * + * @return The enum numeric value on the wire for marketingMethod. + */ + @java.lang.Override + public int getMarketingMethodValue() { + return marketingMethod_; + } + + /** + * + * + *
+   * Marketing method to which metrics apply. Segment.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1; + * + * + * @return The marketingMethod. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum + getMarketingMethod() { + com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum result = + com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum.forNumber( + marketingMethod_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum + .UNRECOGNIZED + : result; + } + + public static final int DATE_FIELD_NUMBER = 2; + private com.google.type.Date date_; + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 2; + * + * @return Whether the date field is set. + */ + @java.lang.Override + public boolean hasDate() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 2; + * + * @return The date. + */ + @java.lang.Override + public com.google.type.Date getDate() { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 2; + */ + @java.lang.Override + public com.google.type.DateOrBuilder getDateOrBuilder() { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + + public static final int WEEK_FIELD_NUMBER = 3; + private com.google.type.Date week_; + + /** + * + * + *
+   * First day of the week (Monday) of the metrics date in the merchant
+   * timezone. Segment.
+   * 
+ * + * .google.type.Date week = 3; + * + * @return Whether the week field is set. + */ + @java.lang.Override + public boolean hasWeek() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * First day of the week (Monday) of the metrics date in the merchant
+   * timezone. Segment.
+   * 
+ * + * .google.type.Date week = 3; + * + * @return The week. + */ + @java.lang.Override + public com.google.type.Date getWeek() { + return week_ == null ? com.google.type.Date.getDefaultInstance() : week_; + } + + /** + * + * + *
+   * First day of the week (Monday) of the metrics date in the merchant
+   * timezone. Segment.
+   * 
+ * + * .google.type.Date week = 3; + */ + @java.lang.Override + public com.google.type.DateOrBuilder getWeekOrBuilder() { + return week_ == null ? com.google.type.Date.getDefaultInstance() : week_; + } + + public static final int CUSTOMER_COUNTRY_CODE_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object customerCountryCode_ = ""; + + /** + * + * + *
+   * Code of the country where the customer is located at the time of the event.
+   * Represented in the ISO 3166 format. Segment.
+   *
+   * If the customer country cannot be determined, a special 'ZZ' code is
+   * returned.
+   * 
+ * + * optional string customer_country_code = 4; + * + * @return Whether the customerCountryCode field is set. + */ + @java.lang.Override + public boolean hasCustomerCountryCode() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * Code of the country where the customer is located at the time of the event.
+   * Represented in the ISO 3166 format. Segment.
+   *
+   * If the customer country cannot be determined, a special 'ZZ' code is
+   * returned.
+   * 
+ * + * optional string customer_country_code = 4; + * + * @return The customerCountryCode. + */ + @java.lang.Override + public java.lang.String getCustomerCountryCode() { + java.lang.Object ref = customerCountryCode_; + 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(); + customerCountryCode_ = s; + return s; + } + } + + /** + * + * + *
+   * Code of the country where the customer is located at the time of the event.
+   * Represented in the ISO 3166 format. Segment.
+   *
+   * If the customer country cannot be determined, a special 'ZZ' code is
+   * returned.
+   * 
+ * + * optional string customer_country_code = 4; + * + * @return The bytes for customerCountryCode. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCustomerCountryCodeBytes() { + java.lang.Object ref = customerCountryCode_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + customerCountryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int OFFER_ID_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private volatile java.lang.Object offerId_ = ""; + + /** + * + * + *
+   * Merchant-provided id of the product. Segment.
+   * 
+ * + * optional string offer_id = 5; + * + * @return Whether the offerId field is set. + */ + @java.lang.Override + public boolean hasOfferId() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * Merchant-provided id of the product. Segment.
+   * 
+ * + * optional string offer_id = 5; + * + * @return The offerId. + */ + @java.lang.Override + public java.lang.String getOfferId() { + java.lang.Object ref = offerId_; + 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(); + offerId_ = s; + return s; + } + } + + /** + * + * + *
+   * Merchant-provided id of the product. Segment.
+   * 
+ * + * optional string offer_id = 5; + * + * @return The bytes for offerId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getOfferIdBytes() { + java.lang.Object ref = offerId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + offerId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TITLE_FIELD_NUMBER = 6; + + @SuppressWarnings("serial") + private volatile java.lang.Object title_ = ""; + + /** + * + * + *
+   * Title of the product. Segment.
+   * 
+ * + * optional string title = 6; + * + * @return Whether the title field is set. + */ + @java.lang.Override + public boolean hasTitle() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+   * Title of the product. Segment.
+   * 
+ * + * optional string title = 6; + * + * @return The title. + */ + @java.lang.Override + public java.lang.String getTitle() { + java.lang.Object ref = title_; + 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(); + title_ = s; + return s; + } + } + + /** + * + * + *
+   * Title of the product. Segment.
+   * 
+ * + * optional string title = 6; + * + * @return The bytes for title. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BRAND_FIELD_NUMBER = 7; + + @SuppressWarnings("serial") + private volatile java.lang.Object brand_ = ""; + + /** + * + * + *
+   * Brand of the product. Segment.
+   * 
+ * + * optional string brand = 7; + * + * @return Whether the brand field is set. + */ + @java.lang.Override + public boolean hasBrand() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+   * Brand of the product. Segment.
+   * 
+ * + * optional string brand = 7; + * + * @return The brand. + */ + @java.lang.Override + public java.lang.String getBrand() { + java.lang.Object ref = brand_; + 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(); + brand_ = s; + return s; + } + } + + /** + * + * + *
+   * Brand of the product. Segment.
+   * 
+ * + * optional string brand = 7; + * + * @return The bytes for brand. + */ + @java.lang.Override + public com.google.protobuf.ByteString getBrandBytes() { + java.lang.Object ref = brand_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + brand_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L1_FIELD_NUMBER = 8; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL1_ = ""; + + /** + * + * + *
+   * [Product category (1st
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l1 = 8; + * + * @return Whether the categoryL1 field is set. + */ + @java.lang.Override + public boolean hasCategoryL1() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+   * [Product category (1st
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l1 = 8; + * + * @return The categoryL1. + */ + @java.lang.Override + public java.lang.String getCategoryL1() { + java.lang.Object ref = categoryL1_; + 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(); + categoryL1_ = s; + return s; + } + } + + /** + * + * + *
+   * [Product category (1st
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l1 = 8; + * + * @return The bytes for categoryL1. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL1Bytes() { + java.lang.Object ref = categoryL1_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L2_FIELD_NUMBER = 9; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL2_ = ""; + + /** + * + * + *
+   * [Product category (2nd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l2 = 9; + * + * @return Whether the categoryL2 field is set. + */ + @java.lang.Override + public boolean hasCategoryL2() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+   * [Product category (2nd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l2 = 9; + * + * @return The categoryL2. + */ + @java.lang.Override + public java.lang.String getCategoryL2() { + java.lang.Object ref = categoryL2_; + 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(); + categoryL2_ = s; + return s; + } + } + + /** + * + * + *
+   * [Product category (2nd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l2 = 9; + * + * @return The bytes for categoryL2. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL2Bytes() { + java.lang.Object ref = categoryL2_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L3_FIELD_NUMBER = 10; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL3_ = ""; + + /** + * + * + *
+   * [Product category (3rd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l3 = 10; + * + * @return Whether the categoryL3 field is set. + */ + @java.lang.Override + public boolean hasCategoryL3() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+   * [Product category (3rd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l3 = 10; + * + * @return The categoryL3. + */ + @java.lang.Override + public java.lang.String getCategoryL3() { + java.lang.Object ref = categoryL3_; + 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(); + categoryL3_ = s; + return s; + } + } + + /** + * + * + *
+   * [Product category (3rd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l3 = 10; + * + * @return The bytes for categoryL3. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL3Bytes() { + java.lang.Object ref = categoryL3_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L4_FIELD_NUMBER = 11; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL4_ = ""; + + /** + * + * + *
+   * [Product category (4th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l4 = 11; + * + * @return Whether the categoryL4 field is set. + */ + @java.lang.Override + public boolean hasCategoryL4() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+   * [Product category (4th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l4 = 11; + * + * @return The categoryL4. + */ + @java.lang.Override + public java.lang.String getCategoryL4() { + java.lang.Object ref = categoryL4_; + 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(); + categoryL4_ = s; + return s; + } + } + + /** + * + * + *
+   * [Product category (4th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l4 = 11; + * + * @return The bytes for categoryL4. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL4Bytes() { + java.lang.Object ref = categoryL4_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L5_FIELD_NUMBER = 12; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL5_ = ""; + + /** + * + * + *
+   * [Product category (5th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l5 = 12; + * + * @return Whether the categoryL5 field is set. + */ + @java.lang.Override + public boolean hasCategoryL5() { + return ((bitField0_ & 0x00000800) != 0); + } + + /** + * + * + *
+   * [Product category (5th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l5 = 12; + * + * @return The categoryL5. + */ + @java.lang.Override + public java.lang.String getCategoryL5() { + java.lang.Object ref = categoryL5_; + 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(); + categoryL5_ = s; + return s; + } + } + + /** + * + * + *
+   * [Product category (5th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l5 = 12; + * + * @return The bytes for categoryL5. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL5Bytes() { + java.lang.Object ref = categoryL5_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L1_FIELD_NUMBER = 13; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL1_ = ""; + + /** + * + * + *
+   * [Product type (1st
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l1 = 13; + * + * @return Whether the productTypeL1 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL1() { + return ((bitField0_ & 0x00001000) != 0); + } + + /** + * + * + *
+   * [Product type (1st
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l1 = 13; + * + * @return The productTypeL1. + */ + @java.lang.Override + public java.lang.String getProductTypeL1() { + java.lang.Object ref = productTypeL1_; + 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(); + productTypeL1_ = s; + return s; + } + } + + /** + * + * + *
+   * [Product type (1st
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l1 = 13; + * + * @return The bytes for productTypeL1. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL1Bytes() { + java.lang.Object ref = productTypeL1_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L2_FIELD_NUMBER = 14; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL2_ = ""; + + /** + * + * + *
+   * [Product type (2nd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l2 = 14; + * + * @return Whether the productTypeL2 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL2() { + return ((bitField0_ & 0x00002000) != 0); + } + + /** + * + * + *
+   * [Product type (2nd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l2 = 14; + * + * @return The productTypeL2. + */ + @java.lang.Override + public java.lang.String getProductTypeL2() { + java.lang.Object ref = productTypeL2_; + 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(); + productTypeL2_ = s; + return s; + } + } + + /** + * + * + *
+   * [Product type (2nd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l2 = 14; + * + * @return The bytes for productTypeL2. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL2Bytes() { + java.lang.Object ref = productTypeL2_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L3_FIELD_NUMBER = 15; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL3_ = ""; + + /** + * + * + *
+   * [Product type (3rd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l3 = 15; + * + * @return Whether the productTypeL3 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL3() { + return ((bitField0_ & 0x00004000) != 0); + } + + /** + * + * + *
+   * [Product type (3rd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l3 = 15; + * + * @return The productTypeL3. + */ + @java.lang.Override + public java.lang.String getProductTypeL3() { + java.lang.Object ref = productTypeL3_; + 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(); + productTypeL3_ = s; + return s; + } + } + + /** + * + * + *
+   * [Product type (3rd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l3 = 15; + * + * @return The bytes for productTypeL3. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL3Bytes() { + java.lang.Object ref = productTypeL3_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L4_FIELD_NUMBER = 16; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL4_ = ""; + + /** + * + * + *
+   * [Product type (4th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l4 = 16; + * + * @return Whether the productTypeL4 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL4() { + return ((bitField0_ & 0x00008000) != 0); + } + + /** + * + * + *
+   * [Product type (4th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l4 = 16; + * + * @return The productTypeL4. + */ + @java.lang.Override + public java.lang.String getProductTypeL4() { + java.lang.Object ref = productTypeL4_; + 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(); + productTypeL4_ = s; + return s; + } + } + + /** + * + * + *
+   * [Product type (4th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l4 = 16; + * + * @return The bytes for productTypeL4. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL4Bytes() { + java.lang.Object ref = productTypeL4_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L5_FIELD_NUMBER = 17; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL5_ = ""; + + /** + * + * + *
+   * [Product type (5th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l5 = 17; + * + * @return Whether the productTypeL5 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL5() { + return ((bitField0_ & 0x00010000) != 0); + } + + /** + * + * + *
+   * [Product type (5th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l5 = 17; + * + * @return The productTypeL5. + */ + @java.lang.Override + public java.lang.String getProductTypeL5() { + java.lang.Object ref = productTypeL5_; + 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(); + productTypeL5_ = s; + return s; + } + } + + /** + * + * + *
+   * [Product type (5th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l5 = 17; + * + * @return The bytes for productTypeL5. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL5Bytes() { + java.lang.Object ref = productTypeL5_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CUSTOM_LABEL0_FIELD_NUMBER = 18; + + @SuppressWarnings("serial") + private volatile java.lang.Object customLabel0_ = ""; + + /** + * + * + *
+   * Custom label 0 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label0 = 18; + * + * @return Whether the customLabel0 field is set. + */ + @java.lang.Override + public boolean hasCustomLabel0() { + return ((bitField0_ & 0x00020000) != 0); + } + + /** + * + * + *
+   * Custom label 0 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label0 = 18; + * + * @return The customLabel0. + */ + @java.lang.Override + public java.lang.String getCustomLabel0() { + java.lang.Object ref = customLabel0_; + 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(); + customLabel0_ = s; + return s; + } + } + + /** + * + * + *
+   * Custom label 0 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label0 = 18; + * + * @return The bytes for customLabel0. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCustomLabel0Bytes() { + java.lang.Object ref = customLabel0_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + customLabel0_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CUSTOM_LABEL1_FIELD_NUMBER = 19; + + @SuppressWarnings("serial") + private volatile java.lang.Object customLabel1_ = ""; + + /** + * + * + *
+   * Custom label 1 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label1 = 19; + * + * @return Whether the customLabel1 field is set. + */ + @java.lang.Override + public boolean hasCustomLabel1() { + return ((bitField0_ & 0x00040000) != 0); + } + + /** + * + * + *
+   * Custom label 1 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label1 = 19; + * + * @return The customLabel1. + */ + @java.lang.Override + public java.lang.String getCustomLabel1() { + java.lang.Object ref = customLabel1_; + 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(); + customLabel1_ = s; + return s; + } + } + + /** + * + * + *
+   * Custom label 1 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label1 = 19; + * + * @return The bytes for customLabel1. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCustomLabel1Bytes() { + java.lang.Object ref = customLabel1_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + customLabel1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CUSTOM_LABEL2_FIELD_NUMBER = 20; + + @SuppressWarnings("serial") + private volatile java.lang.Object customLabel2_ = ""; + + /** + * + * + *
+   * Custom label 2 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label2 = 20; + * + * @return Whether the customLabel2 field is set. + */ + @java.lang.Override + public boolean hasCustomLabel2() { + return ((bitField0_ & 0x00080000) != 0); + } + + /** + * + * + *
+   * Custom label 2 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label2 = 20; + * + * @return The customLabel2. + */ + @java.lang.Override + public java.lang.String getCustomLabel2() { + java.lang.Object ref = customLabel2_; + 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(); + customLabel2_ = s; + return s; + } + } + + /** + * + * + *
+   * Custom label 2 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label2 = 20; + * + * @return The bytes for customLabel2. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCustomLabel2Bytes() { + java.lang.Object ref = customLabel2_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + customLabel2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CUSTOM_LABEL3_FIELD_NUMBER = 21; + + @SuppressWarnings("serial") + private volatile java.lang.Object customLabel3_ = ""; + + /** + * + * + *
+   * Custom label 3 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label3 = 21; + * + * @return Whether the customLabel3 field is set. + */ + @java.lang.Override + public boolean hasCustomLabel3() { + return ((bitField0_ & 0x00100000) != 0); + } + + /** + * + * + *
+   * Custom label 3 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label3 = 21; + * + * @return The customLabel3. + */ + @java.lang.Override + public java.lang.String getCustomLabel3() { + java.lang.Object ref = customLabel3_; + 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(); + customLabel3_ = s; + return s; + } + } + + /** + * + * + *
+   * Custom label 3 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label3 = 21; + * + * @return The bytes for customLabel3. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCustomLabel3Bytes() { + java.lang.Object ref = customLabel3_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + customLabel3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CUSTOM_LABEL4_FIELD_NUMBER = 22; + + @SuppressWarnings("serial") + private volatile java.lang.Object customLabel4_ = ""; + + /** + * + * + *
+   * Custom label 4 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label4 = 22; + * + * @return Whether the customLabel4 field is set. + */ + @java.lang.Override + public boolean hasCustomLabel4() { + return ((bitField0_ & 0x00200000) != 0); + } + + /** + * + * + *
+   * Custom label 4 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label4 = 22; + * + * @return The customLabel4. + */ + @java.lang.Override + public java.lang.String getCustomLabel4() { + java.lang.Object ref = customLabel4_; + 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(); + customLabel4_ = s; + return s; + } + } + + /** + * + * + *
+   * Custom label 4 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label4 = 22; + * + * @return The bytes for customLabel4. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCustomLabel4Bytes() { + java.lang.Object ref = customLabel4_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + customLabel4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CLICKS_FIELD_NUMBER = 23; + private long clicks_ = 0L; + + /** + * + * + *
+   * Number of clicks. Metric.
+   * 
+ * + * optional int64 clicks = 23; + * + * @return Whether the clicks field is set. + */ + @java.lang.Override + public boolean hasClicks() { + return ((bitField0_ & 0x00400000) != 0); + } + + /** + * + * + *
+   * Number of clicks. Metric.
+   * 
+ * + * optional int64 clicks = 23; + * + * @return The clicks. + */ + @java.lang.Override + public long getClicks() { + return clicks_; + } + + public static final int IMPRESSIONS_FIELD_NUMBER = 24; + private long impressions_ = 0L; + + /** + * + * + *
+   * Number of times merchant's products are shown. Metric.
+   * 
+ * + * optional int64 impressions = 24; + * + * @return Whether the impressions field is set. + */ + @java.lang.Override + public boolean hasImpressions() { + return ((bitField0_ & 0x00800000) != 0); + } + + /** + * + * + *
+   * Number of times merchant's products are shown. Metric.
+   * 
+ * + * optional int64 impressions = 24; + * + * @return The impressions. + */ + @java.lang.Override + public long getImpressions() { + return impressions_; + } + + public static final int CLICK_THROUGH_RATE_FIELD_NUMBER = 25; + private double clickThroughRate_ = 0D; + + /** + * + * + *
+   * Click-through rate - the number of clicks merchant's products receive
+   * (clicks) divided by the number of times the products are shown
+   * (impressions). Metric.
+   * 
+ * + * optional double click_through_rate = 25; + * + * @return Whether the clickThroughRate field is set. + */ + @java.lang.Override + public boolean hasClickThroughRate() { + return ((bitField0_ & 0x01000000) != 0); + } + + /** + * + * + *
+   * Click-through rate - the number of clicks merchant's products receive
+   * (clicks) divided by the number of times the products are shown
+   * (impressions). Metric.
+   * 
+ * + * optional double click_through_rate = 25; + * + * @return The clickThroughRate. + */ + @java.lang.Override + public double getClickThroughRate() { + return clickThroughRate_; + } + + public static final int CONVERSIONS_FIELD_NUMBER = 26; + private double conversions_ = 0D; + + /** + * + * + *
+   * Number of conversions attributed to the product, reported on the conversion
+   * date. Depending on the attribution model, a conversion might be distributed
+   * across multiple clicks, where each click gets its own credit assigned. This
+   * metric is a sum of all such credits. Metric.
+   *
+   * Available only for the `FREE` traffic source.
+   * 
+ * + * optional double conversions = 26; + * + * @return Whether the conversions field is set. + */ + @java.lang.Override + public boolean hasConversions() { + return ((bitField0_ & 0x02000000) != 0); + } + + /** + * + * + *
+   * Number of conversions attributed to the product, reported on the conversion
+   * date. Depending on the attribution model, a conversion might be distributed
+   * across multiple clicks, where each click gets its own credit assigned. This
+   * metric is a sum of all such credits. Metric.
+   *
+   * Available only for the `FREE` traffic source.
+   * 
+ * + * optional double conversions = 26; + * + * @return The conversions. + */ + @java.lang.Override + public double getConversions() { + return conversions_; + } + + public static final int CONVERSION_VALUE_FIELD_NUMBER = 27; + private com.google.shopping.type.Price conversionValue_; + + /** + * + * + *
+   * Value of conversions attributed to the product, reported on the conversion
+   * date. Metric.
+   *
+   * Available only for the `FREE` traffic source.
+   * 
+ * + * .google.shopping.type.Price conversion_value = 27; + * + * @return Whether the conversionValue field is set. + */ + @java.lang.Override + public boolean hasConversionValue() { + return ((bitField0_ & 0x04000000) != 0); + } + + /** + * + * + *
+   * Value of conversions attributed to the product, reported on the conversion
+   * date. Metric.
+   *
+   * Available only for the `FREE` traffic source.
+   * 
+ * + * .google.shopping.type.Price conversion_value = 27; + * + * @return The conversionValue. + */ + @java.lang.Override + public com.google.shopping.type.Price getConversionValue() { + return conversionValue_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : conversionValue_; + } + + /** + * + * + *
+   * Value of conversions attributed to the product, reported on the conversion
+   * date. Metric.
+   *
+   * Available only for the `FREE` traffic source.
+   * 
+ * + * .google.shopping.type.Price conversion_value = 27; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getConversionValueOrBuilder() { + return conversionValue_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : conversionValue_; + } + + public static final int CONVERSION_RATE_FIELD_NUMBER = 28; + private double conversionRate_ = 0D; + + /** + * + * + *
+   * Number of conversions divided by the number of clicks, reported on the
+   * impression date. Metric.
+   *
+   * Available only for the `FREE` traffic source.
+   * 
+ * + * optional double conversion_rate = 28; + * + * @return Whether the conversionRate field is set. + */ + @java.lang.Override + public boolean hasConversionRate() { + return ((bitField0_ & 0x08000000) != 0); + } + + /** + * + * + *
+   * Number of conversions divided by the number of clicks, reported on the
+   * impression date. Metric.
+   *
+   * Available only for the `FREE` traffic source.
+   * 
+ * + * optional double conversion_rate = 28; + * + * @return The conversionRate. + */ + @java.lang.Override + public double getConversionRate() { + return conversionRate_; + } + + 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 (((bitField0_ & 0x00000001) != 0)) { + output.writeEnum(1, marketingMethod_); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(2, getDate()); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeMessage(3, getWeek()); + } + if (((bitField0_ & 0x00000008) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, customerCountryCode_); + } + if (((bitField0_ & 0x00000010) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, offerId_); + } + if (((bitField0_ & 0x00000020) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, title_); + } + if (((bitField0_ & 0x00000040) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, brand_); + } + if (((bitField0_ & 0x00000080) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 8, categoryL1_); + } + if (((bitField0_ & 0x00000100) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 9, categoryL2_); + } + if (((bitField0_ & 0x00000200) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 10, categoryL3_); + } + if (((bitField0_ & 0x00000400) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 11, categoryL4_); + } + if (((bitField0_ & 0x00000800) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 12, categoryL5_); + } + if (((bitField0_ & 0x00001000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 13, productTypeL1_); + } + if (((bitField0_ & 0x00002000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 14, productTypeL2_); + } + if (((bitField0_ & 0x00004000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 15, productTypeL3_); + } + if (((bitField0_ & 0x00008000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 16, productTypeL4_); + } + if (((bitField0_ & 0x00010000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 17, productTypeL5_); + } + if (((bitField0_ & 0x00020000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 18, customLabel0_); + } + if (((bitField0_ & 0x00040000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 19, customLabel1_); + } + if (((bitField0_ & 0x00080000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 20, customLabel2_); + } + if (((bitField0_ & 0x00100000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 21, customLabel3_); + } + if (((bitField0_ & 0x00200000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 22, customLabel4_); + } + if (((bitField0_ & 0x00400000) != 0)) { + output.writeInt64(23, clicks_); + } + if (((bitField0_ & 0x00800000) != 0)) { + output.writeInt64(24, impressions_); + } + if (((bitField0_ & 0x01000000) != 0)) { + output.writeDouble(25, clickThroughRate_); + } + if (((bitField0_ & 0x02000000) != 0)) { + output.writeDouble(26, conversions_); + } + if (((bitField0_ & 0x04000000) != 0)) { + output.writeMessage(27, getConversionValue()); + } + if (((bitField0_ & 0x08000000) != 0)) { + output.writeDouble(28, conversionRate_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, marketingMethod_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getDate()); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getWeek()); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, customerCountryCode_); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, offerId_); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, title_); + } + if (((bitField0_ & 0x00000040) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, brand_); + } + if (((bitField0_ & 0x00000080) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, categoryL1_); + } + if (((bitField0_ & 0x00000100) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, categoryL2_); + } + if (((bitField0_ & 0x00000200) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, categoryL3_); + } + if (((bitField0_ & 0x00000400) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, categoryL4_); + } + if (((bitField0_ & 0x00000800) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, categoryL5_); + } + if (((bitField0_ & 0x00001000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, productTypeL1_); + } + if (((bitField0_ & 0x00002000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, productTypeL2_); + } + if (((bitField0_ & 0x00004000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, productTypeL3_); + } + if (((bitField0_ & 0x00008000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, productTypeL4_); + } + if (((bitField0_ & 0x00010000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(17, productTypeL5_); + } + if (((bitField0_ & 0x00020000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(18, customLabel0_); + } + if (((bitField0_ & 0x00040000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(19, customLabel1_); + } + if (((bitField0_ & 0x00080000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(20, customLabel2_); + } + if (((bitField0_ & 0x00100000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(21, customLabel3_); + } + if (((bitField0_ & 0x00200000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(22, customLabel4_); + } + if (((bitField0_ & 0x00400000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(23, clicks_); + } + if (((bitField0_ & 0x00800000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(24, impressions_); + } + if (((bitField0_ & 0x01000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(25, clickThroughRate_); + } + if (((bitField0_ & 0x02000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(26, conversions_); + } + if (((bitField0_ & 0x04000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(27, getConversionValue()); + } + if (((bitField0_ & 0x08000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(28, conversionRate_); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.ProductPerformanceView)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView other = + (com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView) obj; + + if (hasMarketingMethod() != other.hasMarketingMethod()) return false; + if (hasMarketingMethod()) { + if (marketingMethod_ != other.marketingMethod_) return false; + } + if (hasDate() != other.hasDate()) return false; + if (hasDate()) { + if (!getDate().equals(other.getDate())) return false; + } + if (hasWeek() != other.hasWeek()) return false; + if (hasWeek()) { + if (!getWeek().equals(other.getWeek())) return false; + } + if (hasCustomerCountryCode() != other.hasCustomerCountryCode()) return false; + if (hasCustomerCountryCode()) { + if (!getCustomerCountryCode().equals(other.getCustomerCountryCode())) return false; + } + if (hasOfferId() != other.hasOfferId()) return false; + if (hasOfferId()) { + if (!getOfferId().equals(other.getOfferId())) return false; + } + if (hasTitle() != other.hasTitle()) return false; + if (hasTitle()) { + if (!getTitle().equals(other.getTitle())) return false; + } + if (hasBrand() != other.hasBrand()) return false; + if (hasBrand()) { + if (!getBrand().equals(other.getBrand())) return false; + } + if (hasCategoryL1() != other.hasCategoryL1()) return false; + if (hasCategoryL1()) { + if (!getCategoryL1().equals(other.getCategoryL1())) return false; + } + if (hasCategoryL2() != other.hasCategoryL2()) return false; + if (hasCategoryL2()) { + if (!getCategoryL2().equals(other.getCategoryL2())) return false; + } + if (hasCategoryL3() != other.hasCategoryL3()) return false; + if (hasCategoryL3()) { + if (!getCategoryL3().equals(other.getCategoryL3())) return false; + } + if (hasCategoryL4() != other.hasCategoryL4()) return false; + if (hasCategoryL4()) { + if (!getCategoryL4().equals(other.getCategoryL4())) return false; + } + if (hasCategoryL5() != other.hasCategoryL5()) return false; + if (hasCategoryL5()) { + if (!getCategoryL5().equals(other.getCategoryL5())) return false; + } + if (hasProductTypeL1() != other.hasProductTypeL1()) return false; + if (hasProductTypeL1()) { + if (!getProductTypeL1().equals(other.getProductTypeL1())) return false; + } + if (hasProductTypeL2() != other.hasProductTypeL2()) return false; + if (hasProductTypeL2()) { + if (!getProductTypeL2().equals(other.getProductTypeL2())) return false; + } + if (hasProductTypeL3() != other.hasProductTypeL3()) return false; + if (hasProductTypeL3()) { + if (!getProductTypeL3().equals(other.getProductTypeL3())) return false; + } + if (hasProductTypeL4() != other.hasProductTypeL4()) return false; + if (hasProductTypeL4()) { + if (!getProductTypeL4().equals(other.getProductTypeL4())) return false; + } + if (hasProductTypeL5() != other.hasProductTypeL5()) return false; + if (hasProductTypeL5()) { + if (!getProductTypeL5().equals(other.getProductTypeL5())) return false; + } + if (hasCustomLabel0() != other.hasCustomLabel0()) return false; + if (hasCustomLabel0()) { + if (!getCustomLabel0().equals(other.getCustomLabel0())) return false; + } + if (hasCustomLabel1() != other.hasCustomLabel1()) return false; + if (hasCustomLabel1()) { + if (!getCustomLabel1().equals(other.getCustomLabel1())) return false; + } + if (hasCustomLabel2() != other.hasCustomLabel2()) return false; + if (hasCustomLabel2()) { + if (!getCustomLabel2().equals(other.getCustomLabel2())) return false; + } + if (hasCustomLabel3() != other.hasCustomLabel3()) return false; + if (hasCustomLabel3()) { + if (!getCustomLabel3().equals(other.getCustomLabel3())) return false; + } + if (hasCustomLabel4() != other.hasCustomLabel4()) return false; + if (hasCustomLabel4()) { + if (!getCustomLabel4().equals(other.getCustomLabel4())) return false; + } + if (hasClicks() != other.hasClicks()) return false; + if (hasClicks()) { + if (getClicks() != other.getClicks()) return false; + } + if (hasImpressions() != other.hasImpressions()) return false; + if (hasImpressions()) { + if (getImpressions() != other.getImpressions()) return false; + } + if (hasClickThroughRate() != other.hasClickThroughRate()) return false; + if (hasClickThroughRate()) { + if (java.lang.Double.doubleToLongBits(getClickThroughRate()) + != java.lang.Double.doubleToLongBits(other.getClickThroughRate())) return false; + } + if (hasConversions() != other.hasConversions()) return false; + if (hasConversions()) { + if (java.lang.Double.doubleToLongBits(getConversions()) + != java.lang.Double.doubleToLongBits(other.getConversions())) return false; + } + if (hasConversionValue() != other.hasConversionValue()) return false; + if (hasConversionValue()) { + if (!getConversionValue().equals(other.getConversionValue())) return false; + } + if (hasConversionRate() != other.hasConversionRate()) return false; + if (hasConversionRate()) { + if (java.lang.Double.doubleToLongBits(getConversionRate()) + != java.lang.Double.doubleToLongBits(other.getConversionRate())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasMarketingMethod()) { + hash = (37 * hash) + MARKETING_METHOD_FIELD_NUMBER; + hash = (53 * hash) + marketingMethod_; + } + if (hasDate()) { + hash = (37 * hash) + DATE_FIELD_NUMBER; + hash = (53 * hash) + getDate().hashCode(); + } + if (hasWeek()) { + hash = (37 * hash) + WEEK_FIELD_NUMBER; + hash = (53 * hash) + getWeek().hashCode(); + } + if (hasCustomerCountryCode()) { + hash = (37 * hash) + CUSTOMER_COUNTRY_CODE_FIELD_NUMBER; + hash = (53 * hash) + getCustomerCountryCode().hashCode(); + } + if (hasOfferId()) { + hash = (37 * hash) + OFFER_ID_FIELD_NUMBER; + hash = (53 * hash) + getOfferId().hashCode(); + } + if (hasTitle()) { + hash = (37 * hash) + TITLE_FIELD_NUMBER; + hash = (53 * hash) + getTitle().hashCode(); + } + if (hasBrand()) { + hash = (37 * hash) + BRAND_FIELD_NUMBER; + hash = (53 * hash) + getBrand().hashCode(); + } + if (hasCategoryL1()) { + hash = (37 * hash) + CATEGORY_L1_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL1().hashCode(); + } + if (hasCategoryL2()) { + hash = (37 * hash) + CATEGORY_L2_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL2().hashCode(); + } + if (hasCategoryL3()) { + hash = (37 * hash) + CATEGORY_L3_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL3().hashCode(); + } + if (hasCategoryL4()) { + hash = (37 * hash) + CATEGORY_L4_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL4().hashCode(); + } + if (hasCategoryL5()) { + hash = (37 * hash) + CATEGORY_L5_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL5().hashCode(); + } + if (hasProductTypeL1()) { + hash = (37 * hash) + PRODUCT_TYPE_L1_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL1().hashCode(); + } + if (hasProductTypeL2()) { + hash = (37 * hash) + PRODUCT_TYPE_L2_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL2().hashCode(); + } + if (hasProductTypeL3()) { + hash = (37 * hash) + PRODUCT_TYPE_L3_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL3().hashCode(); + } + if (hasProductTypeL4()) { + hash = (37 * hash) + PRODUCT_TYPE_L4_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL4().hashCode(); + } + if (hasProductTypeL5()) { + hash = (37 * hash) + PRODUCT_TYPE_L5_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL5().hashCode(); + } + if (hasCustomLabel0()) { + hash = (37 * hash) + CUSTOM_LABEL0_FIELD_NUMBER; + hash = (53 * hash) + getCustomLabel0().hashCode(); + } + if (hasCustomLabel1()) { + hash = (37 * hash) + CUSTOM_LABEL1_FIELD_NUMBER; + hash = (53 * hash) + getCustomLabel1().hashCode(); + } + if (hasCustomLabel2()) { + hash = (37 * hash) + CUSTOM_LABEL2_FIELD_NUMBER; + hash = (53 * hash) + getCustomLabel2().hashCode(); + } + if (hasCustomLabel3()) { + hash = (37 * hash) + CUSTOM_LABEL3_FIELD_NUMBER; + hash = (53 * hash) + getCustomLabel3().hashCode(); + } + if (hasCustomLabel4()) { + hash = (37 * hash) + CUSTOM_LABEL4_FIELD_NUMBER; + hash = (53 * hash) + getCustomLabel4().hashCode(); + } + if (hasClicks()) { + hash = (37 * hash) + CLICKS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getClicks()); + } + if (hasImpressions()) { + hash = (37 * hash) + IMPRESSIONS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getImpressions()); + } + if (hasClickThroughRate()) { + hash = (37 * hash) + CLICK_THROUGH_RATE_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getClickThroughRate())); + } + if (hasConversions()) { + hash = (37 * hash) + CONVERSIONS_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getConversions())); + } + if (hasConversionValue()) { + hash = (37 * hash) + CONVERSION_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getConversionValue().hashCode(); + } + if (hasConversionRate()) { + hash = (37 * hash) + CONVERSION_RATE_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getConversionRate())); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView 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.shopping.merchant.reports.v1alpha.ProductPerformanceView parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView 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.shopping.merchant.reports.v1alpha.ProductPerformanceView + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView + 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.shopping.merchant.reports.v1alpha.ProductPerformanceView parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView 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.shopping.merchant.reports.v1alpha.ProductPerformanceView 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; + } + + /** + * + * + *
+   * Fields available for query in `product_performance_view` table.
+   *
+   * Product performance data for your account, including performance metrics (for
+   * example, `clicks`) and dimensions according to which performance metrics are
+   * segmented (for example, `offer_id`). Values of product dimensions, such as
+   * `offer_id`, reflect the state of a product at the time of the impression.
+   *
+   * Segment fields cannot be selected in queries without also selecting at least
+   * one metric field.
+   *
+   * Values are only set for fields requested explicitly in the request's search
+   * query.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ProductPerformanceView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.ProductPerformanceView) + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceViewOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductPerformanceView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductPerformanceView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.class, + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.Builder.class); + } + + // Construct using + // com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getDateFieldBuilder(); + getWeekFieldBuilder(); + getConversionValueFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + marketingMethod_ = 0; + date_ = null; + if (dateBuilder_ != null) { + dateBuilder_.dispose(); + dateBuilder_ = null; + } + week_ = null; + if (weekBuilder_ != null) { + weekBuilder_.dispose(); + weekBuilder_ = null; + } + customerCountryCode_ = ""; + offerId_ = ""; + title_ = ""; + brand_ = ""; + categoryL1_ = ""; + categoryL2_ = ""; + categoryL3_ = ""; + categoryL4_ = ""; + categoryL5_ = ""; + productTypeL1_ = ""; + productTypeL2_ = ""; + productTypeL3_ = ""; + productTypeL4_ = ""; + productTypeL5_ = ""; + customLabel0_ = ""; + customLabel1_ = ""; + customLabel2_ = ""; + customLabel3_ = ""; + customLabel4_ = ""; + clicks_ = 0L; + impressions_ = 0L; + clickThroughRate_ = 0D; + conversions_ = 0D; + conversionValue_ = null; + if (conversionValueBuilder_ != null) { + conversionValueBuilder_.dispose(); + conversionValueBuilder_ = null; + } + conversionRate_ = 0D; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductPerformanceView_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView build() { + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView buildPartial() { + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView result = + new com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.marketingMethod_ = marketingMethod_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.date_ = dateBuilder_ == null ? date_ : dateBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.week_ = weekBuilder_ == null ? week_ : weekBuilder_.build(); + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.customerCountryCode_ = customerCountryCode_; + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.offerId_ = offerId_; + to_bitField0_ |= 0x00000010; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.title_ = title_; + to_bitField0_ |= 0x00000020; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.brand_ = brand_; + to_bitField0_ |= 0x00000040; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.categoryL1_ = categoryL1_; + to_bitField0_ |= 0x00000080; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.categoryL2_ = categoryL2_; + to_bitField0_ |= 0x00000100; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.categoryL3_ = categoryL3_; + to_bitField0_ |= 0x00000200; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.categoryL4_ = categoryL4_; + to_bitField0_ |= 0x00000400; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.categoryL5_ = categoryL5_; + to_bitField0_ |= 0x00000800; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.productTypeL1_ = productTypeL1_; + to_bitField0_ |= 0x00001000; + } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.productTypeL2_ = productTypeL2_; + to_bitField0_ |= 0x00002000; + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.productTypeL3_ = productTypeL3_; + to_bitField0_ |= 0x00004000; + } + if (((from_bitField0_ & 0x00008000) != 0)) { + result.productTypeL4_ = productTypeL4_; + to_bitField0_ |= 0x00008000; + } + if (((from_bitField0_ & 0x00010000) != 0)) { + result.productTypeL5_ = productTypeL5_; + to_bitField0_ |= 0x00010000; + } + if (((from_bitField0_ & 0x00020000) != 0)) { + result.customLabel0_ = customLabel0_; + to_bitField0_ |= 0x00020000; + } + if (((from_bitField0_ & 0x00040000) != 0)) { + result.customLabel1_ = customLabel1_; + to_bitField0_ |= 0x00040000; + } + if (((from_bitField0_ & 0x00080000) != 0)) { + result.customLabel2_ = customLabel2_; + to_bitField0_ |= 0x00080000; + } + if (((from_bitField0_ & 0x00100000) != 0)) { + result.customLabel3_ = customLabel3_; + to_bitField0_ |= 0x00100000; + } + if (((from_bitField0_ & 0x00200000) != 0)) { + result.customLabel4_ = customLabel4_; + to_bitField0_ |= 0x00200000; + } + if (((from_bitField0_ & 0x00400000) != 0)) { + result.clicks_ = clicks_; + to_bitField0_ |= 0x00400000; + } + if (((from_bitField0_ & 0x00800000) != 0)) { + result.impressions_ = impressions_; + to_bitField0_ |= 0x00800000; + } + if (((from_bitField0_ & 0x01000000) != 0)) { + result.clickThroughRate_ = clickThroughRate_; + to_bitField0_ |= 0x01000000; + } + if (((from_bitField0_ & 0x02000000) != 0)) { + result.conversions_ = conversions_; + to_bitField0_ |= 0x02000000; + } + if (((from_bitField0_ & 0x04000000) != 0)) { + result.conversionValue_ = + conversionValueBuilder_ == null ? conversionValue_ : conversionValueBuilder_.build(); + to_bitField0_ |= 0x04000000; + } + if (((from_bitField0_ & 0x08000000) != 0)) { + result.conversionRate_ = conversionRate_; + to_bitField0_ |= 0x08000000; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.ProductPerformanceView) { + return mergeFrom( + (com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView + .getDefaultInstance()) return this; + if (other.hasMarketingMethod()) { + setMarketingMethod(other.getMarketingMethod()); + } + if (other.hasDate()) { + mergeDate(other.getDate()); + } + if (other.hasWeek()) { + mergeWeek(other.getWeek()); + } + if (other.hasCustomerCountryCode()) { + customerCountryCode_ = other.customerCountryCode_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (other.hasOfferId()) { + offerId_ = other.offerId_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (other.hasTitle()) { + title_ = other.title_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (other.hasBrand()) { + brand_ = other.brand_; + bitField0_ |= 0x00000040; + onChanged(); + } + if (other.hasCategoryL1()) { + categoryL1_ = other.categoryL1_; + bitField0_ |= 0x00000080; + onChanged(); + } + if (other.hasCategoryL2()) { + categoryL2_ = other.categoryL2_; + bitField0_ |= 0x00000100; + onChanged(); + } + if (other.hasCategoryL3()) { + categoryL3_ = other.categoryL3_; + bitField0_ |= 0x00000200; + onChanged(); + } + if (other.hasCategoryL4()) { + categoryL4_ = other.categoryL4_; + bitField0_ |= 0x00000400; + onChanged(); + } + if (other.hasCategoryL5()) { + categoryL5_ = other.categoryL5_; + bitField0_ |= 0x00000800; + onChanged(); + } + if (other.hasProductTypeL1()) { + productTypeL1_ = other.productTypeL1_; + bitField0_ |= 0x00001000; + onChanged(); + } + if (other.hasProductTypeL2()) { + productTypeL2_ = other.productTypeL2_; + bitField0_ |= 0x00002000; + onChanged(); + } + if (other.hasProductTypeL3()) { + productTypeL3_ = other.productTypeL3_; + bitField0_ |= 0x00004000; + onChanged(); + } + if (other.hasProductTypeL4()) { + productTypeL4_ = other.productTypeL4_; + bitField0_ |= 0x00008000; + onChanged(); + } + if (other.hasProductTypeL5()) { + productTypeL5_ = other.productTypeL5_; + bitField0_ |= 0x00010000; + onChanged(); + } + if (other.hasCustomLabel0()) { + customLabel0_ = other.customLabel0_; + bitField0_ |= 0x00020000; + onChanged(); + } + if (other.hasCustomLabel1()) { + customLabel1_ = other.customLabel1_; + bitField0_ |= 0x00040000; + onChanged(); + } + if (other.hasCustomLabel2()) { + customLabel2_ = other.customLabel2_; + bitField0_ |= 0x00080000; + onChanged(); + } + if (other.hasCustomLabel3()) { + customLabel3_ = other.customLabel3_; + bitField0_ |= 0x00100000; + onChanged(); + } + if (other.hasCustomLabel4()) { + customLabel4_ = other.customLabel4_; + bitField0_ |= 0x00200000; + onChanged(); + } + if (other.hasClicks()) { + setClicks(other.getClicks()); + } + if (other.hasImpressions()) { + setImpressions(other.getImpressions()); + } + if (other.hasClickThroughRate()) { + setClickThroughRate(other.getClickThroughRate()); + } + if (other.hasConversions()) { + setConversions(other.getConversions()); + } + if (other.hasConversionValue()) { + mergeConversionValue(other.getConversionValue()); + } + if (other.hasConversionRate()) { + setConversionRate(other.getConversionRate()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: + { + marketingMethod_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: + { + input.readMessage(getDateFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + input.readMessage(getWeekFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + customerCountryCode_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: + { + offerId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 50: + { + title_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 58: + { + brand_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 66: + { + categoryL1_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000080; + break; + } // case 66 + case 74: + { + categoryL2_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000100; + break; + } // case 74 + case 82: + { + categoryL3_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000200; + break; + } // case 82 + case 90: + { + categoryL4_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000400; + break; + } // case 90 + case 98: + { + categoryL5_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000800; + break; + } // case 98 + case 106: + { + productTypeL1_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00001000; + break; + } // case 106 + case 114: + { + productTypeL2_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00002000; + break; + } // case 114 + case 122: + { + productTypeL3_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00004000; + break; + } // case 122 + case 130: + { + productTypeL4_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00008000; + break; + } // case 130 + case 138: + { + productTypeL5_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00010000; + break; + } // case 138 + case 146: + { + customLabel0_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00020000; + break; + } // case 146 + case 154: + { + customLabel1_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00040000; + break; + } // case 154 + case 162: + { + customLabel2_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00080000; + break; + } // case 162 + case 170: + { + customLabel3_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00100000; + break; + } // case 170 + case 178: + { + customLabel4_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00200000; + break; + } // case 178 + case 184: + { + clicks_ = input.readInt64(); + bitField0_ |= 0x00400000; + break; + } // case 184 + case 192: + { + impressions_ = input.readInt64(); + bitField0_ |= 0x00800000; + break; + } // case 192 + case 201: + { + clickThroughRate_ = input.readDouble(); + bitField0_ |= 0x01000000; + break; + } // case 201 + case 209: + { + conversions_ = input.readDouble(); + bitField0_ |= 0x02000000; + break; + } // case 209 + case 218: + { + input.readMessage(getConversionValueFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x04000000; + break; + } // case 218 + case 225: + { + conversionRate_ = input.readDouble(); + bitField0_ |= 0x08000000; + break; + } // case 225 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private int marketingMethod_ = 0; + + /** + * + * + *
+     * Marketing method to which metrics apply. Segment.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1; + * + * + * @return Whether the marketingMethod field is set. + */ + @java.lang.Override + public boolean hasMarketingMethod() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Marketing method to which metrics apply. Segment.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1; + * + * + * @return The enum numeric value on the wire for marketingMethod. + */ + @java.lang.Override + public int getMarketingMethodValue() { + return marketingMethod_; + } + + /** + * + * + *
+     * Marketing method to which metrics apply. Segment.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1; + * + * + * @param value The enum numeric value on the wire for marketingMethod to set. + * @return This builder for chaining. + */ + public Builder setMarketingMethodValue(int value) { + marketingMethod_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Marketing method to which metrics apply. Segment.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1; + * + * + * @return The marketingMethod. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum + getMarketingMethod() { + com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum result = + com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum + .forNumber(marketingMethod_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Marketing method to which metrics apply. Segment.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1; + * + * + * @param value The marketingMethod to set. + * @return This builder for chaining. + */ + public Builder setMarketingMethod( + com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + marketingMethod_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Marketing method to which metrics apply. Segment.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1; + * + * + * @return This builder for chaining. + */ + public Builder clearMarketingMethod() { + bitField0_ = (bitField0_ & ~0x00000001); + marketingMethod_ = 0; + onChanged(); + return this; + } + + private com.google.type.Date date_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + dateBuilder_; + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 2; + * + * @return Whether the date field is set. + */ + public boolean hasDate() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 2; + * + * @return The date. + */ + public com.google.type.Date getDate() { + if (dateBuilder_ == null) { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } else { + return dateBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 2; + */ + public Builder setDate(com.google.type.Date value) { + if (dateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + date_ = value; + } else { + dateBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 2; + */ + public Builder setDate(com.google.type.Date.Builder builderForValue) { + if (dateBuilder_ == null) { + date_ = builderForValue.build(); + } else { + dateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 2; + */ + public Builder mergeDate(com.google.type.Date value) { + if (dateBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) + && date_ != null + && date_ != com.google.type.Date.getDefaultInstance()) { + getDateBuilder().mergeFrom(value); + } else { + date_ = value; + } + } else { + dateBuilder_.mergeFrom(value); + } + if (date_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 2; + */ + public Builder clearDate() { + bitField0_ = (bitField0_ & ~0x00000002); + date_ = null; + if (dateBuilder_ != null) { + dateBuilder_.dispose(); + dateBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 2; + */ + public com.google.type.Date.Builder getDateBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getDateFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 2; + */ + public com.google.type.DateOrBuilder getDateOrBuilder() { + if (dateBuilder_ != null) { + return dateBuilder_.getMessageOrBuilder(); + } else { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + getDateFieldBuilder() { + if (dateBuilder_ == null) { + dateBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>( + getDate(), getParentForChildren(), isClean()); + date_ = null; + } + return dateBuilder_; + } + + private com.google.type.Date week_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + weekBuilder_; + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 3; + * + * @return Whether the week field is set. + */ + public boolean hasWeek() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 3; + * + * @return The week. + */ + public com.google.type.Date getWeek() { + if (weekBuilder_ == null) { + return week_ == null ? com.google.type.Date.getDefaultInstance() : week_; + } else { + return weekBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 3; + */ + public Builder setWeek(com.google.type.Date value) { + if (weekBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + week_ = value; + } else { + weekBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 3; + */ + public Builder setWeek(com.google.type.Date.Builder builderForValue) { + if (weekBuilder_ == null) { + week_ = builderForValue.build(); + } else { + weekBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 3; + */ + public Builder mergeWeek(com.google.type.Date value) { + if (weekBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) + && week_ != null + && week_ != com.google.type.Date.getDefaultInstance()) { + getWeekBuilder().mergeFrom(value); + } else { + week_ = value; + } + } else { + weekBuilder_.mergeFrom(value); + } + if (week_ != null) { + bitField0_ |= 0x00000004; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 3; + */ + public Builder clearWeek() { + bitField0_ = (bitField0_ & ~0x00000004); + week_ = null; + if (weekBuilder_ != null) { + weekBuilder_.dispose(); + weekBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 3; + */ + public com.google.type.Date.Builder getWeekBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getWeekFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 3; + */ + public com.google.type.DateOrBuilder getWeekOrBuilder() { + if (weekBuilder_ != null) { + return weekBuilder_.getMessageOrBuilder(); + } else { + return week_ == null ? com.google.type.Date.getDefaultInstance() : week_; + } + } + + /** + * + * + *
+     * First day of the week (Monday) of the metrics date in the merchant
+     * timezone. Segment.
+     * 
+ * + * .google.type.Date week = 3; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + getWeekFieldBuilder() { + if (weekBuilder_ == null) { + weekBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>( + getWeek(), getParentForChildren(), isClean()); + week_ = null; + } + return weekBuilder_; + } + + private java.lang.Object customerCountryCode_ = ""; + + /** + * + * + *
+     * Code of the country where the customer is located at the time of the event.
+     * Represented in the ISO 3166 format. Segment.
+     *
+     * If the customer country cannot be determined, a special 'ZZ' code is
+     * returned.
+     * 
+ * + * optional string customer_country_code = 4; + * + * @return Whether the customerCountryCode field is set. + */ + public boolean hasCustomerCountryCode() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Code of the country where the customer is located at the time of the event.
+     * Represented in the ISO 3166 format. Segment.
+     *
+     * If the customer country cannot be determined, a special 'ZZ' code is
+     * returned.
+     * 
+ * + * optional string customer_country_code = 4; + * + * @return The customerCountryCode. + */ + public java.lang.String getCustomerCountryCode() { + java.lang.Object ref = customerCountryCode_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + customerCountryCode_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Code of the country where the customer is located at the time of the event.
+     * Represented in the ISO 3166 format. Segment.
+     *
+     * If the customer country cannot be determined, a special 'ZZ' code is
+     * returned.
+     * 
+ * + * optional string customer_country_code = 4; + * + * @return The bytes for customerCountryCode. + */ + public com.google.protobuf.ByteString getCustomerCountryCodeBytes() { + java.lang.Object ref = customerCountryCode_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + customerCountryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Code of the country where the customer is located at the time of the event.
+     * Represented in the ISO 3166 format. Segment.
+     *
+     * If the customer country cannot be determined, a special 'ZZ' code is
+     * returned.
+     * 
+ * + * optional string customer_country_code = 4; + * + * @param value The customerCountryCode to set. + * @return This builder for chaining. + */ + public Builder setCustomerCountryCode(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + customerCountryCode_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Code of the country where the customer is located at the time of the event.
+     * Represented in the ISO 3166 format. Segment.
+     *
+     * If the customer country cannot be determined, a special 'ZZ' code is
+     * returned.
+     * 
+ * + * optional string customer_country_code = 4; + * + * @return This builder for chaining. + */ + public Builder clearCustomerCountryCode() { + customerCountryCode_ = getDefaultInstance().getCustomerCountryCode(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+     * Code of the country where the customer is located at the time of the event.
+     * Represented in the ISO 3166 format. Segment.
+     *
+     * If the customer country cannot be determined, a special 'ZZ' code is
+     * returned.
+     * 
+ * + * optional string customer_country_code = 4; + * + * @param value The bytes for customerCountryCode to set. + * @return This builder for chaining. + */ + public Builder setCustomerCountryCodeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + customerCountryCode_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private java.lang.Object offerId_ = ""; + + /** + * + * + *
+     * Merchant-provided id of the product. Segment.
+     * 
+ * + * optional string offer_id = 5; + * + * @return Whether the offerId field is set. + */ + public boolean hasOfferId() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * Merchant-provided id of the product. Segment.
+     * 
+ * + * optional string offer_id = 5; + * + * @return The offerId. + */ + public java.lang.String getOfferId() { + java.lang.Object ref = offerId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + offerId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Merchant-provided id of the product. Segment.
+     * 
+ * + * optional string offer_id = 5; + * + * @return The bytes for offerId. + */ + public com.google.protobuf.ByteString getOfferIdBytes() { + java.lang.Object ref = offerId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + offerId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Merchant-provided id of the product. Segment.
+     * 
+ * + * optional string offer_id = 5; + * + * @param value The offerId to set. + * @return This builder for chaining. + */ + public Builder setOfferId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + offerId_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Merchant-provided id of the product. Segment.
+     * 
+ * + * optional string offer_id = 5; + * + * @return This builder for chaining. + */ + public Builder clearOfferId() { + offerId_ = getDefaultInstance().getOfferId(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + + /** + * + * + *
+     * Merchant-provided id of the product. Segment.
+     * 
+ * + * optional string offer_id = 5; + * + * @param value The bytes for offerId to set. + * @return This builder for chaining. + */ + public Builder setOfferIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + offerId_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private java.lang.Object title_ = ""; + + /** + * + * + *
+     * Title of the product. Segment.
+     * 
+ * + * optional string title = 6; + * + * @return Whether the title field is set. + */ + public boolean hasTitle() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * Title of the product. Segment.
+     * 
+ * + * optional string title = 6; + * + * @return The title. + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Title of the product. Segment.
+     * 
+ * + * optional string title = 6; + * + * @return The bytes for title. + */ + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Title of the product. Segment.
+     * 
+ * + * optional string title = 6; + * + * @param value The title to set. + * @return This builder for chaining. + */ + public Builder setTitle(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + title_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * Title of the product. Segment.
+     * 
+ * + * optional string title = 6; + * + * @return This builder for chaining. + */ + public Builder clearTitle() { + title_ = getDefaultInstance().getTitle(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + + /** + * + * + *
+     * Title of the product. Segment.
+     * 
+ * + * optional string title = 6; + * + * @param value The bytes for title to set. + * @return This builder for chaining. + */ + public Builder setTitleBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + title_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private java.lang.Object brand_ = ""; + + /** + * + * + *
+     * Brand of the product. Segment.
+     * 
+ * + * optional string brand = 7; + * + * @return Whether the brand field is set. + */ + public boolean hasBrand() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+     * Brand of the product. Segment.
+     * 
+ * + * optional string brand = 7; + * + * @return The brand. + */ + public java.lang.String getBrand() { + java.lang.Object ref = brand_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + brand_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Brand of the product. Segment.
+     * 
+ * + * optional string brand = 7; + * + * @return The bytes for brand. + */ + public com.google.protobuf.ByteString getBrandBytes() { + java.lang.Object ref = brand_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + brand_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Brand of the product. Segment.
+     * 
+ * + * optional string brand = 7; + * + * @param value The brand to set. + * @return This builder for chaining. + */ + public Builder setBrand(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + brand_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * Brand of the product. Segment.
+     * 
+ * + * optional string brand = 7; + * + * @return This builder for chaining. + */ + public Builder clearBrand() { + brand_ = getDefaultInstance().getBrand(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + + /** + * + * + *
+     * Brand of the product. Segment.
+     * 
+ * + * optional string brand = 7; + * + * @param value The bytes for brand to set. + * @return This builder for chaining. + */ + public Builder setBrandBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + brand_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + private java.lang.Object categoryL1_ = ""; + + /** + * + * + *
+     * [Product category (1st
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l1 = 8; + * + * @return Whether the categoryL1 field is set. + */ + public boolean hasCategoryL1() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+     * [Product category (1st
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l1 = 8; + * + * @return The categoryL1. + */ + public java.lang.String getCategoryL1() { + java.lang.Object ref = categoryL1_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL1_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * [Product category (1st
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l1 = 8; + * + * @return The bytes for categoryL1. + */ + public com.google.protobuf.ByteString getCategoryL1Bytes() { + java.lang.Object ref = categoryL1_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * [Product category (1st
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l1 = 8; + * + * @param value The categoryL1 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL1(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL1_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product category (1st
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l1 = 8; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL1() { + categoryL1_ = getDefaultInstance().getCategoryL1(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product category (1st
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l1 = 8; + * + * @param value The bytes for categoryL1 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL1Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL1_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + private java.lang.Object categoryL2_ = ""; + + /** + * + * + *
+     * [Product category (2nd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l2 = 9; + * + * @return Whether the categoryL2 field is set. + */ + public boolean hasCategoryL2() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+     * [Product category (2nd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l2 = 9; + * + * @return The categoryL2. + */ + public java.lang.String getCategoryL2() { + java.lang.Object ref = categoryL2_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL2_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * [Product category (2nd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l2 = 9; + * + * @return The bytes for categoryL2. + */ + public com.google.protobuf.ByteString getCategoryL2Bytes() { + java.lang.Object ref = categoryL2_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * [Product category (2nd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l2 = 9; + * + * @param value The categoryL2 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL2(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL2_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product category (2nd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l2 = 9; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL2() { + categoryL2_ = getDefaultInstance().getCategoryL2(); + bitField0_ = (bitField0_ & ~0x00000100); + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product category (2nd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l2 = 9; + * + * @param value The bytes for categoryL2 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL2Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL2_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + private java.lang.Object categoryL3_ = ""; + + /** + * + * + *
+     * [Product category (3rd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l3 = 10; + * + * @return Whether the categoryL3 field is set. + */ + public boolean hasCategoryL3() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+     * [Product category (3rd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l3 = 10; + * + * @return The categoryL3. + */ + public java.lang.String getCategoryL3() { + java.lang.Object ref = categoryL3_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL3_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * [Product category (3rd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l3 = 10; + * + * @return The bytes for categoryL3. + */ + public com.google.protobuf.ByteString getCategoryL3Bytes() { + java.lang.Object ref = categoryL3_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * [Product category (3rd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l3 = 10; + * + * @param value The categoryL3 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL3(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL3_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product category (3rd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l3 = 10; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL3() { + categoryL3_ = getDefaultInstance().getCategoryL3(); + bitField0_ = (bitField0_ & ~0x00000200); + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product category (3rd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l3 = 10; + * + * @param value The bytes for categoryL3 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL3Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL3_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + private java.lang.Object categoryL4_ = ""; + + /** + * + * + *
+     * [Product category (4th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l4 = 11; + * + * @return Whether the categoryL4 field is set. + */ + public boolean hasCategoryL4() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+     * [Product category (4th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l4 = 11; + * + * @return The categoryL4. + */ + public java.lang.String getCategoryL4() { + java.lang.Object ref = categoryL4_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL4_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * [Product category (4th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l4 = 11; + * + * @return The bytes for categoryL4. + */ + public com.google.protobuf.ByteString getCategoryL4Bytes() { + java.lang.Object ref = categoryL4_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * [Product category (4th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l4 = 11; + * + * @param value The categoryL4 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL4(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL4_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product category (4th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l4 = 11; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL4() { + categoryL4_ = getDefaultInstance().getCategoryL4(); + bitField0_ = (bitField0_ & ~0x00000400); + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product category (4th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l4 = 11; + * + * @param value The bytes for categoryL4 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL4Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL4_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + private java.lang.Object categoryL5_ = ""; + + /** + * + * + *
+     * [Product category (5th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l5 = 12; + * + * @return Whether the categoryL5 field is set. + */ + public boolean hasCategoryL5() { + return ((bitField0_ & 0x00000800) != 0); + } + + /** + * + * + *
+     * [Product category (5th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l5 = 12; + * + * @return The categoryL5. + */ + public java.lang.String getCategoryL5() { + java.lang.Object ref = categoryL5_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL5_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * [Product category (5th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l5 = 12; + * + * @return The bytes for categoryL5. + */ + public com.google.protobuf.ByteString getCategoryL5Bytes() { + java.lang.Object ref = categoryL5_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * [Product category (5th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l5 = 12; + * + * @param value The categoryL5 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL5(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL5_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product category (5th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l5 = 12; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL5() { + categoryL5_ = getDefaultInstance().getCategoryL5(); + bitField0_ = (bitField0_ & ~0x00000800); + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product category (5th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in Google's product taxonomy. Segment.
+     * 
+ * + * optional string category_l5 = 12; + * + * @param value The bytes for categoryL5 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL5Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL5_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + private java.lang.Object productTypeL1_ = ""; + + /** + * + * + *
+     * [Product type (1st
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l1 = 13; + * + * @return Whether the productTypeL1 field is set. + */ + public boolean hasProductTypeL1() { + return ((bitField0_ & 0x00001000) != 0); + } + + /** + * + * + *
+     * [Product type (1st
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l1 = 13; + * + * @return The productTypeL1. + */ + public java.lang.String getProductTypeL1() { + java.lang.Object ref = productTypeL1_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL1_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * [Product type (1st
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l1 = 13; + * + * @return The bytes for productTypeL1. + */ + public com.google.protobuf.ByteString getProductTypeL1Bytes() { + java.lang.Object ref = productTypeL1_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * [Product type (1st
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l1 = 13; + * + * @param value The productTypeL1 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL1(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL1_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product type (1st
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l1 = 13; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL1() { + productTypeL1_ = getDefaultInstance().getProductTypeL1(); + bitField0_ = (bitField0_ & ~0x00001000); + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product type (1st
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l1 = 13; + * + * @param value The bytes for productTypeL1 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL1Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL1_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + private java.lang.Object productTypeL2_ = ""; + + /** + * + * + *
+     * [Product type (2nd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l2 = 14; + * + * @return Whether the productTypeL2 field is set. + */ + public boolean hasProductTypeL2() { + return ((bitField0_ & 0x00002000) != 0); + } + + /** + * + * + *
+     * [Product type (2nd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l2 = 14; + * + * @return The productTypeL2. + */ + public java.lang.String getProductTypeL2() { + java.lang.Object ref = productTypeL2_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL2_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * [Product type (2nd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l2 = 14; + * + * @return The bytes for productTypeL2. + */ + public com.google.protobuf.ByteString getProductTypeL2Bytes() { + java.lang.Object ref = productTypeL2_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * [Product type (2nd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l2 = 14; + * + * @param value The productTypeL2 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL2(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL2_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product type (2nd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l2 = 14; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL2() { + productTypeL2_ = getDefaultInstance().getProductTypeL2(); + bitField0_ = (bitField0_ & ~0x00002000); + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product type (2nd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l2 = 14; + * + * @param value The bytes for productTypeL2 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL2Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL2_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + + private java.lang.Object productTypeL3_ = ""; + + /** + * + * + *
+     * [Product type (3rd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l3 = 15; + * + * @return Whether the productTypeL3 field is set. + */ + public boolean hasProductTypeL3() { + return ((bitField0_ & 0x00004000) != 0); + } + + /** + * + * + *
+     * [Product type (3rd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l3 = 15; + * + * @return The productTypeL3. + */ + public java.lang.String getProductTypeL3() { + java.lang.Object ref = productTypeL3_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL3_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * [Product type (3rd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l3 = 15; + * + * @return The bytes for productTypeL3. + */ + public com.google.protobuf.ByteString getProductTypeL3Bytes() { + java.lang.Object ref = productTypeL3_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * [Product type (3rd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l3 = 15; + * + * @param value The productTypeL3 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL3(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL3_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product type (3rd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l3 = 15; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL3() { + productTypeL3_ = getDefaultInstance().getProductTypeL3(); + bitField0_ = (bitField0_ & ~0x00004000); + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product type (3rd
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l3 = 15; + * + * @param value The bytes for productTypeL3 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL3Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL3_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + + private java.lang.Object productTypeL4_ = ""; + + /** + * + * + *
+     * [Product type (4th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l4 = 16; + * + * @return Whether the productTypeL4 field is set. + */ + public boolean hasProductTypeL4() { + return ((bitField0_ & 0x00008000) != 0); + } + + /** + * + * + *
+     * [Product type (4th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l4 = 16; + * + * @return The productTypeL4. + */ + public java.lang.String getProductTypeL4() { + java.lang.Object ref = productTypeL4_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL4_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * [Product type (4th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l4 = 16; + * + * @return The bytes for productTypeL4. + */ + public com.google.protobuf.ByteString getProductTypeL4Bytes() { + java.lang.Object ref = productTypeL4_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * [Product type (4th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l4 = 16; + * + * @param value The productTypeL4 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL4(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL4_ = value; + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product type (4th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l4 = 16; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL4() { + productTypeL4_ = getDefaultInstance().getProductTypeL4(); + bitField0_ = (bitField0_ & ~0x00008000); + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product type (4th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l4 = 16; + * + * @param value The bytes for productTypeL4 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL4Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL4_ = value; + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + + private java.lang.Object productTypeL5_ = ""; + + /** + * + * + *
+     * [Product type (5th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l5 = 17; + * + * @return Whether the productTypeL5 field is set. + */ + public boolean hasProductTypeL5() { + return ((bitField0_ & 0x00010000) != 0); + } + + /** + * + * + *
+     * [Product type (5th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l5 = 17; + * + * @return The productTypeL5. + */ + public java.lang.String getProductTypeL5() { + java.lang.Object ref = productTypeL5_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL5_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * [Product type (5th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l5 = 17; + * + * @return The bytes for productTypeL5. + */ + public com.google.protobuf.ByteString getProductTypeL5Bytes() { + java.lang.Object ref = productTypeL5_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * [Product type (5th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l5 = 17; + * + * @param value The productTypeL5 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL5(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL5_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product type (5th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l5 = 17; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL5() { + productTypeL5_ = getDefaultInstance().getProductTypeL5(); + bitField0_ = (bitField0_ & ~0x00010000); + onChanged(); + return this; + } + + /** + * + * + *
+     * [Product type (5th
+     * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+     * in merchant's own product taxonomy. Segment.
+     * 
+ * + * optional string product_type_l5 = 17; + * + * @param value The bytes for productTypeL5 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL5Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL5_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + + private java.lang.Object customLabel0_ = ""; + + /** + * + * + *
+     * Custom label 0 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label0 = 18; + * + * @return Whether the customLabel0 field is set. + */ + public boolean hasCustomLabel0() { + return ((bitField0_ & 0x00020000) != 0); + } + + /** + * + * + *
+     * Custom label 0 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label0 = 18; + * + * @return The customLabel0. + */ + public java.lang.String getCustomLabel0() { + java.lang.Object ref = customLabel0_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + customLabel0_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Custom label 0 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label0 = 18; + * + * @return The bytes for customLabel0. + */ + public com.google.protobuf.ByteString getCustomLabel0Bytes() { + java.lang.Object ref = customLabel0_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + customLabel0_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Custom label 0 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label0 = 18; + * + * @param value The customLabel0 to set. + * @return This builder for chaining. + */ + public Builder setCustomLabel0(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + customLabel0_ = value; + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Custom label 0 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label0 = 18; + * + * @return This builder for chaining. + */ + public Builder clearCustomLabel0() { + customLabel0_ = getDefaultInstance().getCustomLabel0(); + bitField0_ = (bitField0_ & ~0x00020000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Custom label 0 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label0 = 18; + * + * @param value The bytes for customLabel0 to set. + * @return This builder for chaining. + */ + public Builder setCustomLabel0Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + customLabel0_ = value; + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + + private java.lang.Object customLabel1_ = ""; + + /** + * + * + *
+     * Custom label 1 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label1 = 19; + * + * @return Whether the customLabel1 field is set. + */ + public boolean hasCustomLabel1() { + return ((bitField0_ & 0x00040000) != 0); + } + + /** + * + * + *
+     * Custom label 1 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label1 = 19; + * + * @return The customLabel1. + */ + public java.lang.String getCustomLabel1() { + java.lang.Object ref = customLabel1_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + customLabel1_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Custom label 1 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label1 = 19; + * + * @return The bytes for customLabel1. + */ + public com.google.protobuf.ByteString getCustomLabel1Bytes() { + java.lang.Object ref = customLabel1_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + customLabel1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Custom label 1 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label1 = 19; + * + * @param value The customLabel1 to set. + * @return This builder for chaining. + */ + public Builder setCustomLabel1(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + customLabel1_ = value; + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Custom label 1 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label1 = 19; + * + * @return This builder for chaining. + */ + public Builder clearCustomLabel1() { + customLabel1_ = getDefaultInstance().getCustomLabel1(); + bitField0_ = (bitField0_ & ~0x00040000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Custom label 1 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label1 = 19; + * + * @param value The bytes for customLabel1 to set. + * @return This builder for chaining. + */ + public Builder setCustomLabel1Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + customLabel1_ = value; + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + + private java.lang.Object customLabel2_ = ""; + + /** + * + * + *
+     * Custom label 2 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label2 = 20; + * + * @return Whether the customLabel2 field is set. + */ + public boolean hasCustomLabel2() { + return ((bitField0_ & 0x00080000) != 0); + } + + /** + * + * + *
+     * Custom label 2 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label2 = 20; + * + * @return The customLabel2. + */ + public java.lang.String getCustomLabel2() { + java.lang.Object ref = customLabel2_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + customLabel2_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Custom label 2 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label2 = 20; + * + * @return The bytes for customLabel2. + */ + public com.google.protobuf.ByteString getCustomLabel2Bytes() { + java.lang.Object ref = customLabel2_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + customLabel2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Custom label 2 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label2 = 20; + * + * @param value The customLabel2 to set. + * @return This builder for chaining. + */ + public Builder setCustomLabel2(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + customLabel2_ = value; + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Custom label 2 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label2 = 20; + * + * @return This builder for chaining. + */ + public Builder clearCustomLabel2() { + customLabel2_ = getDefaultInstance().getCustomLabel2(); + bitField0_ = (bitField0_ & ~0x00080000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Custom label 2 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label2 = 20; + * + * @param value The bytes for customLabel2 to set. + * @return This builder for chaining. + */ + public Builder setCustomLabel2Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + customLabel2_ = value; + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + + private java.lang.Object customLabel3_ = ""; + + /** + * + * + *
+     * Custom label 3 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label3 = 21; + * + * @return Whether the customLabel3 field is set. + */ + public boolean hasCustomLabel3() { + return ((bitField0_ & 0x00100000) != 0); + } + + /** + * + * + *
+     * Custom label 3 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label3 = 21; + * + * @return The customLabel3. + */ + public java.lang.String getCustomLabel3() { + java.lang.Object ref = customLabel3_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + customLabel3_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Custom label 3 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label3 = 21; + * + * @return The bytes for customLabel3. + */ + public com.google.protobuf.ByteString getCustomLabel3Bytes() { + java.lang.Object ref = customLabel3_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + customLabel3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Custom label 3 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label3 = 21; + * + * @param value The customLabel3 to set. + * @return This builder for chaining. + */ + public Builder setCustomLabel3(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + customLabel3_ = value; + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Custom label 3 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label3 = 21; + * + * @return This builder for chaining. + */ + public Builder clearCustomLabel3() { + customLabel3_ = getDefaultInstance().getCustomLabel3(); + bitField0_ = (bitField0_ & ~0x00100000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Custom label 3 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label3 = 21; + * + * @param value The bytes for customLabel3 to set. + * @return This builder for chaining. + */ + public Builder setCustomLabel3Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + customLabel3_ = value; + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + + private java.lang.Object customLabel4_ = ""; + + /** + * + * + *
+     * Custom label 4 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label4 = 22; + * + * @return Whether the customLabel4 field is set. + */ + public boolean hasCustomLabel4() { + return ((bitField0_ & 0x00200000) != 0); + } + + /** + * + * + *
+     * Custom label 4 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label4 = 22; + * + * @return The customLabel4. + */ + public java.lang.String getCustomLabel4() { + java.lang.Object ref = customLabel4_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + customLabel4_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Custom label 4 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label4 = 22; + * + * @return The bytes for customLabel4. + */ + public com.google.protobuf.ByteString getCustomLabel4Bytes() { + java.lang.Object ref = customLabel4_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + customLabel4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Custom label 4 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label4 = 22; + * + * @param value The customLabel4 to set. + * @return This builder for chaining. + */ + public Builder setCustomLabel4(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + customLabel4_ = value; + bitField0_ |= 0x00200000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Custom label 4 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label4 = 22; + * + * @return This builder for chaining. + */ + public Builder clearCustomLabel4() { + customLabel4_ = getDefaultInstance().getCustomLabel4(); + bitField0_ = (bitField0_ & ~0x00200000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Custom label 4 for custom grouping of products. Segment.
+     * 
+ * + * optional string custom_label4 = 22; + * + * @param value The bytes for customLabel4 to set. + * @return This builder for chaining. + */ + public Builder setCustomLabel4Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + customLabel4_ = value; + bitField0_ |= 0x00200000; + onChanged(); + return this; + } + + private long clicks_; + + /** + * + * + *
+     * Number of clicks. Metric.
+     * 
+ * + * optional int64 clicks = 23; + * + * @return Whether the clicks field is set. + */ + @java.lang.Override + public boolean hasClicks() { + return ((bitField0_ & 0x00400000) != 0); + } + + /** + * + * + *
+     * Number of clicks. Metric.
+     * 
+ * + * optional int64 clicks = 23; + * + * @return The clicks. + */ + @java.lang.Override + public long getClicks() { + return clicks_; + } + + /** + * + * + *
+     * Number of clicks. Metric.
+     * 
+ * + * optional int64 clicks = 23; + * + * @param value The clicks to set. + * @return This builder for chaining. + */ + public Builder setClicks(long value) { + + clicks_ = value; + bitField0_ |= 0x00400000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Number of clicks. Metric.
+     * 
+ * + * optional int64 clicks = 23; + * + * @return This builder for chaining. + */ + public Builder clearClicks() { + bitField0_ = (bitField0_ & ~0x00400000); + clicks_ = 0L; + onChanged(); + return this; + } + + private long impressions_; + + /** + * + * + *
+     * Number of times merchant's products are shown. Metric.
+     * 
+ * + * optional int64 impressions = 24; + * + * @return Whether the impressions field is set. + */ + @java.lang.Override + public boolean hasImpressions() { + return ((bitField0_ & 0x00800000) != 0); + } + + /** + * + * + *
+     * Number of times merchant's products are shown. Metric.
+     * 
+ * + * optional int64 impressions = 24; + * + * @return The impressions. + */ + @java.lang.Override + public long getImpressions() { + return impressions_; + } + + /** + * + * + *
+     * Number of times merchant's products are shown. Metric.
+     * 
+ * + * optional int64 impressions = 24; + * + * @param value The impressions to set. + * @return This builder for chaining. + */ + public Builder setImpressions(long value) { + + impressions_ = value; + bitField0_ |= 0x00800000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Number of times merchant's products are shown. Metric.
+     * 
+ * + * optional int64 impressions = 24; + * + * @return This builder for chaining. + */ + public Builder clearImpressions() { + bitField0_ = (bitField0_ & ~0x00800000); + impressions_ = 0L; + onChanged(); + return this; + } + + private double clickThroughRate_; + + /** + * + * + *
+     * Click-through rate - the number of clicks merchant's products receive
+     * (clicks) divided by the number of times the products are shown
+     * (impressions). Metric.
+     * 
+ * + * optional double click_through_rate = 25; + * + * @return Whether the clickThroughRate field is set. + */ + @java.lang.Override + public boolean hasClickThroughRate() { + return ((bitField0_ & 0x01000000) != 0); + } + + /** + * + * + *
+     * Click-through rate - the number of clicks merchant's products receive
+     * (clicks) divided by the number of times the products are shown
+     * (impressions). Metric.
+     * 
+ * + * optional double click_through_rate = 25; + * + * @return The clickThroughRate. + */ + @java.lang.Override + public double getClickThroughRate() { + return clickThroughRate_; + } + + /** + * + * + *
+     * Click-through rate - the number of clicks merchant's products receive
+     * (clicks) divided by the number of times the products are shown
+     * (impressions). Metric.
+     * 
+ * + * optional double click_through_rate = 25; + * + * @param value The clickThroughRate to set. + * @return This builder for chaining. + */ + public Builder setClickThroughRate(double value) { + + clickThroughRate_ = value; + bitField0_ |= 0x01000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Click-through rate - the number of clicks merchant's products receive
+     * (clicks) divided by the number of times the products are shown
+     * (impressions). Metric.
+     * 
+ * + * optional double click_through_rate = 25; + * + * @return This builder for chaining. + */ + public Builder clearClickThroughRate() { + bitField0_ = (bitField0_ & ~0x01000000); + clickThroughRate_ = 0D; + onChanged(); + return this; + } + + private double conversions_; + + /** + * + * + *
+     * Number of conversions attributed to the product, reported on the conversion
+     * date. Depending on the attribution model, a conversion might be distributed
+     * across multiple clicks, where each click gets its own credit assigned. This
+     * metric is a sum of all such credits. Metric.
+     *
+     * Available only for the `FREE` traffic source.
+     * 
+ * + * optional double conversions = 26; + * + * @return Whether the conversions field is set. + */ + @java.lang.Override + public boolean hasConversions() { + return ((bitField0_ & 0x02000000) != 0); + } + + /** + * + * + *
+     * Number of conversions attributed to the product, reported on the conversion
+     * date. Depending on the attribution model, a conversion might be distributed
+     * across multiple clicks, where each click gets its own credit assigned. This
+     * metric is a sum of all such credits. Metric.
+     *
+     * Available only for the `FREE` traffic source.
+     * 
+ * + * optional double conversions = 26; + * + * @return The conversions. + */ + @java.lang.Override + public double getConversions() { + return conversions_; + } + + /** + * + * + *
+     * Number of conversions attributed to the product, reported on the conversion
+     * date. Depending on the attribution model, a conversion might be distributed
+     * across multiple clicks, where each click gets its own credit assigned. This
+     * metric is a sum of all such credits. Metric.
+     *
+     * Available only for the `FREE` traffic source.
+     * 
+ * + * optional double conversions = 26; + * + * @param value The conversions to set. + * @return This builder for chaining. + */ + public Builder setConversions(double value) { + + conversions_ = value; + bitField0_ |= 0x02000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Number of conversions attributed to the product, reported on the conversion
+     * date. Depending on the attribution model, a conversion might be distributed
+     * across multiple clicks, where each click gets its own credit assigned. This
+     * metric is a sum of all such credits. Metric.
+     *
+     * Available only for the `FREE` traffic source.
+     * 
+ * + * optional double conversions = 26; + * + * @return This builder for chaining. + */ + public Builder clearConversions() { + bitField0_ = (bitField0_ & ~0x02000000); + conversions_ = 0D; + onChanged(); + return this; + } + + private com.google.shopping.type.Price conversionValue_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + conversionValueBuilder_; + + /** + * + * + *
+     * Value of conversions attributed to the product, reported on the conversion
+     * date. Metric.
+     *
+     * Available only for the `FREE` traffic source.
+     * 
+ * + * .google.shopping.type.Price conversion_value = 27; + * + * @return Whether the conversionValue field is set. + */ + public boolean hasConversionValue() { + return ((bitField0_ & 0x04000000) != 0); + } + + /** + * + * + *
+     * Value of conversions attributed to the product, reported on the conversion
+     * date. Metric.
+     *
+     * Available only for the `FREE` traffic source.
+     * 
+ * + * .google.shopping.type.Price conversion_value = 27; + * + * @return The conversionValue. + */ + public com.google.shopping.type.Price getConversionValue() { + if (conversionValueBuilder_ == null) { + return conversionValue_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : conversionValue_; + } else { + return conversionValueBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Value of conversions attributed to the product, reported on the conversion
+     * date. Metric.
+     *
+     * Available only for the `FREE` traffic source.
+     * 
+ * + * .google.shopping.type.Price conversion_value = 27; + */ + public Builder setConversionValue(com.google.shopping.type.Price value) { + if (conversionValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + conversionValue_ = value; + } else { + conversionValueBuilder_.setMessage(value); + } + bitField0_ |= 0x04000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Value of conversions attributed to the product, reported on the conversion
+     * date. Metric.
+     *
+     * Available only for the `FREE` traffic source.
+     * 
+ * + * .google.shopping.type.Price conversion_value = 27; + */ + public Builder setConversionValue(com.google.shopping.type.Price.Builder builderForValue) { + if (conversionValueBuilder_ == null) { + conversionValue_ = builderForValue.build(); + } else { + conversionValueBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x04000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Value of conversions attributed to the product, reported on the conversion
+     * date. Metric.
+     *
+     * Available only for the `FREE` traffic source.
+     * 
+ * + * .google.shopping.type.Price conversion_value = 27; + */ + public Builder mergeConversionValue(com.google.shopping.type.Price value) { + if (conversionValueBuilder_ == null) { + if (((bitField0_ & 0x04000000) != 0) + && conversionValue_ != null + && conversionValue_ != com.google.shopping.type.Price.getDefaultInstance()) { + getConversionValueBuilder().mergeFrom(value); + } else { + conversionValue_ = value; + } + } else { + conversionValueBuilder_.mergeFrom(value); + } + if (conversionValue_ != null) { + bitField0_ |= 0x04000000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Value of conversions attributed to the product, reported on the conversion
+     * date. Metric.
+     *
+     * Available only for the `FREE` traffic source.
+     * 
+ * + * .google.shopping.type.Price conversion_value = 27; + */ + public Builder clearConversionValue() { + bitField0_ = (bitField0_ & ~0x04000000); + conversionValue_ = null; + if (conversionValueBuilder_ != null) { + conversionValueBuilder_.dispose(); + conversionValueBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Value of conversions attributed to the product, reported on the conversion
+     * date. Metric.
+     *
+     * Available only for the `FREE` traffic source.
+     * 
+ * + * .google.shopping.type.Price conversion_value = 27; + */ + public com.google.shopping.type.Price.Builder getConversionValueBuilder() { + bitField0_ |= 0x04000000; + onChanged(); + return getConversionValueFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Value of conversions attributed to the product, reported on the conversion
+     * date. Metric.
+     *
+     * Available only for the `FREE` traffic source.
+     * 
+ * + * .google.shopping.type.Price conversion_value = 27; + */ + public com.google.shopping.type.PriceOrBuilder getConversionValueOrBuilder() { + if (conversionValueBuilder_ != null) { + return conversionValueBuilder_.getMessageOrBuilder(); + } else { + return conversionValue_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : conversionValue_; + } + } + + /** + * + * + *
+     * Value of conversions attributed to the product, reported on the conversion
+     * date. Metric.
+     *
+     * Available only for the `FREE` traffic source.
+     * 
+ * + * .google.shopping.type.Price conversion_value = 27; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + getConversionValueFieldBuilder() { + if (conversionValueBuilder_ == null) { + conversionValueBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getConversionValue(), getParentForChildren(), isClean()); + conversionValue_ = null; + } + return conversionValueBuilder_; + } + + private double conversionRate_; + + /** + * + * + *
+     * Number of conversions divided by the number of clicks, reported on the
+     * impression date. Metric.
+     *
+     * Available only for the `FREE` traffic source.
+     * 
+ * + * optional double conversion_rate = 28; + * + * @return Whether the conversionRate field is set. + */ + @java.lang.Override + public boolean hasConversionRate() { + return ((bitField0_ & 0x08000000) != 0); + } + + /** + * + * + *
+     * Number of conversions divided by the number of clicks, reported on the
+     * impression date. Metric.
+     *
+     * Available only for the `FREE` traffic source.
+     * 
+ * + * optional double conversion_rate = 28; + * + * @return The conversionRate. + */ + @java.lang.Override + public double getConversionRate() { + return conversionRate_; + } + + /** + * + * + *
+     * Number of conversions divided by the number of clicks, reported on the
+     * impression date. Metric.
+     *
+     * Available only for the `FREE` traffic source.
+     * 
+ * + * optional double conversion_rate = 28; + * + * @param value The conversionRate to set. + * @return This builder for chaining. + */ + public Builder setConversionRate(double value) { + + conversionRate_ = value; + bitField0_ |= 0x08000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Number of conversions divided by the number of clicks, reported on the
+     * impression date. Metric.
+     *
+     * Available only for the `FREE` traffic source.
+     * 
+ * + * optional double conversion_rate = 28; + * + * @return This builder for chaining. + */ + public Builder clearConversionRate() { + bitField0_ = (bitField0_ & ~0x08000000); + conversionRate_ = 0D; + 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.shopping.merchant.reports.v1alpha.ProductPerformanceView) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.ProductPerformanceView) + private static final com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView(); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ProductPerformanceView parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.ProductPerformanceView + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductPerformanceViewOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductPerformanceViewOrBuilder.java new file mode 100644 index 000000000000..0896b2c784f6 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductPerformanceViewOrBuilder.java @@ -0,0 +1,1164 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface ProductPerformanceViewOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.ProductPerformanceView) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Marketing method to which metrics apply. Segment.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1; + * + * + * @return Whether the marketingMethod field is set. + */ + boolean hasMarketingMethod(); + + /** + * + * + *
+   * Marketing method to which metrics apply. Segment.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1; + * + * + * @return The enum numeric value on the wire for marketingMethod. + */ + int getMarketingMethodValue(); + + /** + * + * + *
+   * Marketing method to which metrics apply. Segment.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1; + * + * + * @return The marketingMethod. + */ + com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum + getMarketingMethod(); + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 2; + * + * @return Whether the date field is set. + */ + boolean hasDate(); + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 2; + * + * @return The date. + */ + com.google.type.Date getDate(); + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 2; + */ + com.google.type.DateOrBuilder getDateOrBuilder(); + + /** + * + * + *
+   * First day of the week (Monday) of the metrics date in the merchant
+   * timezone. Segment.
+   * 
+ * + * .google.type.Date week = 3; + * + * @return Whether the week field is set. + */ + boolean hasWeek(); + + /** + * + * + *
+   * First day of the week (Monday) of the metrics date in the merchant
+   * timezone. Segment.
+   * 
+ * + * .google.type.Date week = 3; + * + * @return The week. + */ + com.google.type.Date getWeek(); + + /** + * + * + *
+   * First day of the week (Monday) of the metrics date in the merchant
+   * timezone. Segment.
+   * 
+ * + * .google.type.Date week = 3; + */ + com.google.type.DateOrBuilder getWeekOrBuilder(); + + /** + * + * + *
+   * Code of the country where the customer is located at the time of the event.
+   * Represented in the ISO 3166 format. Segment.
+   *
+   * If the customer country cannot be determined, a special 'ZZ' code is
+   * returned.
+   * 
+ * + * optional string customer_country_code = 4; + * + * @return Whether the customerCountryCode field is set. + */ + boolean hasCustomerCountryCode(); + + /** + * + * + *
+   * Code of the country where the customer is located at the time of the event.
+   * Represented in the ISO 3166 format. Segment.
+   *
+   * If the customer country cannot be determined, a special 'ZZ' code is
+   * returned.
+   * 
+ * + * optional string customer_country_code = 4; + * + * @return The customerCountryCode. + */ + java.lang.String getCustomerCountryCode(); + + /** + * + * + *
+   * Code of the country where the customer is located at the time of the event.
+   * Represented in the ISO 3166 format. Segment.
+   *
+   * If the customer country cannot be determined, a special 'ZZ' code is
+   * returned.
+   * 
+ * + * optional string customer_country_code = 4; + * + * @return The bytes for customerCountryCode. + */ + com.google.protobuf.ByteString getCustomerCountryCodeBytes(); + + /** + * + * + *
+   * Merchant-provided id of the product. Segment.
+   * 
+ * + * optional string offer_id = 5; + * + * @return Whether the offerId field is set. + */ + boolean hasOfferId(); + + /** + * + * + *
+   * Merchant-provided id of the product. Segment.
+   * 
+ * + * optional string offer_id = 5; + * + * @return The offerId. + */ + java.lang.String getOfferId(); + + /** + * + * + *
+   * Merchant-provided id of the product. Segment.
+   * 
+ * + * optional string offer_id = 5; + * + * @return The bytes for offerId. + */ + com.google.protobuf.ByteString getOfferIdBytes(); + + /** + * + * + *
+   * Title of the product. Segment.
+   * 
+ * + * optional string title = 6; + * + * @return Whether the title field is set. + */ + boolean hasTitle(); + + /** + * + * + *
+   * Title of the product. Segment.
+   * 
+ * + * optional string title = 6; + * + * @return The title. + */ + java.lang.String getTitle(); + + /** + * + * + *
+   * Title of the product. Segment.
+   * 
+ * + * optional string title = 6; + * + * @return The bytes for title. + */ + com.google.protobuf.ByteString getTitleBytes(); + + /** + * + * + *
+   * Brand of the product. Segment.
+   * 
+ * + * optional string brand = 7; + * + * @return Whether the brand field is set. + */ + boolean hasBrand(); + + /** + * + * + *
+   * Brand of the product. Segment.
+   * 
+ * + * optional string brand = 7; + * + * @return The brand. + */ + java.lang.String getBrand(); + + /** + * + * + *
+   * Brand of the product. Segment.
+   * 
+ * + * optional string brand = 7; + * + * @return The bytes for brand. + */ + com.google.protobuf.ByteString getBrandBytes(); + + /** + * + * + *
+   * [Product category (1st
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l1 = 8; + * + * @return Whether the categoryL1 field is set. + */ + boolean hasCategoryL1(); + + /** + * + * + *
+   * [Product category (1st
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l1 = 8; + * + * @return The categoryL1. + */ + java.lang.String getCategoryL1(); + + /** + * + * + *
+   * [Product category (1st
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l1 = 8; + * + * @return The bytes for categoryL1. + */ + com.google.protobuf.ByteString getCategoryL1Bytes(); + + /** + * + * + *
+   * [Product category (2nd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l2 = 9; + * + * @return Whether the categoryL2 field is set. + */ + boolean hasCategoryL2(); + + /** + * + * + *
+   * [Product category (2nd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l2 = 9; + * + * @return The categoryL2. + */ + java.lang.String getCategoryL2(); + + /** + * + * + *
+   * [Product category (2nd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l2 = 9; + * + * @return The bytes for categoryL2. + */ + com.google.protobuf.ByteString getCategoryL2Bytes(); + + /** + * + * + *
+   * [Product category (3rd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l3 = 10; + * + * @return Whether the categoryL3 field is set. + */ + boolean hasCategoryL3(); + + /** + * + * + *
+   * [Product category (3rd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l3 = 10; + * + * @return The categoryL3. + */ + java.lang.String getCategoryL3(); + + /** + * + * + *
+   * [Product category (3rd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l3 = 10; + * + * @return The bytes for categoryL3. + */ + com.google.protobuf.ByteString getCategoryL3Bytes(); + + /** + * + * + *
+   * [Product category (4th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l4 = 11; + * + * @return Whether the categoryL4 field is set. + */ + boolean hasCategoryL4(); + + /** + * + * + *
+   * [Product category (4th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l4 = 11; + * + * @return The categoryL4. + */ + java.lang.String getCategoryL4(); + + /** + * + * + *
+   * [Product category (4th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l4 = 11; + * + * @return The bytes for categoryL4. + */ + com.google.protobuf.ByteString getCategoryL4Bytes(); + + /** + * + * + *
+   * [Product category (5th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l5 = 12; + * + * @return Whether the categoryL5 field is set. + */ + boolean hasCategoryL5(); + + /** + * + * + *
+   * [Product category (5th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l5 = 12; + * + * @return The categoryL5. + */ + java.lang.String getCategoryL5(); + + /** + * + * + *
+   * [Product category (5th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in Google's product taxonomy. Segment.
+   * 
+ * + * optional string category_l5 = 12; + * + * @return The bytes for categoryL5. + */ + com.google.protobuf.ByteString getCategoryL5Bytes(); + + /** + * + * + *
+   * [Product type (1st
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l1 = 13; + * + * @return Whether the productTypeL1 field is set. + */ + boolean hasProductTypeL1(); + + /** + * + * + *
+   * [Product type (1st
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l1 = 13; + * + * @return The productTypeL1. + */ + java.lang.String getProductTypeL1(); + + /** + * + * + *
+   * [Product type (1st
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l1 = 13; + * + * @return The bytes for productTypeL1. + */ + com.google.protobuf.ByteString getProductTypeL1Bytes(); + + /** + * + * + *
+   * [Product type (2nd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l2 = 14; + * + * @return Whether the productTypeL2 field is set. + */ + boolean hasProductTypeL2(); + + /** + * + * + *
+   * [Product type (2nd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l2 = 14; + * + * @return The productTypeL2. + */ + java.lang.String getProductTypeL2(); + + /** + * + * + *
+   * [Product type (2nd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l2 = 14; + * + * @return The bytes for productTypeL2. + */ + com.google.protobuf.ByteString getProductTypeL2Bytes(); + + /** + * + * + *
+   * [Product type (3rd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l3 = 15; + * + * @return Whether the productTypeL3 field is set. + */ + boolean hasProductTypeL3(); + + /** + * + * + *
+   * [Product type (3rd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l3 = 15; + * + * @return The productTypeL3. + */ + java.lang.String getProductTypeL3(); + + /** + * + * + *
+   * [Product type (3rd
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l3 = 15; + * + * @return The bytes for productTypeL3. + */ + com.google.protobuf.ByteString getProductTypeL3Bytes(); + + /** + * + * + *
+   * [Product type (4th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l4 = 16; + * + * @return Whether the productTypeL4 field is set. + */ + boolean hasProductTypeL4(); + + /** + * + * + *
+   * [Product type (4th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l4 = 16; + * + * @return The productTypeL4. + */ + java.lang.String getProductTypeL4(); + + /** + * + * + *
+   * [Product type (4th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l4 = 16; + * + * @return The bytes for productTypeL4. + */ + com.google.protobuf.ByteString getProductTypeL4Bytes(); + + /** + * + * + *
+   * [Product type (5th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l5 = 17; + * + * @return Whether the productTypeL5 field is set. + */ + boolean hasProductTypeL5(); + + /** + * + * + *
+   * [Product type (5th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l5 = 17; + * + * @return The productTypeL5. + */ + java.lang.String getProductTypeL5(); + + /** + * + * + *
+   * [Product type (5th
+   * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+   * in merchant's own product taxonomy. Segment.
+   * 
+ * + * optional string product_type_l5 = 17; + * + * @return The bytes for productTypeL5. + */ + com.google.protobuf.ByteString getProductTypeL5Bytes(); + + /** + * + * + *
+   * Custom label 0 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label0 = 18; + * + * @return Whether the customLabel0 field is set. + */ + boolean hasCustomLabel0(); + + /** + * + * + *
+   * Custom label 0 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label0 = 18; + * + * @return The customLabel0. + */ + java.lang.String getCustomLabel0(); + + /** + * + * + *
+   * Custom label 0 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label0 = 18; + * + * @return The bytes for customLabel0. + */ + com.google.protobuf.ByteString getCustomLabel0Bytes(); + + /** + * + * + *
+   * Custom label 1 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label1 = 19; + * + * @return Whether the customLabel1 field is set. + */ + boolean hasCustomLabel1(); + + /** + * + * + *
+   * Custom label 1 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label1 = 19; + * + * @return The customLabel1. + */ + java.lang.String getCustomLabel1(); + + /** + * + * + *
+   * Custom label 1 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label1 = 19; + * + * @return The bytes for customLabel1. + */ + com.google.protobuf.ByteString getCustomLabel1Bytes(); + + /** + * + * + *
+   * Custom label 2 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label2 = 20; + * + * @return Whether the customLabel2 field is set. + */ + boolean hasCustomLabel2(); + + /** + * + * + *
+   * Custom label 2 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label2 = 20; + * + * @return The customLabel2. + */ + java.lang.String getCustomLabel2(); + + /** + * + * + *
+   * Custom label 2 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label2 = 20; + * + * @return The bytes for customLabel2. + */ + com.google.protobuf.ByteString getCustomLabel2Bytes(); + + /** + * + * + *
+   * Custom label 3 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label3 = 21; + * + * @return Whether the customLabel3 field is set. + */ + boolean hasCustomLabel3(); + + /** + * + * + *
+   * Custom label 3 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label3 = 21; + * + * @return The customLabel3. + */ + java.lang.String getCustomLabel3(); + + /** + * + * + *
+   * Custom label 3 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label3 = 21; + * + * @return The bytes for customLabel3. + */ + com.google.protobuf.ByteString getCustomLabel3Bytes(); + + /** + * + * + *
+   * Custom label 4 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label4 = 22; + * + * @return Whether the customLabel4 field is set. + */ + boolean hasCustomLabel4(); + + /** + * + * + *
+   * Custom label 4 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label4 = 22; + * + * @return The customLabel4. + */ + java.lang.String getCustomLabel4(); + + /** + * + * + *
+   * Custom label 4 for custom grouping of products. Segment.
+   * 
+ * + * optional string custom_label4 = 22; + * + * @return The bytes for customLabel4. + */ + com.google.protobuf.ByteString getCustomLabel4Bytes(); + + /** + * + * + *
+   * Number of clicks. Metric.
+   * 
+ * + * optional int64 clicks = 23; + * + * @return Whether the clicks field is set. + */ + boolean hasClicks(); + + /** + * + * + *
+   * Number of clicks. Metric.
+   * 
+ * + * optional int64 clicks = 23; + * + * @return The clicks. + */ + long getClicks(); + + /** + * + * + *
+   * Number of times merchant's products are shown. Metric.
+   * 
+ * + * optional int64 impressions = 24; + * + * @return Whether the impressions field is set. + */ + boolean hasImpressions(); + + /** + * + * + *
+   * Number of times merchant's products are shown. Metric.
+   * 
+ * + * optional int64 impressions = 24; + * + * @return The impressions. + */ + long getImpressions(); + + /** + * + * + *
+   * Click-through rate - the number of clicks merchant's products receive
+   * (clicks) divided by the number of times the products are shown
+   * (impressions). Metric.
+   * 
+ * + * optional double click_through_rate = 25; + * + * @return Whether the clickThroughRate field is set. + */ + boolean hasClickThroughRate(); + + /** + * + * + *
+   * Click-through rate - the number of clicks merchant's products receive
+   * (clicks) divided by the number of times the products are shown
+   * (impressions). Metric.
+   * 
+ * + * optional double click_through_rate = 25; + * + * @return The clickThroughRate. + */ + double getClickThroughRate(); + + /** + * + * + *
+   * Number of conversions attributed to the product, reported on the conversion
+   * date. Depending on the attribution model, a conversion might be distributed
+   * across multiple clicks, where each click gets its own credit assigned. This
+   * metric is a sum of all such credits. Metric.
+   *
+   * Available only for the `FREE` traffic source.
+   * 
+ * + * optional double conversions = 26; + * + * @return Whether the conversions field is set. + */ + boolean hasConversions(); + + /** + * + * + *
+   * Number of conversions attributed to the product, reported on the conversion
+   * date. Depending on the attribution model, a conversion might be distributed
+   * across multiple clicks, where each click gets its own credit assigned. This
+   * metric is a sum of all such credits. Metric.
+   *
+   * Available only for the `FREE` traffic source.
+   * 
+ * + * optional double conversions = 26; + * + * @return The conversions. + */ + double getConversions(); + + /** + * + * + *
+   * Value of conversions attributed to the product, reported on the conversion
+   * date. Metric.
+   *
+   * Available only for the `FREE` traffic source.
+   * 
+ * + * .google.shopping.type.Price conversion_value = 27; + * + * @return Whether the conversionValue field is set. + */ + boolean hasConversionValue(); + + /** + * + * + *
+   * Value of conversions attributed to the product, reported on the conversion
+   * date. Metric.
+   *
+   * Available only for the `FREE` traffic source.
+   * 
+ * + * .google.shopping.type.Price conversion_value = 27; + * + * @return The conversionValue. + */ + com.google.shopping.type.Price getConversionValue(); + + /** + * + * + *
+   * Value of conversions attributed to the product, reported on the conversion
+   * date. Metric.
+   *
+   * Available only for the `FREE` traffic source.
+   * 
+ * + * .google.shopping.type.Price conversion_value = 27; + */ + com.google.shopping.type.PriceOrBuilder getConversionValueOrBuilder(); + + /** + * + * + *
+   * Number of conversions divided by the number of clicks, reported on the
+   * impression date. Metric.
+   *
+   * Available only for the `FREE` traffic source.
+   * 
+ * + * optional double conversion_rate = 28; + * + * @return Whether the conversionRate field is set. + */ + boolean hasConversionRate(); + + /** + * + * + *
+   * Number of conversions divided by the number of clicks, reported on the
+   * impression date. Metric.
+   *
+   * Available only for the `FREE` traffic source.
+   * 
+ * + * optional double conversion_rate = 28; + * + * @return The conversionRate. + */ + double getConversionRate(); +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductView.java new file mode 100644 index 000000000000..8cd8acf30045 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductView.java @@ -0,0 +1,14317 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Fields available for query in `product_view` table.
+ *
+ * Products in the current inventory. Products in this table are the same as in
+ * Products sub-API but not all product attributes from Products sub-API are
+ * available for query in this table. In contrast to Products sub-API, this
+ * table allows to filter the returned list of products by product attributes.
+ * To retrieve a single product by `id` or list all products, Products sub-API
+ * should be used.
+ *
+ * Values are only set for fields requested explicitly in the request's search
+ * query.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ProductView} + */ +public final class ProductView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.ProductView) + ProductViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ProductView.newBuilder() to construct. + private ProductView(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ProductView() { + id_ = ""; + channel_ = 0; + languageCode_ = ""; + feedLabel_ = ""; + offerId_ = ""; + title_ = ""; + brand_ = ""; + categoryL1_ = ""; + categoryL2_ = ""; + categoryL3_ = ""; + categoryL4_ = ""; + categoryL5_ = ""; + productTypeL1_ = ""; + productTypeL2_ = ""; + productTypeL3_ = ""; + productTypeL4_ = ""; + productTypeL5_ = ""; + condition_ = ""; + availability_ = ""; + shippingLabel_ = ""; + gtin_ = com.google.protobuf.LazyStringArrayList.emptyList(); + itemGroupId_ = ""; + thumbnailLink_ = ""; + aggregatedReportingContextStatus_ = 0; + itemIssues_ = java.util.Collections.emptyList(); + clickPotential_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ProductView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductView.class, + com.google.shopping.merchant.reports.v1alpha.ProductView.Builder.class); + } + + /** + * + * + *
+   * Status of the product aggregated for all reporting contexts.
+   *
+   * Here's an example of how the aggregated status is computed:
+   *
+   * Free listings | Shopping ads | Status
+   * --------------|--------------|------------------------------
+   * Approved      | Approved     | ELIGIBLE
+   * Approved      | Pending      | ELIGIBLE
+   * Approved      | Disapproved  | ELIGIBLE_LIMITED
+   * Pending       | Pending      | PENDING
+   * Disapproved   | Disapproved  | NOT_ELIGIBLE_OR_DISAPPROVED
+   * 
+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus} + */ + public enum AggregatedReportingContextStatus implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Not specified.
+     * 
+ * + * AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED = 0; + */ + AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED(0), + /** + * + * + *
+     * Product is not eligible or is disapproved for all reporting contexts.
+     * 
+ * + * NOT_ELIGIBLE_OR_DISAPPROVED = 1; + */ + NOT_ELIGIBLE_OR_DISAPPROVED(1), + /** + * + * + *
+     * Product's status is pending in all reporting contexts.
+     * 
+ * + * PENDING = 2; + */ + PENDING(2), + /** + * + * + *
+     * Product is eligible for some (but not all) reporting contexts.
+     * 
+ * + * ELIGIBLE_LIMITED = 3; + */ + ELIGIBLE_LIMITED(3), + /** + * + * + *
+     * Product is eligible for all reporting contexts.
+     * 
+ * + * ELIGIBLE = 4; + */ + ELIGIBLE(4), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+     * Not specified.
+     * 
+ * + * AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED = 0; + */ + public static final int AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+     * Product is not eligible or is disapproved for all reporting contexts.
+     * 
+ * + * NOT_ELIGIBLE_OR_DISAPPROVED = 1; + */ + public static final int NOT_ELIGIBLE_OR_DISAPPROVED_VALUE = 1; + + /** + * + * + *
+     * Product's status is pending in all reporting contexts.
+     * 
+ * + * PENDING = 2; + */ + public static final int PENDING_VALUE = 2; + + /** + * + * + *
+     * Product is eligible for some (but not all) reporting contexts.
+     * 
+ * + * ELIGIBLE_LIMITED = 3; + */ + public static final int ELIGIBLE_LIMITED_VALUE = 3; + + /** + * + * + *
+     * Product is eligible for all reporting contexts.
+     * 
+ * + * ELIGIBLE = 4; + */ + public static final int ELIGIBLE_VALUE = 4; + + 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 AggregatedReportingContextStatus 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 AggregatedReportingContextStatus forNumber(int value) { + switch (value) { + case 0: + return AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED; + case 1: + return NOT_ELIGIBLE_OR_DISAPPROVED; + case 2: + return PENDING; + case 3: + return ELIGIBLE_LIMITED; + case 4: + return ELIGIBLE; + 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 AggregatedReportingContextStatus findValueByNumber(int number) { + return AggregatedReportingContextStatus.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.shopping.merchant.reports.v1alpha.ProductView.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final AggregatedReportingContextStatus[] VALUES = values(); + + public static AggregatedReportingContextStatus 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 AggregatedReportingContextStatus(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus) + } + + /** + * + * + *
+   * A product's [click
+   * potential](https://support.google.com/merchants/answer/188488) estimates
+   * its performance potential compared to highest performing products of the
+   * merchant. Click potential of a product helps merchants to prioritize which
+   * products to fix and helps them understand how products are performing
+   * against their potential.
+   * 
+ * + * Protobuf enum {@code google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential} + */ + public enum ClickPotential implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Unknown predicted clicks impact.
+     * 
+ * + * CLICK_POTENTIAL_UNSPECIFIED = 0; + */ + CLICK_POTENTIAL_UNSPECIFIED(0), + /** + * + * + *
+     * Potential to receive a low number of clicks compared to the highest
+     * performing products of the merchant.
+     * 
+ * + * LOW = 1; + */ + LOW(1), + /** + * + * + *
+     * Potential to receive a moderate number of clicks compared to the highest
+     * performing products of the merchant.
+     * 
+ * + * MEDIUM = 2; + */ + MEDIUM(2), + /** + * + * + *
+     * Potential to receive a similar number of clicks as the highest performing
+     * products of the merchant.
+     * 
+ * + * HIGH = 3; + */ + HIGH(3), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+     * Unknown predicted clicks impact.
+     * 
+ * + * CLICK_POTENTIAL_UNSPECIFIED = 0; + */ + public static final int CLICK_POTENTIAL_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+     * Potential to receive a low number of clicks compared to the highest
+     * performing products of the merchant.
+     * 
+ * + * LOW = 1; + */ + public static final int LOW_VALUE = 1; + + /** + * + * + *
+     * Potential to receive a moderate number of clicks compared to the highest
+     * performing products of the merchant.
+     * 
+ * + * MEDIUM = 2; + */ + public static final int MEDIUM_VALUE = 2; + + /** + * + * + *
+     * Potential to receive a similar number of clicks as the highest performing
+     * products of the merchant.
+     * 
+ * + * HIGH = 3; + */ + public static final int HIGH_VALUE = 3; + + 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 ClickPotential 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 ClickPotential forNumber(int value) { + switch (value) { + case 0: + return CLICK_POTENTIAL_UNSPECIFIED; + case 1: + return LOW; + case 2: + return MEDIUM; + case 3: + return HIGH; + 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 ClickPotential findValueByNumber(int number) { + return ClickPotential.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.shopping.merchant.reports.v1alpha.ProductView.getDescriptor() + .getEnumTypes() + .get(1); + } + + private static final ClickPotential[] VALUES = values(); + + public static ClickPotential 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 ClickPotential(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential) + } + + public interface ItemIssueOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Item issue type.
+     * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1; + * + * + * @return Whether the type field is set. + */ + boolean hasType(); + + /** + * + * + *
+     * Item issue type.
+     * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1; + * + * + * @return The type. + */ + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType getType(); + + /** + * + * + *
+     * Item issue type.
+     * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1; + * + */ + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueTypeOrBuilder + getTypeOrBuilder(); + + /** + * + * + *
+     * Item issue severity.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2; + * + * + * @return Whether the severity field is set. + */ + boolean hasSeverity(); + + /** + * + * + *
+     * Item issue severity.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2; + * + * + * @return The severity. + */ + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + getSeverity(); + + /** + * + * + *
+     * Item issue severity.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2; + * + */ + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverityOrBuilder + getSeverityOrBuilder(); + + /** + * + * + *
+     * Item issue resolution.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3; + * + * + * @return Whether the resolution field is set. + */ + boolean hasResolution(); + + /** + * + * + *
+     * Item issue resolution.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3; + * + * + * @return The enum numeric value on the wire for resolution. + */ + int getResolutionValue(); + + /** + * + * + *
+     * Item issue resolution.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3; + * + * + * @return The resolution. + */ + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution + getResolution(); + } + + /** + * + * + *
+   * Item issue associated with the product.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue} + */ + public static final class ItemIssue extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue) + ItemIssueOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ItemIssue.newBuilder() to construct. + private ItemIssue(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ItemIssue() { + resolution_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ItemIssue(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.class, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder.class); + } + + /** + * + * + *
+     * How to resolve the issue.
+     * 
+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution} + */ + public enum ItemIssueResolution implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+       * Not specified.
+       * 
+ * + * ITEM_ISSUE_RESOLUTION_UNSPECIFIED = 0; + */ + ITEM_ISSUE_RESOLUTION_UNSPECIFIED(0), + /** + * + * + *
+       * The merchant has to fix the issue.
+       * 
+ * + * MERCHANT_ACTION = 1; + */ + MERCHANT_ACTION(1), + /** + * + * + *
+       * The issue will be resolved automatically (for example, image crawl) or
+       * through a Google review. No merchant action is required now. Resolution
+       * might lead to another issue (for example, if crawl fails).
+       * 
+ * + * PENDING_PROCESSING = 2; + */ + PENDING_PROCESSING(2), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+       * Not specified.
+       * 
+ * + * ITEM_ISSUE_RESOLUTION_UNSPECIFIED = 0; + */ + public static final int ITEM_ISSUE_RESOLUTION_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+       * The merchant has to fix the issue.
+       * 
+ * + * MERCHANT_ACTION = 1; + */ + public static final int MERCHANT_ACTION_VALUE = 1; + + /** + * + * + *
+       * The issue will be resolved automatically (for example, image crawl) or
+       * through a Google review. No merchant action is required now. Resolution
+       * might lead to another issue (for example, if crawl fails).
+       * 
+ * + * PENDING_PROCESSING = 2; + */ + public static final int PENDING_PROCESSING_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 ItemIssueResolution 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 ItemIssueResolution forNumber(int value) { + switch (value) { + case 0: + return ITEM_ISSUE_RESOLUTION_UNSPECIFIED; + case 1: + return MERCHANT_ACTION; + case 2: + return PENDING_PROCESSING; + 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 ItemIssueResolution findValueByNumber(int number) { + return ItemIssueResolution.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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final ItemIssueResolution[] VALUES = values(); + + public static ItemIssueResolution 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 ItemIssueResolution(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution) + } + + public interface ItemIssueTypeOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+       * Error code of the issue, equivalent to the `code` of [Product
+       * issues](https://developers.google.com/shopping-content/guides/product-issues).
+       * 
+ * + * optional string code = 1; + * + * @return Whether the code field is set. + */ + boolean hasCode(); + + /** + * + * + *
+       * Error code of the issue, equivalent to the `code` of [Product
+       * issues](https://developers.google.com/shopping-content/guides/product-issues).
+       * 
+ * + * optional string code = 1; + * + * @return The code. + */ + java.lang.String getCode(); + + /** + * + * + *
+       * Error code of the issue, equivalent to the `code` of [Product
+       * issues](https://developers.google.com/shopping-content/guides/product-issues).
+       * 
+ * + * optional string code = 1; + * + * @return The bytes for code. + */ + com.google.protobuf.ByteString getCodeBytes(); + + /** + * + * + *
+       * Canonical attribute name for attribute-specific issues.
+       * 
+ * + * optional string canonical_attribute = 2; + * + * @return Whether the canonicalAttribute field is set. + */ + boolean hasCanonicalAttribute(); + + /** + * + * + *
+       * Canonical attribute name for attribute-specific issues.
+       * 
+ * + * optional string canonical_attribute = 2; + * + * @return The canonicalAttribute. + */ + java.lang.String getCanonicalAttribute(); + + /** + * + * + *
+       * Canonical attribute name for attribute-specific issues.
+       * 
+ * + * optional string canonical_attribute = 2; + * + * @return The bytes for canonicalAttribute. + */ + com.google.protobuf.ByteString getCanonicalAttributeBytes(); + } + + /** + * + * + *
+     * Issue type.
+     * 
+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType} + */ + public static final class ItemIssueType extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType) + ItemIssueTypeOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ItemIssueType.newBuilder() to construct. + private ItemIssueType(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ItemIssueType() { + code_ = ""; + canonicalAttribute_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ItemIssueType(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueType_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueType_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + .class, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + .Builder.class); + } + + private int bitField0_; + public static final int CODE_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object code_ = ""; + + /** + * + * + *
+       * Error code of the issue, equivalent to the `code` of [Product
+       * issues](https://developers.google.com/shopping-content/guides/product-issues).
+       * 
+ * + * optional string code = 1; + * + * @return Whether the code field is set. + */ + @java.lang.Override + public boolean hasCode() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+       * Error code of the issue, equivalent to the `code` of [Product
+       * issues](https://developers.google.com/shopping-content/guides/product-issues).
+       * 
+ * + * optional string code = 1; + * + * @return The code. + */ + @java.lang.Override + public java.lang.String getCode() { + java.lang.Object ref = code_; + 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(); + code_ = s; + return s; + } + } + + /** + * + * + *
+       * Error code of the issue, equivalent to the `code` of [Product
+       * issues](https://developers.google.com/shopping-content/guides/product-issues).
+       * 
+ * + * optional string code = 1; + * + * @return The bytes for code. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCodeBytes() { + java.lang.Object ref = code_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + code_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CANONICAL_ATTRIBUTE_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object canonicalAttribute_ = ""; + + /** + * + * + *
+       * Canonical attribute name for attribute-specific issues.
+       * 
+ * + * optional string canonical_attribute = 2; + * + * @return Whether the canonicalAttribute field is set. + */ + @java.lang.Override + public boolean hasCanonicalAttribute() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+       * Canonical attribute name for attribute-specific issues.
+       * 
+ * + * optional string canonical_attribute = 2; + * + * @return The canonicalAttribute. + */ + @java.lang.Override + public java.lang.String getCanonicalAttribute() { + java.lang.Object ref = canonicalAttribute_; + 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(); + canonicalAttribute_ = s; + return s; + } + } + + /** + * + * + *
+       * Canonical attribute name for attribute-specific issues.
+       * 
+ * + * optional string canonical_attribute = 2; + * + * @return The bytes for canonicalAttribute. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCanonicalAttributeBytes() { + java.lang.Object ref = canonicalAttribute_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + canonicalAttribute_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + 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 (((bitField0_ & 0x00000001) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, code_); + } + if (((bitField0_ & 0x00000002) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, canonicalAttribute_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, code_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, canonicalAttribute_); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType other = + (com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType) obj; + + if (hasCode() != other.hasCode()) return false; + if (hasCode()) { + if (!getCode().equals(other.getCode())) return false; + } + if (hasCanonicalAttribute() != other.hasCanonicalAttribute()) return false; + if (hasCanonicalAttribute()) { + if (!getCanonicalAttribute().equals(other.getCanonicalAttribute())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasCode()) { + hash = (37 * hash) + CODE_FIELD_NUMBER; + hash = (53 * hash) + getCode().hashCode(); + } + if (hasCanonicalAttribute()) { + hash = (37 * hash) + CANONICAL_ATTRIBUTE_FIELD_NUMBER; + hash = (53 * hash) + getCanonicalAttribute().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + 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; + } + + /** + * + * + *
+       * Issue type.
+       * 
+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType) + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueTypeOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueType_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueType_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + .class, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + .Builder.class); + } + + // Construct using + // com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + code_ = ""; + canonicalAttribute_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueType_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + build() { + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + buildPartial() { + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType result = + new com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType( + this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.code_ = code_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.canonicalAttribute_ = canonicalAttribute_; + to_bitField0_ |= 0x00000002; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType) { + return mergeFrom( + (com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType) + other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + .getDefaultInstance()) return this; + if (other.hasCode()) { + code_ = other.code_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasCanonicalAttribute()) { + canonicalAttribute_ = other.canonicalAttribute_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + code_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + canonicalAttribute_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.lang.Object code_ = ""; + + /** + * + * + *
+         * Error code of the issue, equivalent to the `code` of [Product
+         * issues](https://developers.google.com/shopping-content/guides/product-issues).
+         * 
+ * + * optional string code = 1; + * + * @return Whether the code field is set. + */ + public boolean hasCode() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+         * Error code of the issue, equivalent to the `code` of [Product
+         * issues](https://developers.google.com/shopping-content/guides/product-issues).
+         * 
+ * + * optional string code = 1; + * + * @return The code. + */ + public java.lang.String getCode() { + java.lang.Object ref = code_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + code_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+         * Error code of the issue, equivalent to the `code` of [Product
+         * issues](https://developers.google.com/shopping-content/guides/product-issues).
+         * 
+ * + * optional string code = 1; + * + * @return The bytes for code. + */ + public com.google.protobuf.ByteString getCodeBytes() { + java.lang.Object ref = code_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + code_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+         * Error code of the issue, equivalent to the `code` of [Product
+         * issues](https://developers.google.com/shopping-content/guides/product-issues).
+         * 
+ * + * optional string code = 1; + * + * @param value The code to set. + * @return This builder for chaining. + */ + public Builder setCode(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + code_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+         * Error code of the issue, equivalent to the `code` of [Product
+         * issues](https://developers.google.com/shopping-content/guides/product-issues).
+         * 
+ * + * optional string code = 1; + * + * @return This builder for chaining. + */ + public Builder clearCode() { + code_ = getDefaultInstance().getCode(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+         * Error code of the issue, equivalent to the `code` of [Product
+         * issues](https://developers.google.com/shopping-content/guides/product-issues).
+         * 
+ * + * optional string code = 1; + * + * @param value The bytes for code to set. + * @return This builder for chaining. + */ + public Builder setCodeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + code_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object canonicalAttribute_ = ""; + + /** + * + * + *
+         * Canonical attribute name for attribute-specific issues.
+         * 
+ * + * optional string canonical_attribute = 2; + * + * @return Whether the canonicalAttribute field is set. + */ + public boolean hasCanonicalAttribute() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+         * Canonical attribute name for attribute-specific issues.
+         * 
+ * + * optional string canonical_attribute = 2; + * + * @return The canonicalAttribute. + */ + public java.lang.String getCanonicalAttribute() { + java.lang.Object ref = canonicalAttribute_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + canonicalAttribute_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+         * Canonical attribute name for attribute-specific issues.
+         * 
+ * + * optional string canonical_attribute = 2; + * + * @return The bytes for canonicalAttribute. + */ + public com.google.protobuf.ByteString getCanonicalAttributeBytes() { + java.lang.Object ref = canonicalAttribute_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + canonicalAttribute_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+         * Canonical attribute name for attribute-specific issues.
+         * 
+ * + * optional string canonical_attribute = 2; + * + * @param value The canonicalAttribute to set. + * @return This builder for chaining. + */ + public Builder setCanonicalAttribute(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + canonicalAttribute_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+         * Canonical attribute name for attribute-specific issues.
+         * 
+ * + * optional string canonical_attribute = 2; + * + * @return This builder for chaining. + */ + public Builder clearCanonicalAttribute() { + canonicalAttribute_ = getDefaultInstance().getCanonicalAttribute(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+         * Canonical attribute name for attribute-specific issues.
+         * 
+ * + * optional string canonical_attribute = 2; + * + * @param value The bytes for canonicalAttribute to set. + * @return This builder for chaining. + */ + public Builder setCanonicalAttributeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + canonicalAttribute_ = value; + bitField0_ |= 0x00000002; + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType) + private static final com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueType + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType(); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ItemIssueType parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException() + .setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ItemIssueSeverityOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+       * Issue severity per reporting context.
+       * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + java.util.List< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext> + getSeverityPerReportingContextList(); + + /** + * + * + *
+       * Issue severity per reporting context.
+       * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext + getSeverityPerReportingContext(int index); + + /** + * + * + *
+       * Issue severity per reporting context.
+       * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + int getSeverityPerReportingContextCount(); + + /** + * + * + *
+       * Issue severity per reporting context.
+       * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + java.util.List< + ? extends + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContextOrBuilder> + getSeverityPerReportingContextOrBuilderList(); + + /** + * + * + *
+       * Issue severity per reporting context.
+       * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContextOrBuilder + getSeverityPerReportingContextOrBuilder(int index); + + /** + * + * + *
+       * Aggregated severity of the issue for all reporting contexts it affects.
+       *
+       * **This field can be used for filtering the results.**
+       * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2; + * + * + * @return Whether the aggregatedSeverity field is set. + */ + boolean hasAggregatedSeverity(); + + /** + * + * + *
+       * Aggregated severity of the issue for all reporting contexts it affects.
+       *
+       * **This field can be used for filtering the results.**
+       * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2; + * + * + * @return The enum numeric value on the wire for aggregatedSeverity. + */ + int getAggregatedSeverityValue(); + + /** + * + * + *
+       * Aggregated severity of the issue for all reporting contexts it affects.
+       *
+       * **This field can be used for filtering the results.**
+       * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2; + * + * + * @return The aggregatedSeverity. + */ + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .AggregatedIssueSeverity + getAggregatedSeverity(); + } + + /** + * + * + *
+     * How the issue affects the serving of the product.
+     * 
+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity} + */ + public static final class ItemIssueSeverity extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity) + ItemIssueSeverityOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ItemIssueSeverity.newBuilder() to construct. + private ItemIssueSeverity(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ItemIssueSeverity() { + severityPerReportingContext_ = java.util.Collections.emptyList(); + aggregatedSeverity_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ItemIssueSeverity(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .class, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .Builder.class); + } + + /** + * + * + *
+       * Issue severity aggregated for all reporting contexts.
+       * 
+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity} + */ + public enum AggregatedIssueSeverity implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+         * Not specified.
+         * 
+ * + * AGGREGATED_ISSUE_SEVERITY_UNSPECIFIED = 0; + */ + AGGREGATED_ISSUE_SEVERITY_UNSPECIFIED(0), + /** + * + * + *
+         * Issue disapproves the product in at least one reporting context.
+         * 
+ * + * DISAPPROVED = 1; + */ + DISAPPROVED(1), + /** + * + * + *
+         * Issue demotes the product in all reporting contexts it affects.
+         * 
+ * + * DEMOTED = 2; + */ + DEMOTED(2), + /** + * + * + *
+         * Issue resolution is `PENDING_PROCESSING`.
+         * 
+ * + * PENDING = 3; + */ + PENDING(3), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+         * Not specified.
+         * 
+ * + * AGGREGATED_ISSUE_SEVERITY_UNSPECIFIED = 0; + */ + public static final int AGGREGATED_ISSUE_SEVERITY_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+         * Issue disapproves the product in at least one reporting context.
+         * 
+ * + * DISAPPROVED = 1; + */ + public static final int DISAPPROVED_VALUE = 1; + + /** + * + * + *
+         * Issue demotes the product in all reporting contexts it affects.
+         * 
+ * + * DEMOTED = 2; + */ + public static final int DEMOTED_VALUE = 2; + + /** + * + * + *
+         * Issue resolution is `PENDING_PROCESSING`.
+         * 
+ * + * PENDING = 3; + */ + public static final int PENDING_VALUE = 3; + + 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 AggregatedIssueSeverity 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 AggregatedIssueSeverity forNumber(int value) { + switch (value) { + case 0: + return AGGREGATED_ISSUE_SEVERITY_UNSPECIFIED; + case 1: + return DISAPPROVED; + case 2: + return DEMOTED; + case 3: + return PENDING; + 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 AggregatedIssueSeverity findValueByNumber(int number) { + return AggregatedIssueSeverity.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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final AggregatedIssueSeverity[] VALUES = values(); + + public static AggregatedIssueSeverity 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 AggregatedIssueSeverity(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity) + } + + public interface IssueSeverityPerReportingContextOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+         * Reporting context the issue applies to.
+         * 
+ * + * + * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1; + * + * + * @return Whether the reportingContext field is set. + */ + boolean hasReportingContext(); + + /** + * + * + *
+         * Reporting context the issue applies to.
+         * 
+ * + * + * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1; + * + * + * @return The enum numeric value on the wire for reportingContext. + */ + int getReportingContextValue(); + + /** + * + * + *
+         * Reporting context the issue applies to.
+         * 
+ * + * + * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1; + * + * + * @return The reportingContext. + */ + com.google.shopping.type.ReportingContext.ReportingContextEnum getReportingContext(); + + /** + * + * + *
+         * List of disapproved countries in the reporting context, represented
+         * in ISO 3166 format.
+         * 
+ * + * repeated string disapproved_countries = 2; + * + * @return A list containing the disapprovedCountries. + */ + java.util.List getDisapprovedCountriesList(); + + /** + * + * + *
+         * List of disapproved countries in the reporting context, represented
+         * in ISO 3166 format.
+         * 
+ * + * repeated string disapproved_countries = 2; + * + * @return The count of disapprovedCountries. + */ + int getDisapprovedCountriesCount(); + + /** + * + * + *
+         * List of disapproved countries in the reporting context, represented
+         * in ISO 3166 format.
+         * 
+ * + * repeated string disapproved_countries = 2; + * + * @param index The index of the element to return. + * @return The disapprovedCountries at the given index. + */ + java.lang.String getDisapprovedCountries(int index); + + /** + * + * + *
+         * List of disapproved countries in the reporting context, represented
+         * in ISO 3166 format.
+         * 
+ * + * repeated string disapproved_countries = 2; + * + * @param index The index of the value to return. + * @return The bytes of the disapprovedCountries at the given index. + */ + com.google.protobuf.ByteString getDisapprovedCountriesBytes(int index); + + /** + * + * + *
+         * List of demoted countries in the reporting context, represented in
+         * ISO 3166 format.
+         * 
+ * + * repeated string demoted_countries = 3; + * + * @return A list containing the demotedCountries. + */ + java.util.List getDemotedCountriesList(); + + /** + * + * + *
+         * List of demoted countries in the reporting context, represented in
+         * ISO 3166 format.
+         * 
+ * + * repeated string demoted_countries = 3; + * + * @return The count of demotedCountries. + */ + int getDemotedCountriesCount(); + + /** + * + * + *
+         * List of demoted countries in the reporting context, represented in
+         * ISO 3166 format.
+         * 
+ * + * repeated string demoted_countries = 3; + * + * @param index The index of the element to return. + * @return The demotedCountries at the given index. + */ + java.lang.String getDemotedCountries(int index); + + /** + * + * + *
+         * List of demoted countries in the reporting context, represented in
+         * ISO 3166 format.
+         * 
+ * + * repeated string demoted_countries = 3; + * + * @param index The index of the value to return. + * @return The bytes of the demotedCountries at the given index. + */ + com.google.protobuf.ByteString getDemotedCountriesBytes(int index); + } + + /** + * + * + *
+       * Issue severity per reporting context.
+       * 
+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext} + */ + public static final class IssueSeverityPerReportingContext + extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext) + IssueSeverityPerReportingContextOrBuilder { + private static final long serialVersionUID = 0L; + + // Use IssueSeverityPerReportingContext.newBuilder() to construct. + private IssueSeverityPerReportingContext( + com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private IssueSeverityPerReportingContext() { + reportingContext_ = 0; + disapprovedCountries_ = com.google.protobuf.LazyStringArrayList.emptyList(); + demotedCountries_ = com.google.protobuf.LazyStringArrayList.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new IssueSeverityPerReportingContext(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_IssueSeverityPerReportingContext_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_IssueSeverityPerReportingContext_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext.class, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext.Builder.class); + } + + private int bitField0_; + public static final int REPORTING_CONTEXT_FIELD_NUMBER = 1; + private int reportingContext_ = 0; + + /** + * + * + *
+         * Reporting context the issue applies to.
+         * 
+ * + * + * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1; + * + * + * @return Whether the reportingContext field is set. + */ + @java.lang.Override + public boolean hasReportingContext() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+         * Reporting context the issue applies to.
+         * 
+ * + * + * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1; + * + * + * @return The enum numeric value on the wire for reportingContext. + */ + @java.lang.Override + public int getReportingContextValue() { + return reportingContext_; + } + + /** + * + * + *
+         * Reporting context the issue applies to.
+         * 
+ * + * + * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1; + * + * + * @return The reportingContext. + */ + @java.lang.Override + public com.google.shopping.type.ReportingContext.ReportingContextEnum + getReportingContext() { + com.google.shopping.type.ReportingContext.ReportingContextEnum result = + com.google.shopping.type.ReportingContext.ReportingContextEnum.forNumber( + reportingContext_); + return result == null + ? com.google.shopping.type.ReportingContext.ReportingContextEnum.UNRECOGNIZED + : result; + } + + public static final int DISAPPROVED_COUNTRIES_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList disapprovedCountries_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+         * List of disapproved countries in the reporting context, represented
+         * in ISO 3166 format.
+         * 
+ * + * repeated string disapproved_countries = 2; + * + * @return A list containing the disapprovedCountries. + */ + public com.google.protobuf.ProtocolStringList getDisapprovedCountriesList() { + return disapprovedCountries_; + } + + /** + * + * + *
+         * List of disapproved countries in the reporting context, represented
+         * in ISO 3166 format.
+         * 
+ * + * repeated string disapproved_countries = 2; + * + * @return The count of disapprovedCountries. + */ + public int getDisapprovedCountriesCount() { + return disapprovedCountries_.size(); + } + + /** + * + * + *
+         * List of disapproved countries in the reporting context, represented
+         * in ISO 3166 format.
+         * 
+ * + * repeated string disapproved_countries = 2; + * + * @param index The index of the element to return. + * @return The disapprovedCountries at the given index. + */ + public java.lang.String getDisapprovedCountries(int index) { + return disapprovedCountries_.get(index); + } + + /** + * + * + *
+         * List of disapproved countries in the reporting context, represented
+         * in ISO 3166 format.
+         * 
+ * + * repeated string disapproved_countries = 2; + * + * @param index The index of the value to return. + * @return The bytes of the disapprovedCountries at the given index. + */ + public com.google.protobuf.ByteString getDisapprovedCountriesBytes(int index) { + return disapprovedCountries_.getByteString(index); + } + + public static final int DEMOTED_COUNTRIES_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList demotedCountries_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+         * List of demoted countries in the reporting context, represented in
+         * ISO 3166 format.
+         * 
+ * + * repeated string demoted_countries = 3; + * + * @return A list containing the demotedCountries. + */ + public com.google.protobuf.ProtocolStringList getDemotedCountriesList() { + return demotedCountries_; + } + + /** + * + * + *
+         * List of demoted countries in the reporting context, represented in
+         * ISO 3166 format.
+         * 
+ * + * repeated string demoted_countries = 3; + * + * @return The count of demotedCountries. + */ + public int getDemotedCountriesCount() { + return demotedCountries_.size(); + } + + /** + * + * + *
+         * List of demoted countries in the reporting context, represented in
+         * ISO 3166 format.
+         * 
+ * + * repeated string demoted_countries = 3; + * + * @param index The index of the element to return. + * @return The demotedCountries at the given index. + */ + public java.lang.String getDemotedCountries(int index) { + return demotedCountries_.get(index); + } + + /** + * + * + *
+         * List of demoted countries in the reporting context, represented in
+         * ISO 3166 format.
+         * 
+ * + * repeated string demoted_countries = 3; + * + * @param index The index of the value to return. + * @return The bytes of the demotedCountries at the given index. + */ + public com.google.protobuf.ByteString getDemotedCountriesBytes(int index) { + return demotedCountries_.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 (((bitField0_ & 0x00000001) != 0)) { + output.writeEnum(1, reportingContext_); + } + for (int i = 0; i < disapprovedCountries_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString( + output, 2, disapprovedCountries_.getRaw(i)); + } + for (int i = 0; i < demotedCountries_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString( + output, 3, demotedCountries_.getRaw(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, reportingContext_); + } + { + int dataSize = 0; + for (int i = 0; i < disapprovedCountries_.size(); i++) { + dataSize += computeStringSizeNoTag(disapprovedCountries_.getRaw(i)); + } + size += dataSize; + size += 1 * getDisapprovedCountriesList().size(); + } + { + int dataSize = 0; + for (int i = 0; i < demotedCountries_.size(); i++) { + dataSize += computeStringSizeNoTag(demotedCountries_.getRaw(i)); + } + size += dataSize; + size += 1 * getDemotedCountriesList().size(); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext + other = + (com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext) + obj; + + if (hasReportingContext() != other.hasReportingContext()) return false; + if (hasReportingContext()) { + if (reportingContext_ != other.reportingContext_) return false; + } + if (!getDisapprovedCountriesList().equals(other.getDisapprovedCountriesList())) + return false; + if (!getDemotedCountriesList().equals(other.getDemotedCountriesList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasReportingContext()) { + hash = (37 * hash) + REPORTING_CONTEXT_FIELD_NUMBER; + hash = (53 * hash) + reportingContext_; + } + if (getDisapprovedCountriesCount() > 0) { + hash = (37 * hash) + DISAPPROVED_COUNTRIES_FIELD_NUMBER; + hash = (53 * hash) + getDisapprovedCountriesList().hashCode(); + } + if (getDemotedCountriesCount() > 0) { + hash = (37 * hash) + DEMOTED_COUNTRIES_FIELD_NUMBER; + hash = (53 * hash) + getDemotedCountriesList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException( + PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext + 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; + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext) + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContextOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_IssueSeverityPerReportingContext_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_IssueSeverityPerReportingContext_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext.class, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext.Builder.class); + } + + // Construct using + // com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + reportingContext_ = 0; + disapprovedCountries_ = com.google.protobuf.LazyStringArrayList.emptyList(); + demotedCountries_ = com.google.protobuf.LazyStringArrayList.emptyList(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_IssueSeverityPerReportingContext_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext.getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + build() { + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext + result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + buildPartial() { + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext + result = + new com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext + result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.reportingContext_ = reportingContext_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + disapprovedCountries_.makeImmutable(); + result.disapprovedCountries_ = disapprovedCountries_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + demotedCountries_.makeImmutable(); + result.demotedCountries_ = demotedCountries_; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext) { + return mergeFrom( + (com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext) + other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext + other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext.getDefaultInstance()) + return this; + if (other.hasReportingContext()) { + setReportingContext(other.getReportingContext()); + } + if (!other.disapprovedCountries_.isEmpty()) { + if (disapprovedCountries_.isEmpty()) { + disapprovedCountries_ = other.disapprovedCountries_; + bitField0_ |= 0x00000002; + } else { + ensureDisapprovedCountriesIsMutable(); + disapprovedCountries_.addAll(other.disapprovedCountries_); + } + onChanged(); + } + if (!other.demotedCountries_.isEmpty()) { + if (demotedCountries_.isEmpty()) { + demotedCountries_ = other.demotedCountries_; + bitField0_ |= 0x00000004; + } else { + ensureDemotedCountriesIsMutable(); + demotedCountries_.addAll(other.demotedCountries_); + } + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: + { + reportingContext_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: + { + java.lang.String s = input.readStringRequireUtf8(); + ensureDisapprovedCountriesIsMutable(); + disapprovedCountries_.add(s); + break; + } // case 18 + case 26: + { + java.lang.String s = input.readStringRequireUtf8(); + ensureDemotedCountriesIsMutable(); + demotedCountries_.add(s); + break; + } // case 26 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private int reportingContext_ = 0; + + /** + * + * + *
+           * Reporting context the issue applies to.
+           * 
+ * + * + * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1; + * + * + * @return Whether the reportingContext field is set. + */ + @java.lang.Override + public boolean hasReportingContext() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+           * Reporting context the issue applies to.
+           * 
+ * + * + * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1; + * + * + * @return The enum numeric value on the wire for reportingContext. + */ + @java.lang.Override + public int getReportingContextValue() { + return reportingContext_; + } + + /** + * + * + *
+           * Reporting context the issue applies to.
+           * 
+ * + * + * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1; + * + * + * @param value The enum numeric value on the wire for reportingContext to set. + * @return This builder for chaining. + */ + public Builder setReportingContextValue(int value) { + reportingContext_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+           * Reporting context the issue applies to.
+           * 
+ * + * + * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1; + * + * + * @return The reportingContext. + */ + @java.lang.Override + public com.google.shopping.type.ReportingContext.ReportingContextEnum + getReportingContext() { + com.google.shopping.type.ReportingContext.ReportingContextEnum result = + com.google.shopping.type.ReportingContext.ReportingContextEnum.forNumber( + reportingContext_); + return result == null + ? com.google.shopping.type.ReportingContext.ReportingContextEnum.UNRECOGNIZED + : result; + } + + /** + * + * + *
+           * Reporting context the issue applies to.
+           * 
+ * + * + * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1; + * + * + * @param value The reportingContext to set. + * @return This builder for chaining. + */ + public Builder setReportingContext( + com.google.shopping.type.ReportingContext.ReportingContextEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + reportingContext_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+           * Reporting context the issue applies to.
+           * 
+ * + * + * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1; + * + * + * @return This builder for chaining. + */ + public Builder clearReportingContext() { + bitField0_ = (bitField0_ & ~0x00000001); + reportingContext_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringArrayList disapprovedCountries_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureDisapprovedCountriesIsMutable() { + if (!disapprovedCountries_.isModifiable()) { + disapprovedCountries_ = + new com.google.protobuf.LazyStringArrayList(disapprovedCountries_); + } + bitField0_ |= 0x00000002; + } + + /** + * + * + *
+           * List of disapproved countries in the reporting context, represented
+           * in ISO 3166 format.
+           * 
+ * + * repeated string disapproved_countries = 2; + * + * @return A list containing the disapprovedCountries. + */ + public com.google.protobuf.ProtocolStringList getDisapprovedCountriesList() { + disapprovedCountries_.makeImmutable(); + return disapprovedCountries_; + } + + /** + * + * + *
+           * List of disapproved countries in the reporting context, represented
+           * in ISO 3166 format.
+           * 
+ * + * repeated string disapproved_countries = 2; + * + * @return The count of disapprovedCountries. + */ + public int getDisapprovedCountriesCount() { + return disapprovedCountries_.size(); + } + + /** + * + * + *
+           * List of disapproved countries in the reporting context, represented
+           * in ISO 3166 format.
+           * 
+ * + * repeated string disapproved_countries = 2; + * + * @param index The index of the element to return. + * @return The disapprovedCountries at the given index. + */ + public java.lang.String getDisapprovedCountries(int index) { + return disapprovedCountries_.get(index); + } + + /** + * + * + *
+           * List of disapproved countries in the reporting context, represented
+           * in ISO 3166 format.
+           * 
+ * + * repeated string disapproved_countries = 2; + * + * @param index The index of the value to return. + * @return The bytes of the disapprovedCountries at the given index. + */ + public com.google.protobuf.ByteString getDisapprovedCountriesBytes(int index) { + return disapprovedCountries_.getByteString(index); + } + + /** + * + * + *
+           * List of disapproved countries in the reporting context, represented
+           * in ISO 3166 format.
+           * 
+ * + * repeated string disapproved_countries = 2; + * + * @param index The index to set the value at. + * @param value The disapprovedCountries to set. + * @return This builder for chaining. + */ + public Builder setDisapprovedCountries(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDisapprovedCountriesIsMutable(); + disapprovedCountries_.set(index, value); + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+           * List of disapproved countries in the reporting context, represented
+           * in ISO 3166 format.
+           * 
+ * + * repeated string disapproved_countries = 2; + * + * @param value The disapprovedCountries to add. + * @return This builder for chaining. + */ + public Builder addDisapprovedCountries(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDisapprovedCountriesIsMutable(); + disapprovedCountries_.add(value); + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+           * List of disapproved countries in the reporting context, represented
+           * in ISO 3166 format.
+           * 
+ * + * repeated string disapproved_countries = 2; + * + * @param values The disapprovedCountries to add. + * @return This builder for chaining. + */ + public Builder addAllDisapprovedCountries(java.lang.Iterable values) { + ensureDisapprovedCountriesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, disapprovedCountries_); + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+           * List of disapproved countries in the reporting context, represented
+           * in ISO 3166 format.
+           * 
+ * + * repeated string disapproved_countries = 2; + * + * @return This builder for chaining. + */ + public Builder clearDisapprovedCountries() { + disapprovedCountries_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + ; + onChanged(); + return this; + } + + /** + * + * + *
+           * List of disapproved countries in the reporting context, represented
+           * in ISO 3166 format.
+           * 
+ * + * repeated string disapproved_countries = 2; + * + * @param value The bytes of the disapprovedCountries to add. + * @return This builder for chaining. + */ + public Builder addDisapprovedCountriesBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureDisapprovedCountriesIsMutable(); + disapprovedCountries_.add(value); + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringArrayList demotedCountries_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureDemotedCountriesIsMutable() { + if (!demotedCountries_.isModifiable()) { + demotedCountries_ = new com.google.protobuf.LazyStringArrayList(demotedCountries_); + } + bitField0_ |= 0x00000004; + } + + /** + * + * + *
+           * List of demoted countries in the reporting context, represented in
+           * ISO 3166 format.
+           * 
+ * + * repeated string demoted_countries = 3; + * + * @return A list containing the demotedCountries. + */ + public com.google.protobuf.ProtocolStringList getDemotedCountriesList() { + demotedCountries_.makeImmutable(); + return demotedCountries_; + } + + /** + * + * + *
+           * List of demoted countries in the reporting context, represented in
+           * ISO 3166 format.
+           * 
+ * + * repeated string demoted_countries = 3; + * + * @return The count of demotedCountries. + */ + public int getDemotedCountriesCount() { + return demotedCountries_.size(); + } + + /** + * + * + *
+           * List of demoted countries in the reporting context, represented in
+           * ISO 3166 format.
+           * 
+ * + * repeated string demoted_countries = 3; + * + * @param index The index of the element to return. + * @return The demotedCountries at the given index. + */ + public java.lang.String getDemotedCountries(int index) { + return demotedCountries_.get(index); + } + + /** + * + * + *
+           * List of demoted countries in the reporting context, represented in
+           * ISO 3166 format.
+           * 
+ * + * repeated string demoted_countries = 3; + * + * @param index The index of the value to return. + * @return The bytes of the demotedCountries at the given index. + */ + public com.google.protobuf.ByteString getDemotedCountriesBytes(int index) { + return demotedCountries_.getByteString(index); + } + + /** + * + * + *
+           * List of demoted countries in the reporting context, represented in
+           * ISO 3166 format.
+           * 
+ * + * repeated string demoted_countries = 3; + * + * @param index The index to set the value at. + * @param value The demotedCountries to set. + * @return This builder for chaining. + */ + public Builder setDemotedCountries(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDemotedCountriesIsMutable(); + demotedCountries_.set(index, value); + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+           * List of demoted countries in the reporting context, represented in
+           * ISO 3166 format.
+           * 
+ * + * repeated string demoted_countries = 3; + * + * @param value The demotedCountries to add. + * @return This builder for chaining. + */ + public Builder addDemotedCountries(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDemotedCountriesIsMutable(); + demotedCountries_.add(value); + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+           * List of demoted countries in the reporting context, represented in
+           * ISO 3166 format.
+           * 
+ * + * repeated string demoted_countries = 3; + * + * @param values The demotedCountries to add. + * @return This builder for chaining. + */ + public Builder addAllDemotedCountries(java.lang.Iterable values) { + ensureDemotedCountriesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, demotedCountries_); + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+           * List of demoted countries in the reporting context, represented in
+           * ISO 3166 format.
+           * 
+ * + * repeated string demoted_countries = 3; + * + * @return This builder for chaining. + */ + public Builder clearDemotedCountries() { + demotedCountries_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); + ; + onChanged(); + return this; + } + + /** + * + * + *
+           * List of demoted countries in the reporting context, represented in
+           * ISO 3166 format.
+           * 
+ * + * repeated string demoted_countries = 3; + * + * @param value The bytes of the demotedCountries to add. + * @return This builder for chaining. + */ + public Builder addDemotedCountriesBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureDemotedCountriesIsMutable(); + demotedCountries_.add(value); + bitField0_ |= 0x00000004; + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext) + private static final com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext(); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public IssueSeverityPerReportingContext parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException() + .setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + private int bitField0_; + public static final int SEVERITY_PER_REPORTING_CONTEXT_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext> + severityPerReportingContext_; + + /** + * + * + *
+       * Issue severity per reporting context.
+       * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + @java.lang.Override + public java.util.List< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext> + getSeverityPerReportingContextList() { + return severityPerReportingContext_; + } + + /** + * + * + *
+       * Issue severity per reporting context.
+       * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + @java.lang.Override + public java.util.List< + ? extends + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContextOrBuilder> + getSeverityPerReportingContextOrBuilderList() { + return severityPerReportingContext_; + } + + /** + * + * + *
+       * Issue severity per reporting context.
+       * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + @java.lang.Override + public int getSeverityPerReportingContextCount() { + return severityPerReportingContext_.size(); + } + + /** + * + * + *
+       * Issue severity per reporting context.
+       * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext + getSeverityPerReportingContext(int index) { + return severityPerReportingContext_.get(index); + } + + /** + * + * + *
+       * Issue severity per reporting context.
+       * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContextOrBuilder + getSeverityPerReportingContextOrBuilder(int index) { + return severityPerReportingContext_.get(index); + } + + public static final int AGGREGATED_SEVERITY_FIELD_NUMBER = 2; + private int aggregatedSeverity_ = 0; + + /** + * + * + *
+       * Aggregated severity of the issue for all reporting contexts it affects.
+       *
+       * **This field can be used for filtering the results.**
+       * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2; + * + * + * @return Whether the aggregatedSeverity field is set. + */ + @java.lang.Override + public boolean hasAggregatedSeverity() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+       * Aggregated severity of the issue for all reporting contexts it affects.
+       *
+       * **This field can be used for filtering the results.**
+       * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2; + * + * + * @return The enum numeric value on the wire for aggregatedSeverity. + */ + @java.lang.Override + public int getAggregatedSeverityValue() { + return aggregatedSeverity_; + } + + /** + * + * + *
+       * Aggregated severity of the issue for all reporting contexts it affects.
+       *
+       * **This field can be used for filtering the results.**
+       * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2; + * + * + * @return The aggregatedSeverity. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .AggregatedIssueSeverity + getAggregatedSeverity() { + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .AggregatedIssueSeverity + result = + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .AggregatedIssueSeverity.forNumber(aggregatedSeverity_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .AggregatedIssueSeverity.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 { + for (int i = 0; i < severityPerReportingContext_.size(); i++) { + output.writeMessage(1, severityPerReportingContext_.get(i)); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeEnum(2, aggregatedSeverity_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < severityPerReportingContext_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 1, severityPerReportingContext_.get(i)); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, aggregatedSeverity_); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity other = + (com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity) + obj; + + if (!getSeverityPerReportingContextList() + .equals(other.getSeverityPerReportingContextList())) return false; + if (hasAggregatedSeverity() != other.hasAggregatedSeverity()) return false; + if (hasAggregatedSeverity()) { + if (aggregatedSeverity_ != other.aggregatedSeverity_) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getSeverityPerReportingContextCount() > 0) { + hash = (37 * hash) + SEVERITY_PER_REPORTING_CONTEXT_FIELD_NUMBER; + hash = (53 * hash) + getSeverityPerReportingContextList().hashCode(); + } + if (hasAggregatedSeverity()) { + hash = (37 * hash) + AGGREGATED_SEVERITY_FIELD_NUMBER; + hash = (53 * hash) + aggregatedSeverity_; + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + 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; + } + + /** + * + * + *
+       * How the issue affects the serving of the product.
+       * 
+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity) + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverityOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.class, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.Builder.class); + } + + // Construct using + // com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (severityPerReportingContextBuilder_ == null) { + severityPerReportingContext_ = java.util.Collections.emptyList(); + } else { + severityPerReportingContext_ = null; + severityPerReportingContextBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + aggregatedSeverity_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + build() { + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + buildPartial() { + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + result = + new com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + result) { + if (severityPerReportingContextBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + severityPerReportingContext_ = + java.util.Collections.unmodifiableList(severityPerReportingContext_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.severityPerReportingContext_ = severityPerReportingContext_; + } else { + result.severityPerReportingContext_ = severityPerReportingContextBuilder_.build(); + } + } + + private void buildPartial0( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.aggregatedSeverity_ = aggregatedSeverity_; + to_bitField0_ |= 0x00000001; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity) { + return mergeFrom( + (com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity) + other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.getDefaultInstance()) return this; + if (severityPerReportingContextBuilder_ == null) { + if (!other.severityPerReportingContext_.isEmpty()) { + if (severityPerReportingContext_.isEmpty()) { + severityPerReportingContext_ = other.severityPerReportingContext_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureSeverityPerReportingContextIsMutable(); + severityPerReportingContext_.addAll(other.severityPerReportingContext_); + } + onChanged(); + } + } else { + if (!other.severityPerReportingContext_.isEmpty()) { + if (severityPerReportingContextBuilder_.isEmpty()) { + severityPerReportingContextBuilder_.dispose(); + severityPerReportingContextBuilder_ = null; + severityPerReportingContext_ = other.severityPerReportingContext_; + bitField0_ = (bitField0_ & ~0x00000001); + severityPerReportingContextBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getSeverityPerReportingContextFieldBuilder() + : null; + } else { + severityPerReportingContextBuilder_.addAllMessages( + other.severityPerReportingContext_); + } + } + } + if (other.hasAggregatedSeverity()) { + setAggregatedSeverity(other.getAggregatedSeverity()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext + m = + input.readMessage( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext.parser(), + extensionRegistry); + if (severityPerReportingContextBuilder_ == null) { + ensureSeverityPerReportingContextIsMutable(); + severityPerReportingContext_.add(m); + } else { + severityPerReportingContextBuilder_.addMessage(m); + } + break; + } // case 10 + case 16: + { + aggregatedSeverity_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.util.List< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext> + severityPerReportingContext_ = java.util.Collections.emptyList(); + + private void ensureSeverityPerReportingContextIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + severityPerReportingContext_ = + new java.util.ArrayList< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext>( + severityPerReportingContext_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext.Builder, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContextOrBuilder> + severityPerReportingContextBuilder_; + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public java.util.List< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext> + getSeverityPerReportingContextList() { + if (severityPerReportingContextBuilder_ == null) { + return java.util.Collections.unmodifiableList(severityPerReportingContext_); + } else { + return severityPerReportingContextBuilder_.getMessageList(); + } + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public int getSeverityPerReportingContextCount() { + if (severityPerReportingContextBuilder_ == null) { + return severityPerReportingContext_.size(); + } else { + return severityPerReportingContextBuilder_.getCount(); + } + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext + getSeverityPerReportingContext(int index) { + if (severityPerReportingContextBuilder_ == null) { + return severityPerReportingContext_.get(index); + } else { + return severityPerReportingContextBuilder_.getMessage(index); + } + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public Builder setSeverityPerReportingContext( + int index, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext + value) { + if (severityPerReportingContextBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSeverityPerReportingContextIsMutable(); + severityPerReportingContext_.set(index, value); + onChanged(); + } else { + severityPerReportingContextBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public Builder setSeverityPerReportingContext( + int index, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext.Builder + builderForValue) { + if (severityPerReportingContextBuilder_ == null) { + ensureSeverityPerReportingContextIsMutable(); + severityPerReportingContext_.set(index, builderForValue.build()); + onChanged(); + } else { + severityPerReportingContextBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public Builder addSeverityPerReportingContext( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext + value) { + if (severityPerReportingContextBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSeverityPerReportingContextIsMutable(); + severityPerReportingContext_.add(value); + onChanged(); + } else { + severityPerReportingContextBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public Builder addSeverityPerReportingContext( + int index, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext + value) { + if (severityPerReportingContextBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSeverityPerReportingContextIsMutable(); + severityPerReportingContext_.add(index, value); + onChanged(); + } else { + severityPerReportingContextBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public Builder addSeverityPerReportingContext( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext.Builder + builderForValue) { + if (severityPerReportingContextBuilder_ == null) { + ensureSeverityPerReportingContextIsMutable(); + severityPerReportingContext_.add(builderForValue.build()); + onChanged(); + } else { + severityPerReportingContextBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public Builder addSeverityPerReportingContext( + int index, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext.Builder + builderForValue) { + if (severityPerReportingContextBuilder_ == null) { + ensureSeverityPerReportingContextIsMutable(); + severityPerReportingContext_.add(index, builderForValue.build()); + onChanged(); + } else { + severityPerReportingContextBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public Builder addAllSeverityPerReportingContext( + java.lang.Iterable< + ? extends + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext> + values) { + if (severityPerReportingContextBuilder_ == null) { + ensureSeverityPerReportingContextIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, severityPerReportingContext_); + onChanged(); + } else { + severityPerReportingContextBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public Builder clearSeverityPerReportingContext() { + if (severityPerReportingContextBuilder_ == null) { + severityPerReportingContext_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + severityPerReportingContextBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public Builder removeSeverityPerReportingContext(int index) { + if (severityPerReportingContextBuilder_ == null) { + ensureSeverityPerReportingContextIsMutable(); + severityPerReportingContext_.remove(index); + onChanged(); + } else { + severityPerReportingContextBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext.Builder + getSeverityPerReportingContextBuilder(int index) { + return getSeverityPerReportingContextFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContextOrBuilder + getSeverityPerReportingContextOrBuilder(int index) { + if (severityPerReportingContextBuilder_ == null) { + return severityPerReportingContext_.get(index); + } else { + return severityPerReportingContextBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public java.util.List< + ? extends + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContextOrBuilder> + getSeverityPerReportingContextOrBuilderList() { + if (severityPerReportingContextBuilder_ != null) { + return severityPerReportingContextBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(severityPerReportingContext_); + } + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext.Builder + addSeverityPerReportingContextBuilder() { + return getSeverityPerReportingContextFieldBuilder() + .addBuilder( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext.getDefaultInstance()); + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext.Builder + addSeverityPerReportingContextBuilder(int index) { + return getSeverityPerReportingContextFieldBuilder() + .addBuilder( + index, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext.getDefaultInstance()); + } + + /** + * + * + *
+         * Issue severity per reporting context.
+         * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1; + * + */ + public java.util.List< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext.Builder> + getSeverityPerReportingContextBuilderList() { + return getSeverityPerReportingContextFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContext.Builder, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .IssueSeverityPerReportingContextOrBuilder> + getSeverityPerReportingContextFieldBuilder() { + if (severityPerReportingContextBuilder_ == null) { + severityPerReportingContextBuilder_ = + new com.google.protobuf.RepeatedFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext.Builder, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContextOrBuilder>( + severityPerReportingContext_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + severityPerReportingContext_ = null; + } + return severityPerReportingContextBuilder_; + } + + private int aggregatedSeverity_ = 0; + + /** + * + * + *
+         * Aggregated severity of the issue for all reporting contexts it affects.
+         *
+         * **This field can be used for filtering the results.**
+         * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2; + * + * + * @return Whether the aggregatedSeverity field is set. + */ + @java.lang.Override + public boolean hasAggregatedSeverity() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+         * Aggregated severity of the issue for all reporting contexts it affects.
+         *
+         * **This field can be used for filtering the results.**
+         * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2; + * + * + * @return The enum numeric value on the wire for aggregatedSeverity. + */ + @java.lang.Override + public int getAggregatedSeverityValue() { + return aggregatedSeverity_; + } + + /** + * + * + *
+         * Aggregated severity of the issue for all reporting contexts it affects.
+         *
+         * **This field can be used for filtering the results.**
+         * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2; + * + * + * @param value The enum numeric value on the wire for aggregatedSeverity to set. + * @return This builder for chaining. + */ + public Builder setAggregatedSeverityValue(int value) { + aggregatedSeverity_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+         * Aggregated severity of the issue for all reporting contexts it affects.
+         *
+         * **This field can be used for filtering the results.**
+         * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2; + * + * + * @return The aggregatedSeverity. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .AggregatedIssueSeverity + getAggregatedSeverity() { + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .AggregatedIssueSeverity + result = + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.AggregatedIssueSeverity.forNumber(aggregatedSeverity_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .AggregatedIssueSeverity.UNRECOGNIZED + : result; + } + + /** + * + * + *
+         * Aggregated severity of the issue for all reporting contexts it affects.
+         *
+         * **This field can be used for filtering the results.**
+         * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2; + * + * + * @param value The aggregatedSeverity to set. + * @return This builder for chaining. + */ + public Builder setAggregatedSeverity( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .AggregatedIssueSeverity + value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + aggregatedSeverity_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+         * Aggregated severity of the issue for all reporting contexts it affects.
+         *
+         * **This field can be used for filtering the results.**
+         * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2; + * + * + * @return This builder for chaining. + */ + public Builder clearAggregatedSeverity() { + bitField0_ = (bitField0_ & ~0x00000002); + aggregatedSeverity_ = 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity) + private static final com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity(); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ItemIssueSeverity parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException() + .setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + private int bitField0_; + public static final int TYPE_FIELD_NUMBER = 1; + private com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type_; + + /** + * + * + *
+     * Item issue type.
+     * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1; + * + * + * @return Whether the type field is set. + */ + @java.lang.Override + public boolean hasType() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Item issue type.
+     * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1; + * + * + * @return The type. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + getType() { + return type_ == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + .getDefaultInstance() + : type_; + } + + /** + * + * + *
+     * Item issue type.
+     * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueTypeOrBuilder + getTypeOrBuilder() { + return type_ == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + .getDefaultInstance() + : type_; + } + + public static final int SEVERITY_FIELD_NUMBER = 2; + private com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + severity_; + + /** + * + * + *
+     * Item issue severity.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2; + * + * + * @return Whether the severity field is set. + */ + @java.lang.Override + public boolean hasSeverity() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Item issue severity.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2; + * + * + * @return The severity. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + getSeverity() { + return severity_ == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .getDefaultInstance() + : severity_; + } + + /** + * + * + *
+     * Item issue severity.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverityOrBuilder + getSeverityOrBuilder() { + return severity_ == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .getDefaultInstance() + : severity_; + } + + public static final int RESOLUTION_FIELD_NUMBER = 3; + private int resolution_ = 0; + + /** + * + * + *
+     * Item issue resolution.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3; + * + * + * @return Whether the resolution field is set. + */ + @java.lang.Override + public boolean hasResolution() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * Item issue resolution.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3; + * + * + * @return The enum numeric value on the wire for resolution. + */ + @java.lang.Override + public int getResolutionValue() { + return resolution_; + } + + /** + * + * + *
+     * Item issue resolution.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3; + * + * + * @return The resolution. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution + getResolution() { + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution + result = + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution + .forNumber(resolution_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution + .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 (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getType()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(2, getSeverity()); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeEnum(3, resolution_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getType()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSeverity()); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(3, resolution_); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue other = + (com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue) obj; + + if (hasType() != other.hasType()) return false; + if (hasType()) { + if (!getType().equals(other.getType())) return false; + } + if (hasSeverity() != other.hasSeverity()) return false; + if (hasSeverity()) { + if (!getSeverity().equals(other.getSeverity())) return false; + } + if (hasResolution() != other.hasResolution()) return false; + if (hasResolution()) { + if (resolution_ != other.resolution_) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasType()) { + hash = (37 * hash) + TYPE_FIELD_NUMBER; + hash = (53 * hash) + getType().hashCode(); + } + if (hasSeverity()) { + hash = (37 * hash) + SEVERITY_FIELD_NUMBER; + hash = (53 * hash) + getSeverity().hashCode(); + } + if (hasResolution()) { + hash = (37 * hash) + RESOLUTION_FIELD_NUMBER; + hash = (53 * hash) + resolution_; + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue 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; + } + + /** + * + * + *
+     * Item issue associated with the product.
+     * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue) + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.class, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder.class); + } + + // Construct using + // com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getTypeFieldBuilder(); + getSeverityFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + type_ = null; + if (typeBuilder_ != null) { + typeBuilder_.dispose(); + typeBuilder_ = null; + } + severity_ = null; + if (severityBuilder_ != null) { + severityBuilder_.dispose(); + severityBuilder_ = null; + } + resolution_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue build() { + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue buildPartial() { + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue result = + new com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.type_ = typeBuilder_ == null ? type_ : typeBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.severity_ = severityBuilder_ == null ? severity_ : severityBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.resolution_ = resolution_; + to_bitField0_ |= 0x00000004; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue) { + return mergeFrom( + (com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .getDefaultInstance()) return this; + if (other.hasType()) { + mergeType(other.getType()); + } + if (other.hasSeverity()) { + mergeSeverity(other.getSeverity()); + } + if (other.hasResolution()) { + setResolution(other.getResolution()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getTypeFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + input.readMessage(getSeverityFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: + { + resolution_ = input.readEnum(); + bitField0_ |= 0x00000004; + break; + } // case 24 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + type_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + .Builder, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueTypeOrBuilder> + typeBuilder_; + + /** + * + * + *
+       * Item issue type.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1; + * + * + * @return Whether the type field is set. + */ + public boolean hasType() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+       * Item issue type.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1; + * + * + * @return The type. + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + getType() { + if (typeBuilder_ == null) { + return type_ == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + .getDefaultInstance() + : type_; + } else { + return typeBuilder_.getMessage(); + } + } + + /** + * + * + *
+       * Item issue type.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1; + * + */ + public Builder setType( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType value) { + if (typeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + type_ = value; + } else { + typeBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Item issue type.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1; + * + */ + public Builder setType( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType.Builder + builderForValue) { + if (typeBuilder_ == null) { + type_ = builderForValue.build(); + } else { + typeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Item issue type.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1; + * + */ + public Builder mergeType( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType value) { + if (typeBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && type_ != null + && type_ + != com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueType.getDefaultInstance()) { + getTypeBuilder().mergeFrom(value); + } else { + type_ = value; + } + } else { + typeBuilder_.mergeFrom(value); + } + if (type_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+       * Item issue type.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1; + * + */ + public Builder clearType() { + bitField0_ = (bitField0_ & ~0x00000001); + type_ = null; + if (typeBuilder_ != null) { + typeBuilder_.dispose(); + typeBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+       * Item issue type.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1; + * + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + .Builder + getTypeBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getTypeFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Item issue type.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1; + * + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueTypeOrBuilder + getTypeOrBuilder() { + if (typeBuilder_ != null) { + return typeBuilder_.getMessageOrBuilder(); + } else { + return type_ == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + .getDefaultInstance() + : type_; + } + } + + /** + * + * + *
+       * Item issue type.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + .Builder, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueTypeOrBuilder> + getTypeFieldBuilder() { + if (typeBuilder_ == null) { + typeBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + .Builder, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueTypeOrBuilder>(getType(), getParentForChildren(), isClean()); + type_ = null; + } + return typeBuilder_; + } + + private com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + severity_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .Builder, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverityOrBuilder> + severityBuilder_; + + /** + * + * + *
+       * Item issue severity.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2; + * + * + * @return Whether the severity field is set. + */ + public boolean hasSeverity() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+       * Item issue severity.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2; + * + * + * @return The severity. + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + getSeverity() { + if (severityBuilder_ == null) { + return severity_ == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .getDefaultInstance() + : severity_; + } else { + return severityBuilder_.getMessage(); + } + } + + /** + * + * + *
+       * Item issue severity.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2; + * + */ + public Builder setSeverity( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + value) { + if (severityBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + severity_ = value; + } else { + severityBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Item issue severity.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2; + * + */ + public Builder setSeverity( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .Builder + builderForValue) { + if (severityBuilder_ == null) { + severity_ = builderForValue.build(); + } else { + severityBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Item issue severity.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2; + * + */ + public Builder mergeSeverity( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + value) { + if (severityBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) + && severity_ != null + && severity_ + != com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.getDefaultInstance()) { + getSeverityBuilder().mergeFrom(value); + } else { + severity_ = value; + } + } else { + severityBuilder_.mergeFrom(value); + } + if (severity_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } + return this; + } + + /** + * + * + *
+       * Item issue severity.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2; + * + */ + public Builder clearSeverity() { + bitField0_ = (bitField0_ & ~0x00000002); + severity_ = null; + if (severityBuilder_ != null) { + severityBuilder_.dispose(); + severityBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+       * Item issue severity.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2; + * + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .Builder + getSeverityBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getSeverityFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Item issue severity.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2; + * + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverityOrBuilder + getSeverityOrBuilder() { + if (severityBuilder_ != null) { + return severityBuilder_.getMessageOrBuilder(); + } else { + return severity_ == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .getDefaultInstance() + : severity_; + } + } + + /** + * + * + *
+       * Item issue severity.
+       * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .Builder, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverityOrBuilder> + getSeverityFieldBuilder() { + if (severityBuilder_ == null) { + severityBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.Builder, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverityOrBuilder>( + getSeverity(), getParentForChildren(), isClean()); + severity_ = null; + } + return severityBuilder_; + } + + private int resolution_ = 0; + + /** + * + * + *
+       * Item issue resolution.
+       * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3; + * + * + * @return Whether the resolution field is set. + */ + @java.lang.Override + public boolean hasResolution() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+       * Item issue resolution.
+       * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3; + * + * + * @return The enum numeric value on the wire for resolution. + */ + @java.lang.Override + public int getResolutionValue() { + return resolution_; + } + + /** + * + * + *
+       * Item issue resolution.
+       * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3; + * + * + * @param value The enum numeric value on the wire for resolution to set. + * @return This builder for chaining. + */ + public Builder setResolutionValue(int value) { + resolution_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+       * Item issue resolution.
+       * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3; + * + * + * @return The resolution. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution + getResolution() { + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution + result = + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueResolution.forNumber(resolution_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+       * Item issue resolution.
+       * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3; + * + * + * @param value The resolution to set. + * @return This builder for chaining. + */ + public Builder setResolution( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution + value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + resolution_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+       * Item issue resolution.
+       * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3; + * + * + * @return This builder for chaining. + */ + public Builder clearResolution() { + bitField0_ = (bitField0_ & ~0x00000004); + resolution_ = 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue) + private static final com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue(); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ItemIssue parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException() + .setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + private int bitField0_; + public static final int ID_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object id_ = ""; + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate
+   * on products take this as their `name` parameter.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 1; + * + * @return Whether the id field is set. + */ + @java.lang.Override + public boolean hasId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate
+   * on products take this as their `name` parameter.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 1; + * + * @return The id. + */ + @java.lang.Override + public java.lang.String getId() { + java.lang.Object ref = id_; + 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(); + id_ = s; + return s; + } + } + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate
+   * on products take this as their `name` parameter.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 1; + * + * @return The bytes for id. + */ + @java.lang.Override + public com.google.protobuf.ByteString getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CHANNEL_FIELD_NUMBER = 28; + private int channel_ = 0; + + /** + * + * + *
+   * Channel of the product. Can be `ONLINE` or `LOCAL`.
+   * 
+ * + * optional .google.shopping.type.Channel.ChannelEnum channel = 28; + * + * @return Whether the channel field is set. + */ + @java.lang.Override + public boolean hasChannel() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Channel of the product. Can be `ONLINE` or `LOCAL`.
+   * 
+ * + * optional .google.shopping.type.Channel.ChannelEnum channel = 28; + * + * @return The enum numeric value on the wire for channel. + */ + @java.lang.Override + public int getChannelValue() { + return channel_; + } + + /** + * + * + *
+   * Channel of the product. Can be `ONLINE` or `LOCAL`.
+   * 
+ * + * optional .google.shopping.type.Channel.ChannelEnum channel = 28; + * + * @return The channel. + */ + @java.lang.Override + public com.google.shopping.type.Channel.ChannelEnum getChannel() { + com.google.shopping.type.Channel.ChannelEnum result = + com.google.shopping.type.Channel.ChannelEnum.forNumber(channel_); + return result == null ? com.google.shopping.type.Channel.ChannelEnum.UNRECOGNIZED : result; + } + + public static final int LANGUAGE_CODE_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object languageCode_ = ""; + + /** + * + * + *
+   * Language code of the product in BCP 47 format.
+   * 
+ * + * optional string language_code = 2; + * + * @return Whether the languageCode field is set. + */ + @java.lang.Override + public boolean hasLanguageCode() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * Language code of the product in BCP 47 format.
+   * 
+ * + * optional string language_code = 2; + * + * @return The languageCode. + */ + @java.lang.Override + public java.lang.String getLanguageCode() { + java.lang.Object ref = languageCode_; + 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(); + languageCode_ = s; + return s; + } + } + + /** + * + * + *
+   * Language code of the product in BCP 47 format.
+   * 
+ * + * optional string language_code = 2; + * + * @return The bytes for languageCode. + */ + @java.lang.Override + public com.google.protobuf.ByteString getLanguageCodeBytes() { + java.lang.Object ref = languageCode_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + languageCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int FEED_LABEL_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object feedLabel_ = ""; + + /** + * + * + *
+   * Feed label of the product.
+   * 
+ * + * optional string feed_label = 3; + * + * @return Whether the feedLabel field is set. + */ + @java.lang.Override + public boolean hasFeedLabel() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * Feed label of the product.
+   * 
+ * + * optional string feed_label = 3; + * + * @return The feedLabel. + */ + @java.lang.Override + public java.lang.String getFeedLabel() { + java.lang.Object ref = feedLabel_; + 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(); + feedLabel_ = s; + return s; + } + } + + /** + * + * + *
+   * Feed label of the product.
+   * 
+ * + * optional string feed_label = 3; + * + * @return The bytes for feedLabel. + */ + @java.lang.Override + public com.google.protobuf.ByteString getFeedLabelBytes() { + java.lang.Object ref = feedLabel_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + feedLabel_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int OFFER_ID_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object offerId_ = ""; + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 4; + * + * @return Whether the offerId field is set. + */ + @java.lang.Override + public boolean hasOfferId() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 4; + * + * @return The offerId. + */ + @java.lang.Override + public java.lang.String getOfferId() { + java.lang.Object ref = offerId_; + 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(); + offerId_ = s; + return s; + } + } + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 4; + * + * @return The bytes for offerId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getOfferIdBytes() { + java.lang.Object ref = offerId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + offerId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TITLE_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private volatile java.lang.Object title_ = ""; + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 5; + * + * @return Whether the title field is set. + */ + @java.lang.Override + public boolean hasTitle() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 5; + * + * @return The title. + */ + @java.lang.Override + public java.lang.String getTitle() { + java.lang.Object ref = title_; + 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(); + title_ = s; + return s; + } + } + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 5; + * + * @return The bytes for title. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BRAND_FIELD_NUMBER = 6; + + @SuppressWarnings("serial") + private volatile java.lang.Object brand_ = ""; + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 6; + * + * @return Whether the brand field is set. + */ + @java.lang.Override + public boolean hasBrand() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 6; + * + * @return The brand. + */ + @java.lang.Override + public java.lang.String getBrand() { + java.lang.Object ref = brand_; + 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(); + brand_ = s; + return s; + } + } + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 6; + * + * @return The bytes for brand. + */ + @java.lang.Override + public com.google.protobuf.ByteString getBrandBytes() { + java.lang.Object ref = brand_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + brand_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L1_FIELD_NUMBER = 7; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL1_ = ""; + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 7; + * + * @return Whether the categoryL1 field is set. + */ + @java.lang.Override + public boolean hasCategoryL1() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 7; + * + * @return The categoryL1. + */ + @java.lang.Override + public java.lang.String getCategoryL1() { + java.lang.Object ref = categoryL1_; + 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(); + categoryL1_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 7; + * + * @return The bytes for categoryL1. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL1Bytes() { + java.lang.Object ref = categoryL1_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L2_FIELD_NUMBER = 8; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL2_ = ""; + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 8; + * + * @return Whether the categoryL2 field is set. + */ + @java.lang.Override + public boolean hasCategoryL2() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 8; + * + * @return The categoryL2. + */ + @java.lang.Override + public java.lang.String getCategoryL2() { + java.lang.Object ref = categoryL2_; + 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(); + categoryL2_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 8; + * + * @return The bytes for categoryL2. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL2Bytes() { + java.lang.Object ref = categoryL2_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L3_FIELD_NUMBER = 9; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL3_ = ""; + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 9; + * + * @return Whether the categoryL3 field is set. + */ + @java.lang.Override + public boolean hasCategoryL3() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 9; + * + * @return The categoryL3. + */ + @java.lang.Override + public java.lang.String getCategoryL3() { + java.lang.Object ref = categoryL3_; + 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(); + categoryL3_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 9; + * + * @return The bytes for categoryL3. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL3Bytes() { + java.lang.Object ref = categoryL3_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L4_FIELD_NUMBER = 10; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL4_ = ""; + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 10; + * + * @return Whether the categoryL4 field is set. + */ + @java.lang.Override + public boolean hasCategoryL4() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 10; + * + * @return The categoryL4. + */ + @java.lang.Override + public java.lang.String getCategoryL4() { + java.lang.Object ref = categoryL4_; + 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(); + categoryL4_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 10; + * + * @return The bytes for categoryL4. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL4Bytes() { + java.lang.Object ref = categoryL4_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CATEGORY_L5_FIELD_NUMBER = 11; + + @SuppressWarnings("serial") + private volatile java.lang.Object categoryL5_ = ""; + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 11; + * + * @return Whether the categoryL5 field is set. + */ + @java.lang.Override + public boolean hasCategoryL5() { + return ((bitField0_ & 0x00000800) != 0); + } + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 11; + * + * @return The categoryL5. + */ + @java.lang.Override + public java.lang.String getCategoryL5() { + java.lang.Object ref = categoryL5_; + 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(); + categoryL5_ = s; + return s; + } + } + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 11; + * + * @return The bytes for categoryL5. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCategoryL5Bytes() { + java.lang.Object ref = categoryL5_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L1_FIELD_NUMBER = 12; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL1_ = ""; + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 12; + * + * @return Whether the productTypeL1 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL1() { + return ((bitField0_ & 0x00001000) != 0); + } + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 12; + * + * @return The productTypeL1. + */ + @java.lang.Override + public java.lang.String getProductTypeL1() { + java.lang.Object ref = productTypeL1_; + 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(); + productTypeL1_ = s; + return s; + } + } + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 12; + * + * @return The bytes for productTypeL1. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL1Bytes() { + java.lang.Object ref = productTypeL1_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L2_FIELD_NUMBER = 13; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL2_ = ""; + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 13; + * + * @return Whether the productTypeL2 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL2() { + return ((bitField0_ & 0x00002000) != 0); + } + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 13; + * + * @return The productTypeL2. + */ + @java.lang.Override + public java.lang.String getProductTypeL2() { + java.lang.Object ref = productTypeL2_; + 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(); + productTypeL2_ = s; + return s; + } + } + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 13; + * + * @return The bytes for productTypeL2. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL2Bytes() { + java.lang.Object ref = productTypeL2_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L3_FIELD_NUMBER = 14; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL3_ = ""; + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 14; + * + * @return Whether the productTypeL3 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL3() { + return ((bitField0_ & 0x00004000) != 0); + } + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 14; + * + * @return The productTypeL3. + */ + @java.lang.Override + public java.lang.String getProductTypeL3() { + java.lang.Object ref = productTypeL3_; + 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(); + productTypeL3_ = s; + return s; + } + } + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 14; + * + * @return The bytes for productTypeL3. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL3Bytes() { + java.lang.Object ref = productTypeL3_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L4_FIELD_NUMBER = 15; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL4_ = ""; + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 15; + * + * @return Whether the productTypeL4 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL4() { + return ((bitField0_ & 0x00008000) != 0); + } + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 15; + * + * @return The productTypeL4. + */ + @java.lang.Override + public java.lang.String getProductTypeL4() { + java.lang.Object ref = productTypeL4_; + 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(); + productTypeL4_ = s; + return s; + } + } + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 15; + * + * @return The bytes for productTypeL4. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL4Bytes() { + java.lang.Object ref = productTypeL4_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRODUCT_TYPE_L5_FIELD_NUMBER = 16; + + @SuppressWarnings("serial") + private volatile java.lang.Object productTypeL5_ = ""; + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 16; + * + * @return Whether the productTypeL5 field is set. + */ + @java.lang.Override + public boolean hasProductTypeL5() { + return ((bitField0_ & 0x00010000) != 0); + } + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 16; + * + * @return The productTypeL5. + */ + @java.lang.Override + public java.lang.String getProductTypeL5() { + java.lang.Object ref = productTypeL5_; + 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(); + productTypeL5_ = s; + return s; + } + } + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 16; + * + * @return The bytes for productTypeL5. + */ + @java.lang.Override + public com.google.protobuf.ByteString getProductTypeL5Bytes() { + java.lang.Object ref = productTypeL5_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRICE_FIELD_NUMBER = 17; + private com.google.shopping.type.Price price_; + + /** + * + * + *
+   * Product price. Absent if the information about the price of the product is
+   * not available.
+   * 
+ * + * .google.shopping.type.Price price = 17; + * + * @return Whether the price field is set. + */ + @java.lang.Override + public boolean hasPrice() { + return ((bitField0_ & 0x00020000) != 0); + } + + /** + * + * + *
+   * Product price. Absent if the information about the price of the product is
+   * not available.
+   * 
+ * + * .google.shopping.type.Price price = 17; + * + * @return The price. + */ + @java.lang.Override + public com.google.shopping.type.Price getPrice() { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } + + /** + * + * + *
+   * Product price. Absent if the information about the price of the product is
+   * not available.
+   * 
+ * + * .google.shopping.type.Price price = 17; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } + + public static final int CONDITION_FIELD_NUMBER = 18; + + @SuppressWarnings("serial") + private volatile java.lang.Object condition_ = ""; + + /** + * + * + *
+   * [Condition](https://support.google.com/merchants/answer/6324469) of the
+   * product.
+   * 
+ * + * optional string condition = 18; + * + * @return Whether the condition field is set. + */ + @java.lang.Override + public boolean hasCondition() { + return ((bitField0_ & 0x00040000) != 0); + } + + /** + * + * + *
+   * [Condition](https://support.google.com/merchants/answer/6324469) of the
+   * product.
+   * 
+ * + * optional string condition = 18; + * + * @return The condition. + */ + @java.lang.Override + public java.lang.String getCondition() { + java.lang.Object ref = condition_; + 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(); + condition_ = s; + return s; + } + } + + /** + * + * + *
+   * [Condition](https://support.google.com/merchants/answer/6324469) of the
+   * product.
+   * 
+ * + * optional string condition = 18; + * + * @return The bytes for condition. + */ + @java.lang.Override + public com.google.protobuf.ByteString getConditionBytes() { + java.lang.Object ref = condition_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + condition_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int AVAILABILITY_FIELD_NUMBER = 19; + + @SuppressWarnings("serial") + private volatile java.lang.Object availability_ = ""; + + /** + * + * + *
+   * [Availability](https://support.google.com/merchants/answer/6324448) of the
+   * product.
+   * 
+ * + * optional string availability = 19; + * + * @return Whether the availability field is set. + */ + @java.lang.Override + public boolean hasAvailability() { + return ((bitField0_ & 0x00080000) != 0); + } + + /** + * + * + *
+   * [Availability](https://support.google.com/merchants/answer/6324448) of the
+   * product.
+   * 
+ * + * optional string availability = 19; + * + * @return The availability. + */ + @java.lang.Override + public java.lang.String getAvailability() { + java.lang.Object ref = availability_; + 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(); + availability_ = s; + return s; + } + } + + /** + * + * + *
+   * [Availability](https://support.google.com/merchants/answer/6324448) of the
+   * product.
+   * 
+ * + * optional string availability = 19; + * + * @return The bytes for availability. + */ + @java.lang.Override + public com.google.protobuf.ByteString getAvailabilityBytes() { + java.lang.Object ref = availability_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + availability_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SHIPPING_LABEL_FIELD_NUMBER = 20; + + @SuppressWarnings("serial") + private volatile java.lang.Object shippingLabel_ = ""; + + /** + * + * + *
+   * Normalized [shipping
+   * label](https://support.google.com/merchants/answer/6324504) specified in
+   * the data source.
+   * 
+ * + * optional string shipping_label = 20; + * + * @return Whether the shippingLabel field is set. + */ + @java.lang.Override + public boolean hasShippingLabel() { + return ((bitField0_ & 0x00100000) != 0); + } + + /** + * + * + *
+   * Normalized [shipping
+   * label](https://support.google.com/merchants/answer/6324504) specified in
+   * the data source.
+   * 
+ * + * optional string shipping_label = 20; + * + * @return The shippingLabel. + */ + @java.lang.Override + public java.lang.String getShippingLabel() { + java.lang.Object ref = shippingLabel_; + 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(); + shippingLabel_ = s; + return s; + } + } + + /** + * + * + *
+   * Normalized [shipping
+   * label](https://support.google.com/merchants/answer/6324504) specified in
+   * the data source.
+   * 
+ * + * optional string shipping_label = 20; + * + * @return The bytes for shippingLabel. + */ + @java.lang.Override + public com.google.protobuf.ByteString getShippingLabelBytes() { + java.lang.Object ref = shippingLabel_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + shippingLabel_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int GTIN_FIELD_NUMBER = 21; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList gtin_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+   * List of Global Trade Item Numbers (GTINs) of the product.
+   * 
+ * + * repeated string gtin = 21; + * + * @return A list containing the gtin. + */ + public com.google.protobuf.ProtocolStringList getGtinList() { + return gtin_; + } + + /** + * + * + *
+   * List of Global Trade Item Numbers (GTINs) of the product.
+   * 
+ * + * repeated string gtin = 21; + * + * @return The count of gtin. + */ + public int getGtinCount() { + return gtin_.size(); + } + + /** + * + * + *
+   * List of Global Trade Item Numbers (GTINs) of the product.
+   * 
+ * + * repeated string gtin = 21; + * + * @param index The index of the element to return. + * @return The gtin at the given index. + */ + public java.lang.String getGtin(int index) { + return gtin_.get(index); + } + + /** + * + * + *
+   * List of Global Trade Item Numbers (GTINs) of the product.
+   * 
+ * + * repeated string gtin = 21; + * + * @param index The index of the value to return. + * @return The bytes of the gtin at the given index. + */ + public com.google.protobuf.ByteString getGtinBytes(int index) { + return gtin_.getByteString(index); + } + + public static final int ITEM_GROUP_ID_FIELD_NUMBER = 22; + + @SuppressWarnings("serial") + private volatile java.lang.Object itemGroupId_ = ""; + + /** + * + * + *
+   * Item group id provided by the merchant for grouping variants together.
+   * 
+ * + * optional string item_group_id = 22; + * + * @return Whether the itemGroupId field is set. + */ + @java.lang.Override + public boolean hasItemGroupId() { + return ((bitField0_ & 0x00200000) != 0); + } + + /** + * + * + *
+   * Item group id provided by the merchant for grouping variants together.
+   * 
+ * + * optional string item_group_id = 22; + * + * @return The itemGroupId. + */ + @java.lang.Override + public java.lang.String getItemGroupId() { + java.lang.Object ref = itemGroupId_; + 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(); + itemGroupId_ = s; + return s; + } + } + + /** + * + * + *
+   * Item group id provided by the merchant for grouping variants together.
+   * 
+ * + * optional string item_group_id = 22; + * + * @return The bytes for itemGroupId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getItemGroupIdBytes() { + java.lang.Object ref = itemGroupId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + itemGroupId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int THUMBNAIL_LINK_FIELD_NUMBER = 23; + + @SuppressWarnings("serial") + private volatile java.lang.Object thumbnailLink_ = ""; + + /** + * + * + *
+   * Link to the processed image of the product, hosted on the Google
+   * infrastructure.
+   * 
+ * + * optional string thumbnail_link = 23; + * + * @return Whether the thumbnailLink field is set. + */ + @java.lang.Override + public boolean hasThumbnailLink() { + return ((bitField0_ & 0x00400000) != 0); + } + + /** + * + * + *
+   * Link to the processed image of the product, hosted on the Google
+   * infrastructure.
+   * 
+ * + * optional string thumbnail_link = 23; + * + * @return The thumbnailLink. + */ + @java.lang.Override + public java.lang.String getThumbnailLink() { + java.lang.Object ref = thumbnailLink_; + 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(); + thumbnailLink_ = s; + return s; + } + } + + /** + * + * + *
+   * Link to the processed image of the product, hosted on the Google
+   * infrastructure.
+   * 
+ * + * optional string thumbnail_link = 23; + * + * @return The bytes for thumbnailLink. + */ + @java.lang.Override + public com.google.protobuf.ByteString getThumbnailLinkBytes() { + java.lang.Object ref = thumbnailLink_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + thumbnailLink_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CREATION_TIME_FIELD_NUMBER = 24; + private com.google.protobuf.Timestamp creationTime_; + + /** + * + * + *
+   * The time the merchant created the product in timestamp seconds.
+   * 
+ * + * .google.protobuf.Timestamp creation_time = 24; + * + * @return Whether the creationTime field is set. + */ + @java.lang.Override + public boolean hasCreationTime() { + return ((bitField0_ & 0x00800000) != 0); + } + + /** + * + * + *
+   * The time the merchant created the product in timestamp seconds.
+   * 
+ * + * .google.protobuf.Timestamp creation_time = 24; + * + * @return The creationTime. + */ + @java.lang.Override + public com.google.protobuf.Timestamp getCreationTime() { + return creationTime_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : creationTime_; + } + + /** + * + * + *
+   * The time the merchant created the product in timestamp seconds.
+   * 
+ * + * .google.protobuf.Timestamp creation_time = 24; + */ + @java.lang.Override + public com.google.protobuf.TimestampOrBuilder getCreationTimeOrBuilder() { + return creationTime_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : creationTime_; + } + + public static final int EXPIRATION_DATE_FIELD_NUMBER = 25; + private com.google.type.Date expirationDate_; + + /** + * + * + *
+   * Expiration date for the product, specified on insertion.
+   * 
+ * + * .google.type.Date expiration_date = 25; + * + * @return Whether the expirationDate field is set. + */ + @java.lang.Override + public boolean hasExpirationDate() { + return ((bitField0_ & 0x01000000) != 0); + } + + /** + * + * + *
+   * Expiration date for the product, specified on insertion.
+   * 
+ * + * .google.type.Date expiration_date = 25; + * + * @return The expirationDate. + */ + @java.lang.Override + public com.google.type.Date getExpirationDate() { + return expirationDate_ == null ? com.google.type.Date.getDefaultInstance() : expirationDate_; + } + + /** + * + * + *
+   * Expiration date for the product, specified on insertion.
+   * 
+ * + * .google.type.Date expiration_date = 25; + */ + @java.lang.Override + public com.google.type.DateOrBuilder getExpirationDateOrBuilder() { + return expirationDate_ == null ? com.google.type.Date.getDefaultInstance() : expirationDate_; + } + + public static final int AGGREGATED_REPORTING_CONTEXT_STATUS_FIELD_NUMBER = 26; + private int aggregatedReportingContextStatus_ = 0; + + /** + * + * + *
+   * Aggregated status.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26; + * + * + * @return Whether the aggregatedReportingContextStatus field is set. + */ + @java.lang.Override + public boolean hasAggregatedReportingContextStatus() { + return ((bitField0_ & 0x02000000) != 0); + } + + /** + * + * + *
+   * Aggregated status.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26; + * + * + * @return The enum numeric value on the wire for aggregatedReportingContextStatus. + */ + @java.lang.Override + public int getAggregatedReportingContextStatusValue() { + return aggregatedReportingContextStatus_; + } + + /** + * + * + *
+   * Aggregated status.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26; + * + * + * @return The aggregatedReportingContextStatus. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus + getAggregatedReportingContextStatus() { + com.google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus + result = + com.google.shopping.merchant.reports.v1alpha.ProductView + .AggregatedReportingContextStatus.forNumber(aggregatedReportingContextStatus_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus + .UNRECOGNIZED + : result; + } + + public static final int ITEM_ISSUES_FIELD_NUMBER = 27; + + @SuppressWarnings("serial") + private java.util.List + itemIssues_; + + /** + * + * + *
+   * List of item issues for the product.
+   *
+   * **This field cannot be used for sorting the results.**
+   *
+   * **Only selected attributes of this field (for example,
+   * `item_issues.severity.aggregated_severity`) can be used for filtering the
+   * results.**
+   * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + @java.lang.Override + public java.util.List + getItemIssuesList() { + return itemIssues_; + } + + /** + * + * + *
+   * List of item issues for the product.
+   *
+   * **This field cannot be used for sorting the results.**
+   *
+   * **Only selected attributes of this field (for example,
+   * `item_issues.severity.aggregated_severity`) can be used for filtering the
+   * results.**
+   * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + @java.lang.Override + public java.util.List< + ? extends com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder> + getItemIssuesOrBuilderList() { + return itemIssues_; + } + + /** + * + * + *
+   * List of item issues for the product.
+   *
+   * **This field cannot be used for sorting the results.**
+   *
+   * **Only selected attributes of this field (for example,
+   * `item_issues.severity.aggregated_severity`) can be used for filtering the
+   * results.**
+   * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + @java.lang.Override + public int getItemIssuesCount() { + return itemIssues_.size(); + } + + /** + * + * + *
+   * List of item issues for the product.
+   *
+   * **This field cannot be used for sorting the results.**
+   *
+   * **Only selected attributes of this field (for example,
+   * `item_issues.severity.aggregated_severity`) can be used for filtering the
+   * results.**
+   * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue getItemIssues( + int index) { + return itemIssues_.get(index); + } + + /** + * + * + *
+   * List of item issues for the product.
+   *
+   * **This field cannot be used for sorting the results.**
+   *
+   * **Only selected attributes of this field (for example,
+   * `item_issues.severity.aggregated_severity`) can be used for filtering the
+   * results.**
+   * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder + getItemIssuesOrBuilder(int index) { + return itemIssues_.get(index); + } + + public static final int CLICK_POTENTIAL_FIELD_NUMBER = 29; + private int clickPotential_ = 0; + + /** + * + * + *
+   * Estimated performance potential compared to highest performing products of
+   * the merchant.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29; + * + * + * @return The enum numeric value on the wire for clickPotential. + */ + @java.lang.Override + public int getClickPotentialValue() { + return clickPotential_; + } + + /** + * + * + *
+   * Estimated performance potential compared to highest performing products of
+   * the merchant.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29; + * + * + * @return The clickPotential. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential + getClickPotential() { + com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential result = + com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential.forNumber( + clickPotential_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential.UNRECOGNIZED + : result; + } + + public static final int CLICK_POTENTIAL_RANK_FIELD_NUMBER = 30; + private long clickPotentialRank_ = 0L; + + /** + * + * + *
+   * Rank of the product based on its click potential. A product with
+   * `click_potential_rank` 1 has the highest click potential among the
+   * merchant's products that fulfill the search query conditions.
+   * 
+ * + * optional int64 click_potential_rank = 30; + * + * @return Whether the clickPotentialRank field is set. + */ + @java.lang.Override + public boolean hasClickPotentialRank() { + return ((bitField0_ & 0x04000000) != 0); + } + + /** + * + * + *
+   * Rank of the product based on its click potential. A product with
+   * `click_potential_rank` 1 has the highest click potential among the
+   * merchant's products that fulfill the search query conditions.
+   * 
+ * + * optional int64 click_potential_rank = 30; + * + * @return The clickPotentialRank. + */ + @java.lang.Override + public long getClickPotentialRank() { + return clickPotentialRank_; + } + + 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 (((bitField0_ & 0x00000001) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); + } + if (((bitField0_ & 0x00000004) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, languageCode_); + } + if (((bitField0_ & 0x00000008) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, feedLabel_); + } + if (((bitField0_ & 0x00000010) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, offerId_); + } + if (((bitField0_ & 0x00000020) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, title_); + } + if (((bitField0_ & 0x00000040) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, brand_); + } + if (((bitField0_ & 0x00000080) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, categoryL1_); + } + if (((bitField0_ & 0x00000100) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 8, categoryL2_); + } + if (((bitField0_ & 0x00000200) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 9, categoryL3_); + } + if (((bitField0_ & 0x00000400) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 10, categoryL4_); + } + if (((bitField0_ & 0x00000800) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 11, categoryL5_); + } + if (((bitField0_ & 0x00001000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 12, productTypeL1_); + } + if (((bitField0_ & 0x00002000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 13, productTypeL2_); + } + if (((bitField0_ & 0x00004000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 14, productTypeL3_); + } + if (((bitField0_ & 0x00008000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 15, productTypeL4_); + } + if (((bitField0_ & 0x00010000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 16, productTypeL5_); + } + if (((bitField0_ & 0x00020000) != 0)) { + output.writeMessage(17, getPrice()); + } + if (((bitField0_ & 0x00040000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 18, condition_); + } + if (((bitField0_ & 0x00080000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 19, availability_); + } + if (((bitField0_ & 0x00100000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 20, shippingLabel_); + } + for (int i = 0; i < gtin_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 21, gtin_.getRaw(i)); + } + if (((bitField0_ & 0x00200000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 22, itemGroupId_); + } + if (((bitField0_ & 0x00400000) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 23, thumbnailLink_); + } + if (((bitField0_ & 0x00800000) != 0)) { + output.writeMessage(24, getCreationTime()); + } + if (((bitField0_ & 0x01000000) != 0)) { + output.writeMessage(25, getExpirationDate()); + } + if (((bitField0_ & 0x02000000) != 0)) { + output.writeEnum(26, aggregatedReportingContextStatus_); + } + for (int i = 0; i < itemIssues_.size(); i++) { + output.writeMessage(27, itemIssues_.get(i)); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeEnum(28, channel_); + } + if (clickPotential_ + != com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential + .CLICK_POTENTIAL_UNSPECIFIED + .getNumber()) { + output.writeEnum(29, clickPotential_); + } + if (((bitField0_ & 0x04000000) != 0)) { + output.writeInt64(30, clickPotentialRank_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, languageCode_); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, feedLabel_); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, offerId_); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, title_); + } + if (((bitField0_ & 0x00000040) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, brand_); + } + if (((bitField0_ & 0x00000080) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, categoryL1_); + } + if (((bitField0_ & 0x00000100) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, categoryL2_); + } + if (((bitField0_ & 0x00000200) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, categoryL3_); + } + if (((bitField0_ & 0x00000400) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, categoryL4_); + } + if (((bitField0_ & 0x00000800) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, categoryL5_); + } + if (((bitField0_ & 0x00001000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, productTypeL1_); + } + if (((bitField0_ & 0x00002000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, productTypeL2_); + } + if (((bitField0_ & 0x00004000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, productTypeL3_); + } + if (((bitField0_ & 0x00008000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, productTypeL4_); + } + if (((bitField0_ & 0x00010000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, productTypeL5_); + } + if (((bitField0_ & 0x00020000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(17, getPrice()); + } + if (((bitField0_ & 0x00040000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(18, condition_); + } + if (((bitField0_ & 0x00080000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(19, availability_); + } + if (((bitField0_ & 0x00100000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(20, shippingLabel_); + } + { + int dataSize = 0; + for (int i = 0; i < gtin_.size(); i++) { + dataSize += computeStringSizeNoTag(gtin_.getRaw(i)); + } + size += dataSize; + size += 2 * getGtinList().size(); + } + if (((bitField0_ & 0x00200000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(22, itemGroupId_); + } + if (((bitField0_ & 0x00400000) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(23, thumbnailLink_); + } + if (((bitField0_ & 0x00800000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(24, getCreationTime()); + } + if (((bitField0_ & 0x01000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(25, getExpirationDate()); + } + if (((bitField0_ & 0x02000000) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeEnumSize( + 26, aggregatedReportingContextStatus_); + } + for (int i = 0; i < itemIssues_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(27, itemIssues_.get(i)); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(28, channel_); + } + if (clickPotential_ + != com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential + .CLICK_POTENTIAL_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(29, clickPotential_); + } + if (((bitField0_ & 0x04000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(30, clickPotentialRank_); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.ProductView)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.ProductView other = + (com.google.shopping.merchant.reports.v1alpha.ProductView) obj; + + if (hasId() != other.hasId()) return false; + if (hasId()) { + if (!getId().equals(other.getId())) return false; + } + if (hasChannel() != other.hasChannel()) return false; + if (hasChannel()) { + if (channel_ != other.channel_) return false; + } + if (hasLanguageCode() != other.hasLanguageCode()) return false; + if (hasLanguageCode()) { + if (!getLanguageCode().equals(other.getLanguageCode())) return false; + } + if (hasFeedLabel() != other.hasFeedLabel()) return false; + if (hasFeedLabel()) { + if (!getFeedLabel().equals(other.getFeedLabel())) return false; + } + if (hasOfferId() != other.hasOfferId()) return false; + if (hasOfferId()) { + if (!getOfferId().equals(other.getOfferId())) return false; + } + if (hasTitle() != other.hasTitle()) return false; + if (hasTitle()) { + if (!getTitle().equals(other.getTitle())) return false; + } + if (hasBrand() != other.hasBrand()) return false; + if (hasBrand()) { + if (!getBrand().equals(other.getBrand())) return false; + } + if (hasCategoryL1() != other.hasCategoryL1()) return false; + if (hasCategoryL1()) { + if (!getCategoryL1().equals(other.getCategoryL1())) return false; + } + if (hasCategoryL2() != other.hasCategoryL2()) return false; + if (hasCategoryL2()) { + if (!getCategoryL2().equals(other.getCategoryL2())) return false; + } + if (hasCategoryL3() != other.hasCategoryL3()) return false; + if (hasCategoryL3()) { + if (!getCategoryL3().equals(other.getCategoryL3())) return false; + } + if (hasCategoryL4() != other.hasCategoryL4()) return false; + if (hasCategoryL4()) { + if (!getCategoryL4().equals(other.getCategoryL4())) return false; + } + if (hasCategoryL5() != other.hasCategoryL5()) return false; + if (hasCategoryL5()) { + if (!getCategoryL5().equals(other.getCategoryL5())) return false; + } + if (hasProductTypeL1() != other.hasProductTypeL1()) return false; + if (hasProductTypeL1()) { + if (!getProductTypeL1().equals(other.getProductTypeL1())) return false; + } + if (hasProductTypeL2() != other.hasProductTypeL2()) return false; + if (hasProductTypeL2()) { + if (!getProductTypeL2().equals(other.getProductTypeL2())) return false; + } + if (hasProductTypeL3() != other.hasProductTypeL3()) return false; + if (hasProductTypeL3()) { + if (!getProductTypeL3().equals(other.getProductTypeL3())) return false; + } + if (hasProductTypeL4() != other.hasProductTypeL4()) return false; + if (hasProductTypeL4()) { + if (!getProductTypeL4().equals(other.getProductTypeL4())) return false; + } + if (hasProductTypeL5() != other.hasProductTypeL5()) return false; + if (hasProductTypeL5()) { + if (!getProductTypeL5().equals(other.getProductTypeL5())) return false; + } + if (hasPrice() != other.hasPrice()) return false; + if (hasPrice()) { + if (!getPrice().equals(other.getPrice())) return false; + } + if (hasCondition() != other.hasCondition()) return false; + if (hasCondition()) { + if (!getCondition().equals(other.getCondition())) return false; + } + if (hasAvailability() != other.hasAvailability()) return false; + if (hasAvailability()) { + if (!getAvailability().equals(other.getAvailability())) return false; + } + if (hasShippingLabel() != other.hasShippingLabel()) return false; + if (hasShippingLabel()) { + if (!getShippingLabel().equals(other.getShippingLabel())) return false; + } + if (!getGtinList().equals(other.getGtinList())) return false; + if (hasItemGroupId() != other.hasItemGroupId()) return false; + if (hasItemGroupId()) { + if (!getItemGroupId().equals(other.getItemGroupId())) return false; + } + if (hasThumbnailLink() != other.hasThumbnailLink()) return false; + if (hasThumbnailLink()) { + if (!getThumbnailLink().equals(other.getThumbnailLink())) return false; + } + if (hasCreationTime() != other.hasCreationTime()) return false; + if (hasCreationTime()) { + if (!getCreationTime().equals(other.getCreationTime())) return false; + } + if (hasExpirationDate() != other.hasExpirationDate()) return false; + if (hasExpirationDate()) { + if (!getExpirationDate().equals(other.getExpirationDate())) return false; + } + if (hasAggregatedReportingContextStatus() != other.hasAggregatedReportingContextStatus()) + return false; + if (hasAggregatedReportingContextStatus()) { + if (aggregatedReportingContextStatus_ != other.aggregatedReportingContextStatus_) + return false; + } + if (!getItemIssuesList().equals(other.getItemIssuesList())) return false; + if (clickPotential_ != other.clickPotential_) return false; + if (hasClickPotentialRank() != other.hasClickPotentialRank()) return false; + if (hasClickPotentialRank()) { + if (getClickPotentialRank() != other.getClickPotentialRank()) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasId()) { + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId().hashCode(); + } + if (hasChannel()) { + hash = (37 * hash) + CHANNEL_FIELD_NUMBER; + hash = (53 * hash) + channel_; + } + if (hasLanguageCode()) { + hash = (37 * hash) + LANGUAGE_CODE_FIELD_NUMBER; + hash = (53 * hash) + getLanguageCode().hashCode(); + } + if (hasFeedLabel()) { + hash = (37 * hash) + FEED_LABEL_FIELD_NUMBER; + hash = (53 * hash) + getFeedLabel().hashCode(); + } + if (hasOfferId()) { + hash = (37 * hash) + OFFER_ID_FIELD_NUMBER; + hash = (53 * hash) + getOfferId().hashCode(); + } + if (hasTitle()) { + hash = (37 * hash) + TITLE_FIELD_NUMBER; + hash = (53 * hash) + getTitle().hashCode(); + } + if (hasBrand()) { + hash = (37 * hash) + BRAND_FIELD_NUMBER; + hash = (53 * hash) + getBrand().hashCode(); + } + if (hasCategoryL1()) { + hash = (37 * hash) + CATEGORY_L1_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL1().hashCode(); + } + if (hasCategoryL2()) { + hash = (37 * hash) + CATEGORY_L2_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL2().hashCode(); + } + if (hasCategoryL3()) { + hash = (37 * hash) + CATEGORY_L3_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL3().hashCode(); + } + if (hasCategoryL4()) { + hash = (37 * hash) + CATEGORY_L4_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL4().hashCode(); + } + if (hasCategoryL5()) { + hash = (37 * hash) + CATEGORY_L5_FIELD_NUMBER; + hash = (53 * hash) + getCategoryL5().hashCode(); + } + if (hasProductTypeL1()) { + hash = (37 * hash) + PRODUCT_TYPE_L1_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL1().hashCode(); + } + if (hasProductTypeL2()) { + hash = (37 * hash) + PRODUCT_TYPE_L2_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL2().hashCode(); + } + if (hasProductTypeL3()) { + hash = (37 * hash) + PRODUCT_TYPE_L3_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL3().hashCode(); + } + if (hasProductTypeL4()) { + hash = (37 * hash) + PRODUCT_TYPE_L4_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL4().hashCode(); + } + if (hasProductTypeL5()) { + hash = (37 * hash) + PRODUCT_TYPE_L5_FIELD_NUMBER; + hash = (53 * hash) + getProductTypeL5().hashCode(); + } + if (hasPrice()) { + hash = (37 * hash) + PRICE_FIELD_NUMBER; + hash = (53 * hash) + getPrice().hashCode(); + } + if (hasCondition()) { + hash = (37 * hash) + CONDITION_FIELD_NUMBER; + hash = (53 * hash) + getCondition().hashCode(); + } + if (hasAvailability()) { + hash = (37 * hash) + AVAILABILITY_FIELD_NUMBER; + hash = (53 * hash) + getAvailability().hashCode(); + } + if (hasShippingLabel()) { + hash = (37 * hash) + SHIPPING_LABEL_FIELD_NUMBER; + hash = (53 * hash) + getShippingLabel().hashCode(); + } + if (getGtinCount() > 0) { + hash = (37 * hash) + GTIN_FIELD_NUMBER; + hash = (53 * hash) + getGtinList().hashCode(); + } + if (hasItemGroupId()) { + hash = (37 * hash) + ITEM_GROUP_ID_FIELD_NUMBER; + hash = (53 * hash) + getItemGroupId().hashCode(); + } + if (hasThumbnailLink()) { + hash = (37 * hash) + THUMBNAIL_LINK_FIELD_NUMBER; + hash = (53 * hash) + getThumbnailLink().hashCode(); + } + if (hasCreationTime()) { + hash = (37 * hash) + CREATION_TIME_FIELD_NUMBER; + hash = (53 * hash) + getCreationTime().hashCode(); + } + if (hasExpirationDate()) { + hash = (37 * hash) + EXPIRATION_DATE_FIELD_NUMBER; + hash = (53 * hash) + getExpirationDate().hashCode(); + } + if (hasAggregatedReportingContextStatus()) { + hash = (37 * hash) + AGGREGATED_REPORTING_CONTEXT_STATUS_FIELD_NUMBER; + hash = (53 * hash) + aggregatedReportingContextStatus_; + } + if (getItemIssuesCount() > 0) { + hash = (37 * hash) + ITEM_ISSUES_FIELD_NUMBER; + hash = (53 * hash) + getItemIssuesList().hashCode(); + } + hash = (37 * hash) + CLICK_POTENTIAL_FIELD_NUMBER; + hash = (53 * hash) + clickPotential_; + if (hasClickPotentialRank()) { + hash = (37 * hash) + CLICK_POTENTIAL_RANK_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getClickPotentialRank()); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView 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.shopping.merchant.reports.v1alpha.ProductView parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView 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.shopping.merchant.reports.v1alpha.ProductView parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView 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.shopping.merchant.reports.v1alpha.ProductView parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView 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.shopping.merchant.reports.v1alpha.ProductView 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; + } + + /** + * + * + *
+   * Fields available for query in `product_view` table.
+   *
+   * Products in the current inventory. Products in this table are the same as in
+   * Products sub-API but not all product attributes from Products sub-API are
+   * available for query in this table. In contrast to Products sub-API, this
+   * table allows to filter the returned list of products by product attributes.
+   * To retrieve a single product by `id` or list all products, Products sub-API
+   * should be used.
+   *
+   * Values are only set for fields requested explicitly in the request's search
+   * query.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ProductView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.ProductView) + com.google.shopping.merchant.reports.v1alpha.ProductViewOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductView.class, + com.google.shopping.merchant.reports.v1alpha.ProductView.Builder.class); + } + + // Construct using com.google.shopping.merchant.reports.v1alpha.ProductView.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getPriceFieldBuilder(); + getCreationTimeFieldBuilder(); + getExpirationDateFieldBuilder(); + getItemIssuesFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + id_ = ""; + channel_ = 0; + languageCode_ = ""; + feedLabel_ = ""; + offerId_ = ""; + title_ = ""; + brand_ = ""; + categoryL1_ = ""; + categoryL2_ = ""; + categoryL3_ = ""; + categoryL4_ = ""; + categoryL5_ = ""; + productTypeL1_ = ""; + productTypeL2_ = ""; + productTypeL3_ = ""; + productTypeL4_ = ""; + productTypeL5_ = ""; + price_ = null; + if (priceBuilder_ != null) { + priceBuilder_.dispose(); + priceBuilder_ = null; + } + condition_ = ""; + availability_ = ""; + shippingLabel_ = ""; + gtin_ = com.google.protobuf.LazyStringArrayList.emptyList(); + itemGroupId_ = ""; + thumbnailLink_ = ""; + creationTime_ = null; + if (creationTimeBuilder_ != null) { + creationTimeBuilder_.dispose(); + creationTimeBuilder_ = null; + } + expirationDate_ = null; + if (expirationDateBuilder_ != null) { + expirationDateBuilder_.dispose(); + expirationDateBuilder_ = null; + } + aggregatedReportingContextStatus_ = 0; + if (itemIssuesBuilder_ == null) { + itemIssues_ = java.util.Collections.emptyList(); + } else { + itemIssues_ = null; + itemIssuesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x08000000); + clickPotential_ = 0; + clickPotentialRank_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.ProductView.getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView build() { + com.google.shopping.merchant.reports.v1alpha.ProductView result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView buildPartial() { + com.google.shopping.merchant.reports.v1alpha.ProductView result = + new com.google.shopping.merchant.reports.v1alpha.ProductView(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields( + com.google.shopping.merchant.reports.v1alpha.ProductView result) { + if (itemIssuesBuilder_ == null) { + if (((bitField0_ & 0x08000000) != 0)) { + itemIssues_ = java.util.Collections.unmodifiableList(itemIssues_); + bitField0_ = (bitField0_ & ~0x08000000); + } + result.itemIssues_ = itemIssues_; + } else { + result.itemIssues_ = itemIssuesBuilder_.build(); + } + } + + private void buildPartial0(com.google.shopping.merchant.reports.v1alpha.ProductView result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.id_ = id_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.channel_ = channel_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.languageCode_ = languageCode_; + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.feedLabel_ = feedLabel_; + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.offerId_ = offerId_; + to_bitField0_ |= 0x00000010; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.title_ = title_; + to_bitField0_ |= 0x00000020; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.brand_ = brand_; + to_bitField0_ |= 0x00000040; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.categoryL1_ = categoryL1_; + to_bitField0_ |= 0x00000080; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.categoryL2_ = categoryL2_; + to_bitField0_ |= 0x00000100; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.categoryL3_ = categoryL3_; + to_bitField0_ |= 0x00000200; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.categoryL4_ = categoryL4_; + to_bitField0_ |= 0x00000400; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.categoryL5_ = categoryL5_; + to_bitField0_ |= 0x00000800; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.productTypeL1_ = productTypeL1_; + to_bitField0_ |= 0x00001000; + } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.productTypeL2_ = productTypeL2_; + to_bitField0_ |= 0x00002000; + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.productTypeL3_ = productTypeL3_; + to_bitField0_ |= 0x00004000; + } + if (((from_bitField0_ & 0x00008000) != 0)) { + result.productTypeL4_ = productTypeL4_; + to_bitField0_ |= 0x00008000; + } + if (((from_bitField0_ & 0x00010000) != 0)) { + result.productTypeL5_ = productTypeL5_; + to_bitField0_ |= 0x00010000; + } + if (((from_bitField0_ & 0x00020000) != 0)) { + result.price_ = priceBuilder_ == null ? price_ : priceBuilder_.build(); + to_bitField0_ |= 0x00020000; + } + if (((from_bitField0_ & 0x00040000) != 0)) { + result.condition_ = condition_; + to_bitField0_ |= 0x00040000; + } + if (((from_bitField0_ & 0x00080000) != 0)) { + result.availability_ = availability_; + to_bitField0_ |= 0x00080000; + } + if (((from_bitField0_ & 0x00100000) != 0)) { + result.shippingLabel_ = shippingLabel_; + to_bitField0_ |= 0x00100000; + } + if (((from_bitField0_ & 0x00200000) != 0)) { + gtin_.makeImmutable(); + result.gtin_ = gtin_; + } + if (((from_bitField0_ & 0x00400000) != 0)) { + result.itemGroupId_ = itemGroupId_; + to_bitField0_ |= 0x00200000; + } + if (((from_bitField0_ & 0x00800000) != 0)) { + result.thumbnailLink_ = thumbnailLink_; + to_bitField0_ |= 0x00400000; + } + if (((from_bitField0_ & 0x01000000) != 0)) { + result.creationTime_ = + creationTimeBuilder_ == null ? creationTime_ : creationTimeBuilder_.build(); + to_bitField0_ |= 0x00800000; + } + if (((from_bitField0_ & 0x02000000) != 0)) { + result.expirationDate_ = + expirationDateBuilder_ == null ? expirationDate_ : expirationDateBuilder_.build(); + to_bitField0_ |= 0x01000000; + } + if (((from_bitField0_ & 0x04000000) != 0)) { + result.aggregatedReportingContextStatus_ = aggregatedReportingContextStatus_; + to_bitField0_ |= 0x02000000; + } + if (((from_bitField0_ & 0x10000000) != 0)) { + result.clickPotential_ = clickPotential_; + } + if (((from_bitField0_ & 0x20000000) != 0)) { + result.clickPotentialRank_ = clickPotentialRank_; + to_bitField0_ |= 0x04000000; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.ProductView) { + return mergeFrom((com.google.shopping.merchant.reports.v1alpha.ProductView) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.shopping.merchant.reports.v1alpha.ProductView other) { + if (other == com.google.shopping.merchant.reports.v1alpha.ProductView.getDefaultInstance()) + return this; + if (other.hasId()) { + id_ = other.id_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasChannel()) { + setChannel(other.getChannel()); + } + if (other.hasLanguageCode()) { + languageCode_ = other.languageCode_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.hasFeedLabel()) { + feedLabel_ = other.feedLabel_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (other.hasOfferId()) { + offerId_ = other.offerId_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (other.hasTitle()) { + title_ = other.title_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (other.hasBrand()) { + brand_ = other.brand_; + bitField0_ |= 0x00000040; + onChanged(); + } + if (other.hasCategoryL1()) { + categoryL1_ = other.categoryL1_; + bitField0_ |= 0x00000080; + onChanged(); + } + if (other.hasCategoryL2()) { + categoryL2_ = other.categoryL2_; + bitField0_ |= 0x00000100; + onChanged(); + } + if (other.hasCategoryL3()) { + categoryL3_ = other.categoryL3_; + bitField0_ |= 0x00000200; + onChanged(); + } + if (other.hasCategoryL4()) { + categoryL4_ = other.categoryL4_; + bitField0_ |= 0x00000400; + onChanged(); + } + if (other.hasCategoryL5()) { + categoryL5_ = other.categoryL5_; + bitField0_ |= 0x00000800; + onChanged(); + } + if (other.hasProductTypeL1()) { + productTypeL1_ = other.productTypeL1_; + bitField0_ |= 0x00001000; + onChanged(); + } + if (other.hasProductTypeL2()) { + productTypeL2_ = other.productTypeL2_; + bitField0_ |= 0x00002000; + onChanged(); + } + if (other.hasProductTypeL3()) { + productTypeL3_ = other.productTypeL3_; + bitField0_ |= 0x00004000; + onChanged(); + } + if (other.hasProductTypeL4()) { + productTypeL4_ = other.productTypeL4_; + bitField0_ |= 0x00008000; + onChanged(); + } + if (other.hasProductTypeL5()) { + productTypeL5_ = other.productTypeL5_; + bitField0_ |= 0x00010000; + onChanged(); + } + if (other.hasPrice()) { + mergePrice(other.getPrice()); + } + if (other.hasCondition()) { + condition_ = other.condition_; + bitField0_ |= 0x00040000; + onChanged(); + } + if (other.hasAvailability()) { + availability_ = other.availability_; + bitField0_ |= 0x00080000; + onChanged(); + } + if (other.hasShippingLabel()) { + shippingLabel_ = other.shippingLabel_; + bitField0_ |= 0x00100000; + onChanged(); + } + if (!other.gtin_.isEmpty()) { + if (gtin_.isEmpty()) { + gtin_ = other.gtin_; + bitField0_ |= 0x00200000; + } else { + ensureGtinIsMutable(); + gtin_.addAll(other.gtin_); + } + onChanged(); + } + if (other.hasItemGroupId()) { + itemGroupId_ = other.itemGroupId_; + bitField0_ |= 0x00400000; + onChanged(); + } + if (other.hasThumbnailLink()) { + thumbnailLink_ = other.thumbnailLink_; + bitField0_ |= 0x00800000; + onChanged(); + } + if (other.hasCreationTime()) { + mergeCreationTime(other.getCreationTime()); + } + if (other.hasExpirationDate()) { + mergeExpirationDate(other.getExpirationDate()); + } + if (other.hasAggregatedReportingContextStatus()) { + setAggregatedReportingContextStatus(other.getAggregatedReportingContextStatus()); + } + if (itemIssuesBuilder_ == null) { + if (!other.itemIssues_.isEmpty()) { + if (itemIssues_.isEmpty()) { + itemIssues_ = other.itemIssues_; + bitField0_ = (bitField0_ & ~0x08000000); + } else { + ensureItemIssuesIsMutable(); + itemIssues_.addAll(other.itemIssues_); + } + onChanged(); + } + } else { + if (!other.itemIssues_.isEmpty()) { + if (itemIssuesBuilder_.isEmpty()) { + itemIssuesBuilder_.dispose(); + itemIssuesBuilder_ = null; + itemIssues_ = other.itemIssues_; + bitField0_ = (bitField0_ & ~0x08000000); + itemIssuesBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getItemIssuesFieldBuilder() + : null; + } else { + itemIssuesBuilder_.addAllMessages(other.itemIssues_); + } + } + } + if (other.clickPotential_ != 0) { + setClickPotentialValue(other.getClickPotentialValue()); + } + if (other.hasClickPotentialRank()) { + setClickPotentialRank(other.getClickPotentialRank()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + id_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + languageCode_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 18 + case 26: + { + feedLabel_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 26 + case 34: + { + offerId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 34 + case 42: + { + title_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 42 + case 50: + { + brand_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 50 + case 58: + { + categoryL1_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000080; + break; + } // case 58 + case 66: + { + categoryL2_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000100; + break; + } // case 66 + case 74: + { + categoryL3_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000200; + break; + } // case 74 + case 82: + { + categoryL4_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000400; + break; + } // case 82 + case 90: + { + categoryL5_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000800; + break; + } // case 90 + case 98: + { + productTypeL1_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00001000; + break; + } // case 98 + case 106: + { + productTypeL2_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00002000; + break; + } // case 106 + case 114: + { + productTypeL3_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00004000; + break; + } // case 114 + case 122: + { + productTypeL4_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00008000; + break; + } // case 122 + case 130: + { + productTypeL5_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00010000; + break; + } // case 130 + case 138: + { + input.readMessage(getPriceFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00020000; + break; + } // case 138 + case 146: + { + condition_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00040000; + break; + } // case 146 + case 154: + { + availability_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00080000; + break; + } // case 154 + case 162: + { + shippingLabel_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00100000; + break; + } // case 162 + case 170: + { + java.lang.String s = input.readStringRequireUtf8(); + ensureGtinIsMutable(); + gtin_.add(s); + break; + } // case 170 + case 178: + { + itemGroupId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00400000; + break; + } // case 178 + case 186: + { + thumbnailLink_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00800000; + break; + } // case 186 + case 194: + { + input.readMessage(getCreationTimeFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x01000000; + break; + } // case 194 + case 202: + { + input.readMessage(getExpirationDateFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x02000000; + break; + } // case 202 + case 208: + { + aggregatedReportingContextStatus_ = input.readEnum(); + bitField0_ |= 0x04000000; + break; + } // case 208 + case 218: + { + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue m = + input.readMessage( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.parser(), + extensionRegistry); + if (itemIssuesBuilder_ == null) { + ensureItemIssuesIsMutable(); + itemIssues_.add(m); + } else { + itemIssuesBuilder_.addMessage(m); + } + break; + } // case 218 + case 224: + { + channel_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } // case 224 + case 232: + { + clickPotential_ = input.readEnum(); + bitField0_ |= 0x10000000; + break; + } // case 232 + case 240: + { + clickPotentialRank_ = input.readInt64(); + bitField0_ |= 0x20000000; + break; + } // case 240 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.lang.Object id_ = ""; + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate
+     * on products take this as their `name` parameter.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 1; + * + * @return Whether the id field is set. + */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate
+     * on products take this as their `name` parameter.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 1; + * + * @return The id. + */ + public java.lang.String getId() { + java.lang.Object ref = id_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate
+     * on products take this as their `name` parameter.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 1; + * + * @return The bytes for id. + */ + public com.google.protobuf.ByteString getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate
+     * on products take this as their `name` parameter.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 1; + * + * @param value The id to set. + * @return This builder for chaining. + */ + public Builder setId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate
+     * on products take this as their `name` parameter.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 1; + * + * @return This builder for chaining. + */ + public Builder clearId() { + id_ = getDefaultInstance().getId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * REST ID of the product, in the form of
+     * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate
+     * on products take this as their `name` parameter.
+     *
+     * Required in the `SELECT` clause.
+     * 
+ * + * optional string id = 1; + * + * @param value The bytes for id to set. + * @return This builder for chaining. + */ + public Builder setIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private int channel_ = 0; + + /** + * + * + *
+     * Channel of the product. Can be `ONLINE` or `LOCAL`.
+     * 
+ * + * optional .google.shopping.type.Channel.ChannelEnum channel = 28; + * + * @return Whether the channel field is set. + */ + @java.lang.Override + public boolean hasChannel() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Channel of the product. Can be `ONLINE` or `LOCAL`.
+     * 
+ * + * optional .google.shopping.type.Channel.ChannelEnum channel = 28; + * + * @return The enum numeric value on the wire for channel. + */ + @java.lang.Override + public int getChannelValue() { + return channel_; + } + + /** + * + * + *
+     * Channel of the product. Can be `ONLINE` or `LOCAL`.
+     * 
+ * + * optional .google.shopping.type.Channel.ChannelEnum channel = 28; + * + * @param value The enum numeric value on the wire for channel to set. + * @return This builder for chaining. + */ + public Builder setChannelValue(int value) { + channel_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Channel of the product. Can be `ONLINE` or `LOCAL`.
+     * 
+ * + * optional .google.shopping.type.Channel.ChannelEnum channel = 28; + * + * @return The channel. + */ + @java.lang.Override + public com.google.shopping.type.Channel.ChannelEnum getChannel() { + com.google.shopping.type.Channel.ChannelEnum result = + com.google.shopping.type.Channel.ChannelEnum.forNumber(channel_); + return result == null ? com.google.shopping.type.Channel.ChannelEnum.UNRECOGNIZED : result; + } + + /** + * + * + *
+     * Channel of the product. Can be `ONLINE` or `LOCAL`.
+     * 
+ * + * optional .google.shopping.type.Channel.ChannelEnum channel = 28; + * + * @param value The channel to set. + * @return This builder for chaining. + */ + public Builder setChannel(com.google.shopping.type.Channel.ChannelEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + channel_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Channel of the product. Can be `ONLINE` or `LOCAL`.
+     * 
+ * + * optional .google.shopping.type.Channel.ChannelEnum channel = 28; + * + * @return This builder for chaining. + */ + public Builder clearChannel() { + bitField0_ = (bitField0_ & ~0x00000002); + channel_ = 0; + onChanged(); + return this; + } + + private java.lang.Object languageCode_ = ""; + + /** + * + * + *
+     * Language code of the product in BCP 47 format.
+     * 
+ * + * optional string language_code = 2; + * + * @return Whether the languageCode field is set. + */ + public boolean hasLanguageCode() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * Language code of the product in BCP 47 format.
+     * 
+ * + * optional string language_code = 2; + * + * @return The languageCode. + */ + public java.lang.String getLanguageCode() { + java.lang.Object ref = languageCode_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + languageCode_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Language code of the product in BCP 47 format.
+     * 
+ * + * optional string language_code = 2; + * + * @return The bytes for languageCode. + */ + public com.google.protobuf.ByteString getLanguageCodeBytes() { + java.lang.Object ref = languageCode_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + languageCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Language code of the product in BCP 47 format.
+     * 
+ * + * optional string language_code = 2; + * + * @param value The languageCode to set. + * @return This builder for chaining. + */ + public Builder setLanguageCode(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + languageCode_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Language code of the product in BCP 47 format.
+     * 
+ * + * optional string language_code = 2; + * + * @return This builder for chaining. + */ + public Builder clearLanguageCode() { + languageCode_ = getDefaultInstance().getLanguageCode(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * Language code of the product in BCP 47 format.
+     * 
+ * + * optional string language_code = 2; + * + * @param value The bytes for languageCode to set. + * @return This builder for chaining. + */ + public Builder setLanguageCodeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + languageCode_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object feedLabel_ = ""; + + /** + * + * + *
+     * Feed label of the product.
+     * 
+ * + * optional string feed_label = 3; + * + * @return Whether the feedLabel field is set. + */ + public boolean hasFeedLabel() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Feed label of the product.
+     * 
+ * + * optional string feed_label = 3; + * + * @return The feedLabel. + */ + public java.lang.String getFeedLabel() { + java.lang.Object ref = feedLabel_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + feedLabel_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Feed label of the product.
+     * 
+ * + * optional string feed_label = 3; + * + * @return The bytes for feedLabel. + */ + public com.google.protobuf.ByteString getFeedLabelBytes() { + java.lang.Object ref = feedLabel_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + feedLabel_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Feed label of the product.
+     * 
+ * + * optional string feed_label = 3; + * + * @param value The feedLabel to set. + * @return This builder for chaining. + */ + public Builder setFeedLabel(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + feedLabel_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Feed label of the product.
+     * 
+ * + * optional string feed_label = 3; + * + * @return This builder for chaining. + */ + public Builder clearFeedLabel() { + feedLabel_ = getDefaultInstance().getFeedLabel(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+     * Feed label of the product.
+     * 
+ * + * optional string feed_label = 3; + * + * @param value The bytes for feedLabel to set. + * @return This builder for chaining. + */ + public Builder setFeedLabelBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + feedLabel_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private java.lang.Object offerId_ = ""; + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 4; + * + * @return Whether the offerId field is set. + */ + public boolean hasOfferId() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 4; + * + * @return The offerId. + */ + public java.lang.String getOfferId() { + java.lang.Object ref = offerId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + offerId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 4; + * + * @return The bytes for offerId. + */ + public com.google.protobuf.ByteString getOfferIdBytes() { + java.lang.Object ref = offerId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + offerId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 4; + * + * @param value The offerId to set. + * @return This builder for chaining. + */ + public Builder setOfferId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + offerId_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 4; + * + * @return This builder for chaining. + */ + public Builder clearOfferId() { + offerId_ = getDefaultInstance().getOfferId(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + + /** + * + * + *
+     * Merchant-provided id of the product.
+     * 
+ * + * optional string offer_id = 4; + * + * @param value The bytes for offerId to set. + * @return This builder for chaining. + */ + public Builder setOfferIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + offerId_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private java.lang.Object title_ = ""; + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 5; + * + * @return Whether the title field is set. + */ + public boolean hasTitle() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 5; + * + * @return The title. + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 5; + * + * @return The bytes for title. + */ + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 5; + * + * @param value The title to set. + * @return This builder for chaining. + */ + public Builder setTitle(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + title_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 5; + * + * @return This builder for chaining. + */ + public Builder clearTitle() { + title_ = getDefaultInstance().getTitle(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + + /** + * + * + *
+     * Title of the product.
+     * 
+ * + * optional string title = 5; + * + * @param value The bytes for title to set. + * @return This builder for chaining. + */ + public Builder setTitleBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + title_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private java.lang.Object brand_ = ""; + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 6; + * + * @return Whether the brand field is set. + */ + public boolean hasBrand() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 6; + * + * @return The brand. + */ + public java.lang.String getBrand() { + java.lang.Object ref = brand_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + brand_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 6; + * + * @return The bytes for brand. + */ + public com.google.protobuf.ByteString getBrandBytes() { + java.lang.Object ref = brand_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + brand_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 6; + * + * @param value The brand to set. + * @return This builder for chaining. + */ + public Builder setBrand(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + brand_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 6; + * + * @return This builder for chaining. + */ + public Builder clearBrand() { + brand_ = getDefaultInstance().getBrand(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + + /** + * + * + *
+     * Brand of the product.
+     * 
+ * + * optional string brand = 6; + * + * @param value The bytes for brand to set. + * @return This builder for chaining. + */ + public Builder setBrandBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + brand_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + private java.lang.Object categoryL1_ = ""; + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 7; + * + * @return Whether the categoryL1 field is set. + */ + public boolean hasCategoryL1() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 7; + * + * @return The categoryL1. + */ + public java.lang.String getCategoryL1() { + java.lang.Object ref = categoryL1_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL1_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 7; + * + * @return The bytes for categoryL1. + */ + public com.google.protobuf.ByteString getCategoryL1Bytes() { + java.lang.Object ref = categoryL1_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 7; + * + * @param value The categoryL1 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL1(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL1_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 7; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL1() { + categoryL1_ = getDefaultInstance().getCategoryL1(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (1st level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l1 = 7; + * + * @param value The bytes for categoryL1 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL1Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL1_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + private java.lang.Object categoryL2_ = ""; + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 8; + * + * @return Whether the categoryL2 field is set. + */ + public boolean hasCategoryL2() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 8; + * + * @return The categoryL2. + */ + public java.lang.String getCategoryL2() { + java.lang.Object ref = categoryL2_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL2_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 8; + * + * @return The bytes for categoryL2. + */ + public com.google.protobuf.ByteString getCategoryL2Bytes() { + java.lang.Object ref = categoryL2_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 8; + * + * @param value The categoryL2 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL2(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL2_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 8; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL2() { + categoryL2_ = getDefaultInstance().getCategoryL2(); + bitField0_ = (bitField0_ & ~0x00000100); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (2nd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l2 = 8; + * + * @param value The bytes for categoryL2 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL2Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL2_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + private java.lang.Object categoryL3_ = ""; + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 9; + * + * @return Whether the categoryL3 field is set. + */ + public boolean hasCategoryL3() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 9; + * + * @return The categoryL3. + */ + public java.lang.String getCategoryL3() { + java.lang.Object ref = categoryL3_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL3_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 9; + * + * @return The bytes for categoryL3. + */ + public com.google.protobuf.ByteString getCategoryL3Bytes() { + java.lang.Object ref = categoryL3_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 9; + * + * @param value The categoryL3 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL3(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL3_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 9; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL3() { + categoryL3_ = getDefaultInstance().getCategoryL3(); + bitField0_ = (bitField0_ & ~0x00000200); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (3rd level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l3 = 9; + * + * @param value The bytes for categoryL3 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL3Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL3_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + private java.lang.Object categoryL4_ = ""; + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 10; + * + * @return Whether the categoryL4 field is set. + */ + public boolean hasCategoryL4() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 10; + * + * @return The categoryL4. + */ + public java.lang.String getCategoryL4() { + java.lang.Object ref = categoryL4_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL4_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 10; + * + * @return The bytes for categoryL4. + */ + public com.google.protobuf.ByteString getCategoryL4Bytes() { + java.lang.Object ref = categoryL4_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 10; + * + * @param value The categoryL4 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL4(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL4_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 10; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL4() { + categoryL4_ = getDefaultInstance().getCategoryL4(); + bitField0_ = (bitField0_ & ~0x00000400); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (4th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l4 = 10; + * + * @param value The bytes for categoryL4 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL4Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL4_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + private java.lang.Object categoryL5_ = ""; + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 11; + * + * @return Whether the categoryL5 field is set. + */ + public boolean hasCategoryL5() { + return ((bitField0_ & 0x00000800) != 0); + } + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 11; + * + * @return The categoryL5. + */ + public java.lang.String getCategoryL5() { + java.lang.Object ref = categoryL5_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + categoryL5_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 11; + * + * @return The bytes for categoryL5. + */ + public com.google.protobuf.ByteString getCategoryL5Bytes() { + java.lang.Object ref = categoryL5_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + categoryL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 11; + * + * @param value The categoryL5 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL5(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + categoryL5_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 11; + * + * @return This builder for chaining. + */ + public Builder clearCategoryL5() { + categoryL5_ = getDefaultInstance().getCategoryL5(); + bitField0_ = (bitField0_ & ~0x00000800); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product category (5th level) in [Google's product
+     * taxonomy](https://support.google.com/merchants/answer/6324436).
+     * 
+ * + * optional string category_l5 = 11; + * + * @param value The bytes for categoryL5 to set. + * @return This builder for chaining. + */ + public Builder setCategoryL5Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + categoryL5_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + private java.lang.Object productTypeL1_ = ""; + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 12; + * + * @return Whether the productTypeL1 field is set. + */ + public boolean hasProductTypeL1() { + return ((bitField0_ & 0x00001000) != 0); + } + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 12; + * + * @return The productTypeL1. + */ + public java.lang.String getProductTypeL1() { + java.lang.Object ref = productTypeL1_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL1_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 12; + * + * @return The bytes for productTypeL1. + */ + public com.google.protobuf.ByteString getProductTypeL1Bytes() { + java.lang.Object ref = productTypeL1_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 12; + * + * @param value The productTypeL1 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL1(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL1_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 12; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL1() { + productTypeL1_ = getDefaultInstance().getProductTypeL1(); + bitField0_ = (bitField0_ & ~0x00001000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (1st level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l1 = 12; + * + * @param value The bytes for productTypeL1 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL1Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL1_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + private java.lang.Object productTypeL2_ = ""; + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 13; + * + * @return Whether the productTypeL2 field is set. + */ + public boolean hasProductTypeL2() { + return ((bitField0_ & 0x00002000) != 0); + } + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 13; + * + * @return The productTypeL2. + */ + public java.lang.String getProductTypeL2() { + java.lang.Object ref = productTypeL2_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL2_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 13; + * + * @return The bytes for productTypeL2. + */ + public com.google.protobuf.ByteString getProductTypeL2Bytes() { + java.lang.Object ref = productTypeL2_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 13; + * + * @param value The productTypeL2 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL2(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL2_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 13; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL2() { + productTypeL2_ = getDefaultInstance().getProductTypeL2(); + bitField0_ = (bitField0_ & ~0x00002000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (2nd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l2 = 13; + * + * @param value The bytes for productTypeL2 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL2Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL2_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + + private java.lang.Object productTypeL3_ = ""; + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 14; + * + * @return Whether the productTypeL3 field is set. + */ + public boolean hasProductTypeL3() { + return ((bitField0_ & 0x00004000) != 0); + } + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 14; + * + * @return The productTypeL3. + */ + public java.lang.String getProductTypeL3() { + java.lang.Object ref = productTypeL3_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL3_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 14; + * + * @return The bytes for productTypeL3. + */ + public com.google.protobuf.ByteString getProductTypeL3Bytes() { + java.lang.Object ref = productTypeL3_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 14; + * + * @param value The productTypeL3 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL3(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL3_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 14; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL3() { + productTypeL3_ = getDefaultInstance().getProductTypeL3(); + bitField0_ = (bitField0_ & ~0x00004000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (3rd level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l3 = 14; + * + * @param value The bytes for productTypeL3 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL3Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL3_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + + private java.lang.Object productTypeL4_ = ""; + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 15; + * + * @return Whether the productTypeL4 field is set. + */ + public boolean hasProductTypeL4() { + return ((bitField0_ & 0x00008000) != 0); + } + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 15; + * + * @return The productTypeL4. + */ + public java.lang.String getProductTypeL4() { + java.lang.Object ref = productTypeL4_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL4_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 15; + * + * @return The bytes for productTypeL4. + */ + public com.google.protobuf.ByteString getProductTypeL4Bytes() { + java.lang.Object ref = productTypeL4_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL4_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 15; + * + * @param value The productTypeL4 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL4(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL4_ = value; + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 15; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL4() { + productTypeL4_ = getDefaultInstance().getProductTypeL4(); + bitField0_ = (bitField0_ & ~0x00008000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (4th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l4 = 15; + * + * @param value The bytes for productTypeL4 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL4Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL4_ = value; + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + + private java.lang.Object productTypeL5_ = ""; + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 16; + * + * @return Whether the productTypeL5 field is set. + */ + public boolean hasProductTypeL5() { + return ((bitField0_ & 0x00010000) != 0); + } + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 16; + * + * @return The productTypeL5. + */ + public java.lang.String getProductTypeL5() { + java.lang.Object ref = productTypeL5_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + productTypeL5_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 16; + * + * @return The bytes for productTypeL5. + */ + public com.google.protobuf.ByteString getProductTypeL5Bytes() { + java.lang.Object ref = productTypeL5_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + productTypeL5_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 16; + * + * @param value The productTypeL5 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL5(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + productTypeL5_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 16; + * + * @return This builder for chaining. + */ + public Builder clearProductTypeL5() { + productTypeL5_ = getDefaultInstance().getProductTypeL5(); + bitField0_ = (bitField0_ & ~0x00010000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Product type (5th level) in merchant's own [product
+     * taxonomy](https://support.google.com/merchants/answer/6324406).
+     * 
+ * + * optional string product_type_l5 = 16; + * + * @param value The bytes for productTypeL5 to set. + * @return This builder for chaining. + */ + public Builder setProductTypeL5Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + productTypeL5_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + + private com.google.shopping.type.Price price_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + priceBuilder_; + + /** + * + * + *
+     * Product price. Absent if the information about the price of the product is
+     * not available.
+     * 
+ * + * .google.shopping.type.Price price = 17; + * + * @return Whether the price field is set. + */ + public boolean hasPrice() { + return ((bitField0_ & 0x00020000) != 0); + } + + /** + * + * + *
+     * Product price. Absent if the information about the price of the product is
+     * not available.
+     * 
+ * + * .google.shopping.type.Price price = 17; + * + * @return The price. + */ + public com.google.shopping.type.Price getPrice() { + if (priceBuilder_ == null) { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } else { + return priceBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Product price. Absent if the information about the price of the product is
+     * not available.
+     * 
+ * + * .google.shopping.type.Price price = 17; + */ + public Builder setPrice(com.google.shopping.type.Price value) { + if (priceBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + price_ = value; + } else { + priceBuilder_.setMessage(value); + } + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product price. Absent if the information about the price of the product is
+     * not available.
+     * 
+ * + * .google.shopping.type.Price price = 17; + */ + public Builder setPrice(com.google.shopping.type.Price.Builder builderForValue) { + if (priceBuilder_ == null) { + price_ = builderForValue.build(); + } else { + priceBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Product price. Absent if the information about the price of the product is
+     * not available.
+     * 
+ * + * .google.shopping.type.Price price = 17; + */ + public Builder mergePrice(com.google.shopping.type.Price value) { + if (priceBuilder_ == null) { + if (((bitField0_ & 0x00020000) != 0) + && price_ != null + && price_ != com.google.shopping.type.Price.getDefaultInstance()) { + getPriceBuilder().mergeFrom(value); + } else { + price_ = value; + } + } else { + priceBuilder_.mergeFrom(value); + } + if (price_ != null) { + bitField0_ |= 0x00020000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Product price. Absent if the information about the price of the product is
+     * not available.
+     * 
+ * + * .google.shopping.type.Price price = 17; + */ + public Builder clearPrice() { + bitField0_ = (bitField0_ & ~0x00020000); + price_ = null; + if (priceBuilder_ != null) { + priceBuilder_.dispose(); + priceBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Product price. Absent if the information about the price of the product is
+     * not available.
+     * 
+ * + * .google.shopping.type.Price price = 17; + */ + public com.google.shopping.type.Price.Builder getPriceBuilder() { + bitField0_ |= 0x00020000; + onChanged(); + return getPriceFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Product price. Absent if the information about the price of the product is
+     * not available.
+     * 
+ * + * .google.shopping.type.Price price = 17; + */ + public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() { + if (priceBuilder_ != null) { + return priceBuilder_.getMessageOrBuilder(); + } else { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } + } + + /** + * + * + *
+     * Product price. Absent if the information about the price of the product is
+     * not available.
+     * 
+ * + * .google.shopping.type.Price price = 17; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + getPriceFieldBuilder() { + if (priceBuilder_ == null) { + priceBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getPrice(), getParentForChildren(), isClean()); + price_ = null; + } + return priceBuilder_; + } + + private java.lang.Object condition_ = ""; + + /** + * + * + *
+     * [Condition](https://support.google.com/merchants/answer/6324469) of the
+     * product.
+     * 
+ * + * optional string condition = 18; + * + * @return Whether the condition field is set. + */ + public boolean hasCondition() { + return ((bitField0_ & 0x00040000) != 0); + } + + /** + * + * + *
+     * [Condition](https://support.google.com/merchants/answer/6324469) of the
+     * product.
+     * 
+ * + * optional string condition = 18; + * + * @return The condition. + */ + public java.lang.String getCondition() { + java.lang.Object ref = condition_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + condition_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * [Condition](https://support.google.com/merchants/answer/6324469) of the
+     * product.
+     * 
+ * + * optional string condition = 18; + * + * @return The bytes for condition. + */ + public com.google.protobuf.ByteString getConditionBytes() { + java.lang.Object ref = condition_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + condition_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * [Condition](https://support.google.com/merchants/answer/6324469) of the
+     * product.
+     * 
+ * + * optional string condition = 18; + * + * @param value The condition to set. + * @return This builder for chaining. + */ + public Builder setCondition(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + condition_ = value; + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Condition](https://support.google.com/merchants/answer/6324469) of the
+     * product.
+     * 
+ * + * optional string condition = 18; + * + * @return This builder for chaining. + */ + public Builder clearCondition() { + condition_ = getDefaultInstance().getCondition(); + bitField0_ = (bitField0_ & ~0x00040000); + onChanged(); + return this; + } + + /** + * + * + *
+     * [Condition](https://support.google.com/merchants/answer/6324469) of the
+     * product.
+     * 
+ * + * optional string condition = 18; + * + * @param value The bytes for condition to set. + * @return This builder for chaining. + */ + public Builder setConditionBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + condition_ = value; + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + + private java.lang.Object availability_ = ""; + + /** + * + * + *
+     * [Availability](https://support.google.com/merchants/answer/6324448) of the
+     * product.
+     * 
+ * + * optional string availability = 19; + * + * @return Whether the availability field is set. + */ + public boolean hasAvailability() { + return ((bitField0_ & 0x00080000) != 0); + } + + /** + * + * + *
+     * [Availability](https://support.google.com/merchants/answer/6324448) of the
+     * product.
+     * 
+ * + * optional string availability = 19; + * + * @return The availability. + */ + public java.lang.String getAvailability() { + java.lang.Object ref = availability_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + availability_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * [Availability](https://support.google.com/merchants/answer/6324448) of the
+     * product.
+     * 
+ * + * optional string availability = 19; + * + * @return The bytes for availability. + */ + public com.google.protobuf.ByteString getAvailabilityBytes() { + java.lang.Object ref = availability_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + availability_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * [Availability](https://support.google.com/merchants/answer/6324448) of the
+     * product.
+     * 
+ * + * optional string availability = 19; + * + * @param value The availability to set. + * @return This builder for chaining. + */ + public Builder setAvailability(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + availability_ = value; + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Availability](https://support.google.com/merchants/answer/6324448) of the
+     * product.
+     * 
+ * + * optional string availability = 19; + * + * @return This builder for chaining. + */ + public Builder clearAvailability() { + availability_ = getDefaultInstance().getAvailability(); + bitField0_ = (bitField0_ & ~0x00080000); + onChanged(); + return this; + } + + /** + * + * + *
+     * [Availability](https://support.google.com/merchants/answer/6324448) of the
+     * product.
+     * 
+ * + * optional string availability = 19; + * + * @param value The bytes for availability to set. + * @return This builder for chaining. + */ + public Builder setAvailabilityBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + availability_ = value; + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + + private java.lang.Object shippingLabel_ = ""; + + /** + * + * + *
+     * Normalized [shipping
+     * label](https://support.google.com/merchants/answer/6324504) specified in
+     * the data source.
+     * 
+ * + * optional string shipping_label = 20; + * + * @return Whether the shippingLabel field is set. + */ + public boolean hasShippingLabel() { + return ((bitField0_ & 0x00100000) != 0); + } + + /** + * + * + *
+     * Normalized [shipping
+     * label](https://support.google.com/merchants/answer/6324504) specified in
+     * the data source.
+     * 
+ * + * optional string shipping_label = 20; + * + * @return The shippingLabel. + */ + public java.lang.String getShippingLabel() { + java.lang.Object ref = shippingLabel_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + shippingLabel_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Normalized [shipping
+     * label](https://support.google.com/merchants/answer/6324504) specified in
+     * the data source.
+     * 
+ * + * optional string shipping_label = 20; + * + * @return The bytes for shippingLabel. + */ + public com.google.protobuf.ByteString getShippingLabelBytes() { + java.lang.Object ref = shippingLabel_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + shippingLabel_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Normalized [shipping
+     * label](https://support.google.com/merchants/answer/6324504) specified in
+     * the data source.
+     * 
+ * + * optional string shipping_label = 20; + * + * @param value The shippingLabel to set. + * @return This builder for chaining. + */ + public Builder setShippingLabel(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + shippingLabel_ = value; + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Normalized [shipping
+     * label](https://support.google.com/merchants/answer/6324504) specified in
+     * the data source.
+     * 
+ * + * optional string shipping_label = 20; + * + * @return This builder for chaining. + */ + public Builder clearShippingLabel() { + shippingLabel_ = getDefaultInstance().getShippingLabel(); + bitField0_ = (bitField0_ & ~0x00100000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Normalized [shipping
+     * label](https://support.google.com/merchants/answer/6324504) specified in
+     * the data source.
+     * 
+ * + * optional string shipping_label = 20; + * + * @param value The bytes for shippingLabel to set. + * @return This builder for chaining. + */ + public Builder setShippingLabelBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + shippingLabel_ = value; + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringArrayList gtin_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureGtinIsMutable() { + if (!gtin_.isModifiable()) { + gtin_ = new com.google.protobuf.LazyStringArrayList(gtin_); + } + bitField0_ |= 0x00200000; + } + + /** + * + * + *
+     * List of Global Trade Item Numbers (GTINs) of the product.
+     * 
+ * + * repeated string gtin = 21; + * + * @return A list containing the gtin. + */ + public com.google.protobuf.ProtocolStringList getGtinList() { + gtin_.makeImmutable(); + return gtin_; + } + + /** + * + * + *
+     * List of Global Trade Item Numbers (GTINs) of the product.
+     * 
+ * + * repeated string gtin = 21; + * + * @return The count of gtin. + */ + public int getGtinCount() { + return gtin_.size(); + } + + /** + * + * + *
+     * List of Global Trade Item Numbers (GTINs) of the product.
+     * 
+ * + * repeated string gtin = 21; + * + * @param index The index of the element to return. + * @return The gtin at the given index. + */ + public java.lang.String getGtin(int index) { + return gtin_.get(index); + } + + /** + * + * + *
+     * List of Global Trade Item Numbers (GTINs) of the product.
+     * 
+ * + * repeated string gtin = 21; + * + * @param index The index of the value to return. + * @return The bytes of the gtin at the given index. + */ + public com.google.protobuf.ByteString getGtinBytes(int index) { + return gtin_.getByteString(index); + } + + /** + * + * + *
+     * List of Global Trade Item Numbers (GTINs) of the product.
+     * 
+ * + * repeated string gtin = 21; + * + * @param index The index to set the value at. + * @param value The gtin to set. + * @return This builder for chaining. + */ + public Builder setGtin(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureGtinIsMutable(); + gtin_.set(index, value); + bitField0_ |= 0x00200000; + onChanged(); + return this; + } + + /** + * + * + *
+     * List of Global Trade Item Numbers (GTINs) of the product.
+     * 
+ * + * repeated string gtin = 21; + * + * @param value The gtin to add. + * @return This builder for chaining. + */ + public Builder addGtin(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureGtinIsMutable(); + gtin_.add(value); + bitField0_ |= 0x00200000; + onChanged(); + return this; + } + + /** + * + * + *
+     * List of Global Trade Item Numbers (GTINs) of the product.
+     * 
+ * + * repeated string gtin = 21; + * + * @param values The gtin to add. + * @return This builder for chaining. + */ + public Builder addAllGtin(java.lang.Iterable values) { + ensureGtinIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, gtin_); + bitField0_ |= 0x00200000; + onChanged(); + return this; + } + + /** + * + * + *
+     * List of Global Trade Item Numbers (GTINs) of the product.
+     * 
+ * + * repeated string gtin = 21; + * + * @return This builder for chaining. + */ + public Builder clearGtin() { + gtin_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00200000); + ; + onChanged(); + return this; + } + + /** + * + * + *
+     * List of Global Trade Item Numbers (GTINs) of the product.
+     * 
+ * + * repeated string gtin = 21; + * + * @param value The bytes of the gtin to add. + * @return This builder for chaining. + */ + public Builder addGtinBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureGtinIsMutable(); + gtin_.add(value); + bitField0_ |= 0x00200000; + onChanged(); + return this; + } + + private java.lang.Object itemGroupId_ = ""; + + /** + * + * + *
+     * Item group id provided by the merchant for grouping variants together.
+     * 
+ * + * optional string item_group_id = 22; + * + * @return Whether the itemGroupId field is set. + */ + public boolean hasItemGroupId() { + return ((bitField0_ & 0x00400000) != 0); + } + + /** + * + * + *
+     * Item group id provided by the merchant for grouping variants together.
+     * 
+ * + * optional string item_group_id = 22; + * + * @return The itemGroupId. + */ + public java.lang.String getItemGroupId() { + java.lang.Object ref = itemGroupId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + itemGroupId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Item group id provided by the merchant for grouping variants together.
+     * 
+ * + * optional string item_group_id = 22; + * + * @return The bytes for itemGroupId. + */ + public com.google.protobuf.ByteString getItemGroupIdBytes() { + java.lang.Object ref = itemGroupId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + itemGroupId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Item group id provided by the merchant for grouping variants together.
+     * 
+ * + * optional string item_group_id = 22; + * + * @param value The itemGroupId to set. + * @return This builder for chaining. + */ + public Builder setItemGroupId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + itemGroupId_ = value; + bitField0_ |= 0x00400000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Item group id provided by the merchant for grouping variants together.
+     * 
+ * + * optional string item_group_id = 22; + * + * @return This builder for chaining. + */ + public Builder clearItemGroupId() { + itemGroupId_ = getDefaultInstance().getItemGroupId(); + bitField0_ = (bitField0_ & ~0x00400000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Item group id provided by the merchant for grouping variants together.
+     * 
+ * + * optional string item_group_id = 22; + * + * @param value The bytes for itemGroupId to set. + * @return This builder for chaining. + */ + public Builder setItemGroupIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + itemGroupId_ = value; + bitField0_ |= 0x00400000; + onChanged(); + return this; + } + + private java.lang.Object thumbnailLink_ = ""; + + /** + * + * + *
+     * Link to the processed image of the product, hosted on the Google
+     * infrastructure.
+     * 
+ * + * optional string thumbnail_link = 23; + * + * @return Whether the thumbnailLink field is set. + */ + public boolean hasThumbnailLink() { + return ((bitField0_ & 0x00800000) != 0); + } + + /** + * + * + *
+     * Link to the processed image of the product, hosted on the Google
+     * infrastructure.
+     * 
+ * + * optional string thumbnail_link = 23; + * + * @return The thumbnailLink. + */ + public java.lang.String getThumbnailLink() { + java.lang.Object ref = thumbnailLink_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + thumbnailLink_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Link to the processed image of the product, hosted on the Google
+     * infrastructure.
+     * 
+ * + * optional string thumbnail_link = 23; + * + * @return The bytes for thumbnailLink. + */ + public com.google.protobuf.ByteString getThumbnailLinkBytes() { + java.lang.Object ref = thumbnailLink_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + thumbnailLink_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Link to the processed image of the product, hosted on the Google
+     * infrastructure.
+     * 
+ * + * optional string thumbnail_link = 23; + * + * @param value The thumbnailLink to set. + * @return This builder for chaining. + */ + public Builder setThumbnailLink(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + thumbnailLink_ = value; + bitField0_ |= 0x00800000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Link to the processed image of the product, hosted on the Google
+     * infrastructure.
+     * 
+ * + * optional string thumbnail_link = 23; + * + * @return This builder for chaining. + */ + public Builder clearThumbnailLink() { + thumbnailLink_ = getDefaultInstance().getThumbnailLink(); + bitField0_ = (bitField0_ & ~0x00800000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Link to the processed image of the product, hosted on the Google
+     * infrastructure.
+     * 
+ * + * optional string thumbnail_link = 23; + * + * @param value The bytes for thumbnailLink to set. + * @return This builder for chaining. + */ + public Builder setThumbnailLinkBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + thumbnailLink_ = value; + bitField0_ |= 0x00800000; + onChanged(); + return this; + } + + private com.google.protobuf.Timestamp creationTime_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + creationTimeBuilder_; + + /** + * + * + *
+     * The time the merchant created the product in timestamp seconds.
+     * 
+ * + * .google.protobuf.Timestamp creation_time = 24; + * + * @return Whether the creationTime field is set. + */ + public boolean hasCreationTime() { + return ((bitField0_ & 0x01000000) != 0); + } + + /** + * + * + *
+     * The time the merchant created the product in timestamp seconds.
+     * 
+ * + * .google.protobuf.Timestamp creation_time = 24; + * + * @return The creationTime. + */ + public com.google.protobuf.Timestamp getCreationTime() { + if (creationTimeBuilder_ == null) { + return creationTime_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : creationTime_; + } else { + return creationTimeBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * The time the merchant created the product in timestamp seconds.
+     * 
+ * + * .google.protobuf.Timestamp creation_time = 24; + */ + public Builder setCreationTime(com.google.protobuf.Timestamp value) { + if (creationTimeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + creationTime_ = value; + } else { + creationTimeBuilder_.setMessage(value); + } + bitField0_ |= 0x01000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * The time the merchant created the product in timestamp seconds.
+     * 
+ * + * .google.protobuf.Timestamp creation_time = 24; + */ + public Builder setCreationTime(com.google.protobuf.Timestamp.Builder builderForValue) { + if (creationTimeBuilder_ == null) { + creationTime_ = builderForValue.build(); + } else { + creationTimeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x01000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * The time the merchant created the product in timestamp seconds.
+     * 
+ * + * .google.protobuf.Timestamp creation_time = 24; + */ + public Builder mergeCreationTime(com.google.protobuf.Timestamp value) { + if (creationTimeBuilder_ == null) { + if (((bitField0_ & 0x01000000) != 0) + && creationTime_ != null + && creationTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) { + getCreationTimeBuilder().mergeFrom(value); + } else { + creationTime_ = value; + } + } else { + creationTimeBuilder_.mergeFrom(value); + } + if (creationTime_ != null) { + bitField0_ |= 0x01000000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * The time the merchant created the product in timestamp seconds.
+     * 
+ * + * .google.protobuf.Timestamp creation_time = 24; + */ + public Builder clearCreationTime() { + bitField0_ = (bitField0_ & ~0x01000000); + creationTime_ = null; + if (creationTimeBuilder_ != null) { + creationTimeBuilder_.dispose(); + creationTimeBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * The time the merchant created the product in timestamp seconds.
+     * 
+ * + * .google.protobuf.Timestamp creation_time = 24; + */ + public com.google.protobuf.Timestamp.Builder getCreationTimeBuilder() { + bitField0_ |= 0x01000000; + onChanged(); + return getCreationTimeFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * The time the merchant created the product in timestamp seconds.
+     * 
+ * + * .google.protobuf.Timestamp creation_time = 24; + */ + public com.google.protobuf.TimestampOrBuilder getCreationTimeOrBuilder() { + if (creationTimeBuilder_ != null) { + return creationTimeBuilder_.getMessageOrBuilder(); + } else { + return creationTime_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : creationTime_; + } + } + + /** + * + * + *
+     * The time the merchant created the product in timestamp seconds.
+     * 
+ * + * .google.protobuf.Timestamp creation_time = 24; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + getCreationTimeFieldBuilder() { + if (creationTimeBuilder_ == null) { + creationTimeBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder>( + getCreationTime(), getParentForChildren(), isClean()); + creationTime_ = null; + } + return creationTimeBuilder_; + } + + private com.google.type.Date expirationDate_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + expirationDateBuilder_; + + /** + * + * + *
+     * Expiration date for the product, specified on insertion.
+     * 
+ * + * .google.type.Date expiration_date = 25; + * + * @return Whether the expirationDate field is set. + */ + public boolean hasExpirationDate() { + return ((bitField0_ & 0x02000000) != 0); + } + + /** + * + * + *
+     * Expiration date for the product, specified on insertion.
+     * 
+ * + * .google.type.Date expiration_date = 25; + * + * @return The expirationDate. + */ + public com.google.type.Date getExpirationDate() { + if (expirationDateBuilder_ == null) { + return expirationDate_ == null + ? com.google.type.Date.getDefaultInstance() + : expirationDate_; + } else { + return expirationDateBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Expiration date for the product, specified on insertion.
+     * 
+ * + * .google.type.Date expiration_date = 25; + */ + public Builder setExpirationDate(com.google.type.Date value) { + if (expirationDateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + expirationDate_ = value; + } else { + expirationDateBuilder_.setMessage(value); + } + bitField0_ |= 0x02000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Expiration date for the product, specified on insertion.
+     * 
+ * + * .google.type.Date expiration_date = 25; + */ + public Builder setExpirationDate(com.google.type.Date.Builder builderForValue) { + if (expirationDateBuilder_ == null) { + expirationDate_ = builderForValue.build(); + } else { + expirationDateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x02000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Expiration date for the product, specified on insertion.
+     * 
+ * + * .google.type.Date expiration_date = 25; + */ + public Builder mergeExpirationDate(com.google.type.Date value) { + if (expirationDateBuilder_ == null) { + if (((bitField0_ & 0x02000000) != 0) + && expirationDate_ != null + && expirationDate_ != com.google.type.Date.getDefaultInstance()) { + getExpirationDateBuilder().mergeFrom(value); + } else { + expirationDate_ = value; + } + } else { + expirationDateBuilder_.mergeFrom(value); + } + if (expirationDate_ != null) { + bitField0_ |= 0x02000000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Expiration date for the product, specified on insertion.
+     * 
+ * + * .google.type.Date expiration_date = 25; + */ + public Builder clearExpirationDate() { + bitField0_ = (bitField0_ & ~0x02000000); + expirationDate_ = null; + if (expirationDateBuilder_ != null) { + expirationDateBuilder_.dispose(); + expirationDateBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Expiration date for the product, specified on insertion.
+     * 
+ * + * .google.type.Date expiration_date = 25; + */ + public com.google.type.Date.Builder getExpirationDateBuilder() { + bitField0_ |= 0x02000000; + onChanged(); + return getExpirationDateFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Expiration date for the product, specified on insertion.
+     * 
+ * + * .google.type.Date expiration_date = 25; + */ + public com.google.type.DateOrBuilder getExpirationDateOrBuilder() { + if (expirationDateBuilder_ != null) { + return expirationDateBuilder_.getMessageOrBuilder(); + } else { + return expirationDate_ == null + ? com.google.type.Date.getDefaultInstance() + : expirationDate_; + } + } + + /** + * + * + *
+     * Expiration date for the product, specified on insertion.
+     * 
+ * + * .google.type.Date expiration_date = 25; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + getExpirationDateFieldBuilder() { + if (expirationDateBuilder_ == null) { + expirationDateBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>( + getExpirationDate(), getParentForChildren(), isClean()); + expirationDate_ = null; + } + return expirationDateBuilder_; + } + + private int aggregatedReportingContextStatus_ = 0; + + /** + * + * + *
+     * Aggregated status.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26; + * + * + * @return Whether the aggregatedReportingContextStatus field is set. + */ + @java.lang.Override + public boolean hasAggregatedReportingContextStatus() { + return ((bitField0_ & 0x04000000) != 0); + } + + /** + * + * + *
+     * Aggregated status.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26; + * + * + * @return The enum numeric value on the wire for aggregatedReportingContextStatus. + */ + @java.lang.Override + public int getAggregatedReportingContextStatusValue() { + return aggregatedReportingContextStatus_; + } + + /** + * + * + *
+     * Aggregated status.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26; + * + * + * @param value The enum numeric value on the wire for aggregatedReportingContextStatus to set. + * @return This builder for chaining. + */ + public Builder setAggregatedReportingContextStatusValue(int value) { + aggregatedReportingContextStatus_ = value; + bitField0_ |= 0x04000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Aggregated status.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26; + * + * + * @return The aggregatedReportingContextStatus. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus + getAggregatedReportingContextStatus() { + com.google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus + result = + com.google.shopping.merchant.reports.v1alpha.ProductView + .AggregatedReportingContextStatus.forNumber(aggregatedReportingContextStatus_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView + .AggregatedReportingContextStatus.UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Aggregated status.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26; + * + * + * @param value The aggregatedReportingContextStatus to set. + * @return This builder for chaining. + */ + public Builder setAggregatedReportingContextStatus( + com.google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus + value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x04000000; + aggregatedReportingContextStatus_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Aggregated status.
+     * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26; + * + * + * @return This builder for chaining. + */ + public Builder clearAggregatedReportingContextStatus() { + bitField0_ = (bitField0_ & ~0x04000000); + aggregatedReportingContextStatus_ = 0; + onChanged(); + return this; + } + + private java.util.List + itemIssues_ = java.util.Collections.emptyList(); + + private void ensureItemIssuesIsMutable() { + if (!((bitField0_ & 0x08000000) != 0)) { + itemIssues_ = + new java.util.ArrayList< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue>(itemIssues_); + bitField0_ |= 0x08000000; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder> + itemIssuesBuilder_; + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public java.util.List + getItemIssuesList() { + if (itemIssuesBuilder_ == null) { + return java.util.Collections.unmodifiableList(itemIssues_); + } else { + return itemIssuesBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public int getItemIssuesCount() { + if (itemIssuesBuilder_ == null) { + return itemIssues_.size(); + } else { + return itemIssuesBuilder_.getCount(); + } + } + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue getItemIssues( + int index) { + if (itemIssuesBuilder_ == null) { + return itemIssues_.get(index); + } else { + return itemIssuesBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public Builder setItemIssues( + int index, com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue value) { + if (itemIssuesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureItemIssuesIsMutable(); + itemIssues_.set(index, value); + onChanged(); + } else { + itemIssuesBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public Builder setItemIssues( + int index, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder + builderForValue) { + if (itemIssuesBuilder_ == null) { + ensureItemIssuesIsMutable(); + itemIssues_.set(index, builderForValue.build()); + onChanged(); + } else { + itemIssuesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public Builder addItemIssues( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue value) { + if (itemIssuesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureItemIssuesIsMutable(); + itemIssues_.add(value); + onChanged(); + } else { + itemIssuesBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public Builder addItemIssues( + int index, com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue value) { + if (itemIssuesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureItemIssuesIsMutable(); + itemIssues_.add(index, value); + onChanged(); + } else { + itemIssuesBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public Builder addItemIssues( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder + builderForValue) { + if (itemIssuesBuilder_ == null) { + ensureItemIssuesIsMutable(); + itemIssues_.add(builderForValue.build()); + onChanged(); + } else { + itemIssuesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public Builder addItemIssues( + int index, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder + builderForValue) { + if (itemIssuesBuilder_ == null) { + ensureItemIssuesIsMutable(); + itemIssues_.add(index, builderForValue.build()); + onChanged(); + } else { + itemIssuesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public Builder addAllItemIssues( + java.lang.Iterable< + ? extends com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue> + values) { + if (itemIssuesBuilder_ == null) { + ensureItemIssuesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, itemIssues_); + onChanged(); + } else { + itemIssuesBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public Builder clearItemIssues() { + if (itemIssuesBuilder_ == null) { + itemIssues_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x08000000); + onChanged(); + } else { + itemIssuesBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public Builder removeItemIssues(int index) { + if (itemIssuesBuilder_ == null) { + ensureItemIssuesIsMutable(); + itemIssues_.remove(index); + onChanged(); + } else { + itemIssuesBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder + getItemIssuesBuilder(int index) { + return getItemIssuesFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder + getItemIssuesOrBuilder(int index) { + if (itemIssuesBuilder_ == null) { + return itemIssues_.get(index); + } else { + return itemIssuesBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public java.util.List< + ? extends com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder> + getItemIssuesOrBuilderList() { + if (itemIssuesBuilder_ != null) { + return itemIssuesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(itemIssues_); + } + } + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder + addItemIssuesBuilder() { + return getItemIssuesFieldBuilder() + .addBuilder( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .getDefaultInstance()); + } + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder + addItemIssuesBuilder(int index) { + return getItemIssuesFieldBuilder() + .addBuilder( + index, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .getDefaultInstance()); + } + + /** + * + * + *
+     * List of item issues for the product.
+     *
+     * **This field cannot be used for sorting the results.**
+     *
+     * **Only selected attributes of this field (for example,
+     * `item_issues.severity.aggregated_severity`) can be used for filtering the
+     * results.**
+     * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + public java.util.List< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder> + getItemIssuesBuilderList() { + return getItemIssuesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder> + getItemIssuesFieldBuilder() { + if (itemIssuesBuilder_ == null) { + itemIssuesBuilder_ = + new com.google.protobuf.RepeatedFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder>( + itemIssues_, ((bitField0_ & 0x08000000) != 0), getParentForChildren(), isClean()); + itemIssues_ = null; + } + return itemIssuesBuilder_; + } + + private int clickPotential_ = 0; + + /** + * + * + *
+     * Estimated performance potential compared to highest performing products of
+     * the merchant.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29; + * + * + * @return The enum numeric value on the wire for clickPotential. + */ + @java.lang.Override + public int getClickPotentialValue() { + return clickPotential_; + } + + /** + * + * + *
+     * Estimated performance potential compared to highest performing products of
+     * the merchant.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29; + * + * + * @param value The enum numeric value on the wire for clickPotential to set. + * @return This builder for chaining. + */ + public Builder setClickPotentialValue(int value) { + clickPotential_ = value; + bitField0_ |= 0x10000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Estimated performance potential compared to highest performing products of
+     * the merchant.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29; + * + * + * @return The clickPotential. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential + getClickPotential() { + com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential result = + com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential.forNumber( + clickPotential_); + return result == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential.UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Estimated performance potential compared to highest performing products of
+     * the merchant.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29; + * + * + * @param value The clickPotential to set. + * @return This builder for chaining. + */ + public Builder setClickPotential( + com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x10000000; + clickPotential_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Estimated performance potential compared to highest performing products of
+     * the merchant.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29; + * + * + * @return This builder for chaining. + */ + public Builder clearClickPotential() { + bitField0_ = (bitField0_ & ~0x10000000); + clickPotential_ = 0; + onChanged(); + return this; + } + + private long clickPotentialRank_; + + /** + * + * + *
+     * Rank of the product based on its click potential. A product with
+     * `click_potential_rank` 1 has the highest click potential among the
+     * merchant's products that fulfill the search query conditions.
+     * 
+ * + * optional int64 click_potential_rank = 30; + * + * @return Whether the clickPotentialRank field is set. + */ + @java.lang.Override + public boolean hasClickPotentialRank() { + return ((bitField0_ & 0x20000000) != 0); + } + + /** + * + * + *
+     * Rank of the product based on its click potential. A product with
+     * `click_potential_rank` 1 has the highest click potential among the
+     * merchant's products that fulfill the search query conditions.
+     * 
+ * + * optional int64 click_potential_rank = 30; + * + * @return The clickPotentialRank. + */ + @java.lang.Override + public long getClickPotentialRank() { + return clickPotentialRank_; + } + + /** + * + * + *
+     * Rank of the product based on its click potential. A product with
+     * `click_potential_rank` 1 has the highest click potential among the
+     * merchant's products that fulfill the search query conditions.
+     * 
+ * + * optional int64 click_potential_rank = 30; + * + * @param value The clickPotentialRank to set. + * @return This builder for chaining. + */ + public Builder setClickPotentialRank(long value) { + + clickPotentialRank_ = value; + bitField0_ |= 0x20000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Rank of the product based on its click potential. A product with
+     * `click_potential_rank` 1 has the highest click potential among the
+     * merchant's products that fulfill the search query conditions.
+     * 
+ * + * optional int64 click_potential_rank = 30; + * + * @return This builder for chaining. + */ + public Builder clearClickPotentialRank() { + bitField0_ = (bitField0_ & ~0x20000000); + clickPotentialRank_ = 0L; + 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.shopping.merchant.reports.v1alpha.ProductView) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.ProductView) + private static final com.google.shopping.merchant.reports.v1alpha.ProductView DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.ProductView(); + } + + public static com.google.shopping.merchant.reports.v1alpha.ProductView getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ProductView parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.ProductView getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductViewOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductViewOrBuilder.java new file mode 100644 index 000000000000..c708ca715632 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductViewOrBuilder.java @@ -0,0 +1,1316 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface ProductViewOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.ProductView) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate
+   * on products take this as their `name` parameter.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 1; + * + * @return Whether the id field is set. + */ + boolean hasId(); + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate
+   * on products take this as their `name` parameter.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 1; + * + * @return The id. + */ + java.lang.String getId(); + + /** + * + * + *
+   * REST ID of the product, in the form of
+   * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate
+   * on products take this as their `name` parameter.
+   *
+   * Required in the `SELECT` clause.
+   * 
+ * + * optional string id = 1; + * + * @return The bytes for id. + */ + com.google.protobuf.ByteString getIdBytes(); + + /** + * + * + *
+   * Channel of the product. Can be `ONLINE` or `LOCAL`.
+   * 
+ * + * optional .google.shopping.type.Channel.ChannelEnum channel = 28; + * + * @return Whether the channel field is set. + */ + boolean hasChannel(); + + /** + * + * + *
+   * Channel of the product. Can be `ONLINE` or `LOCAL`.
+   * 
+ * + * optional .google.shopping.type.Channel.ChannelEnum channel = 28; + * + * @return The enum numeric value on the wire for channel. + */ + int getChannelValue(); + + /** + * + * + *
+   * Channel of the product. Can be `ONLINE` or `LOCAL`.
+   * 
+ * + * optional .google.shopping.type.Channel.ChannelEnum channel = 28; + * + * @return The channel. + */ + com.google.shopping.type.Channel.ChannelEnum getChannel(); + + /** + * + * + *
+   * Language code of the product in BCP 47 format.
+   * 
+ * + * optional string language_code = 2; + * + * @return Whether the languageCode field is set. + */ + boolean hasLanguageCode(); + + /** + * + * + *
+   * Language code of the product in BCP 47 format.
+   * 
+ * + * optional string language_code = 2; + * + * @return The languageCode. + */ + java.lang.String getLanguageCode(); + + /** + * + * + *
+   * Language code of the product in BCP 47 format.
+   * 
+ * + * optional string language_code = 2; + * + * @return The bytes for languageCode. + */ + com.google.protobuf.ByteString getLanguageCodeBytes(); + + /** + * + * + *
+   * Feed label of the product.
+   * 
+ * + * optional string feed_label = 3; + * + * @return Whether the feedLabel field is set. + */ + boolean hasFeedLabel(); + + /** + * + * + *
+   * Feed label of the product.
+   * 
+ * + * optional string feed_label = 3; + * + * @return The feedLabel. + */ + java.lang.String getFeedLabel(); + + /** + * + * + *
+   * Feed label of the product.
+   * 
+ * + * optional string feed_label = 3; + * + * @return The bytes for feedLabel. + */ + com.google.protobuf.ByteString getFeedLabelBytes(); + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 4; + * + * @return Whether the offerId field is set. + */ + boolean hasOfferId(); + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 4; + * + * @return The offerId. + */ + java.lang.String getOfferId(); + + /** + * + * + *
+   * Merchant-provided id of the product.
+   * 
+ * + * optional string offer_id = 4; + * + * @return The bytes for offerId. + */ + com.google.protobuf.ByteString getOfferIdBytes(); + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 5; + * + * @return Whether the title field is set. + */ + boolean hasTitle(); + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 5; + * + * @return The title. + */ + java.lang.String getTitle(); + + /** + * + * + *
+   * Title of the product.
+   * 
+ * + * optional string title = 5; + * + * @return The bytes for title. + */ + com.google.protobuf.ByteString getTitleBytes(); + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 6; + * + * @return Whether the brand field is set. + */ + boolean hasBrand(); + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 6; + * + * @return The brand. + */ + java.lang.String getBrand(); + + /** + * + * + *
+   * Brand of the product.
+   * 
+ * + * optional string brand = 6; + * + * @return The bytes for brand. + */ + com.google.protobuf.ByteString getBrandBytes(); + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 7; + * + * @return Whether the categoryL1 field is set. + */ + boolean hasCategoryL1(); + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 7; + * + * @return The categoryL1. + */ + java.lang.String getCategoryL1(); + + /** + * + * + *
+   * Product category (1st level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l1 = 7; + * + * @return The bytes for categoryL1. + */ + com.google.protobuf.ByteString getCategoryL1Bytes(); + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 8; + * + * @return Whether the categoryL2 field is set. + */ + boolean hasCategoryL2(); + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 8; + * + * @return The categoryL2. + */ + java.lang.String getCategoryL2(); + + /** + * + * + *
+   * Product category (2nd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l2 = 8; + * + * @return The bytes for categoryL2. + */ + com.google.protobuf.ByteString getCategoryL2Bytes(); + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 9; + * + * @return Whether the categoryL3 field is set. + */ + boolean hasCategoryL3(); + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 9; + * + * @return The categoryL3. + */ + java.lang.String getCategoryL3(); + + /** + * + * + *
+   * Product category (3rd level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l3 = 9; + * + * @return The bytes for categoryL3. + */ + com.google.protobuf.ByteString getCategoryL3Bytes(); + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 10; + * + * @return Whether the categoryL4 field is set. + */ + boolean hasCategoryL4(); + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 10; + * + * @return The categoryL4. + */ + java.lang.String getCategoryL4(); + + /** + * + * + *
+   * Product category (4th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l4 = 10; + * + * @return The bytes for categoryL4. + */ + com.google.protobuf.ByteString getCategoryL4Bytes(); + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 11; + * + * @return Whether the categoryL5 field is set. + */ + boolean hasCategoryL5(); + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 11; + * + * @return The categoryL5. + */ + java.lang.String getCategoryL5(); + + /** + * + * + *
+   * Product category (5th level) in [Google's product
+   * taxonomy](https://support.google.com/merchants/answer/6324436).
+   * 
+ * + * optional string category_l5 = 11; + * + * @return The bytes for categoryL5. + */ + com.google.protobuf.ByteString getCategoryL5Bytes(); + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 12; + * + * @return Whether the productTypeL1 field is set. + */ + boolean hasProductTypeL1(); + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 12; + * + * @return The productTypeL1. + */ + java.lang.String getProductTypeL1(); + + /** + * + * + *
+   * Product type (1st level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l1 = 12; + * + * @return The bytes for productTypeL1. + */ + com.google.protobuf.ByteString getProductTypeL1Bytes(); + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 13; + * + * @return Whether the productTypeL2 field is set. + */ + boolean hasProductTypeL2(); + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 13; + * + * @return The productTypeL2. + */ + java.lang.String getProductTypeL2(); + + /** + * + * + *
+   * Product type (2nd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l2 = 13; + * + * @return The bytes for productTypeL2. + */ + com.google.protobuf.ByteString getProductTypeL2Bytes(); + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 14; + * + * @return Whether the productTypeL3 field is set. + */ + boolean hasProductTypeL3(); + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 14; + * + * @return The productTypeL3. + */ + java.lang.String getProductTypeL3(); + + /** + * + * + *
+   * Product type (3rd level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l3 = 14; + * + * @return The bytes for productTypeL3. + */ + com.google.protobuf.ByteString getProductTypeL3Bytes(); + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 15; + * + * @return Whether the productTypeL4 field is set. + */ + boolean hasProductTypeL4(); + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 15; + * + * @return The productTypeL4. + */ + java.lang.String getProductTypeL4(); + + /** + * + * + *
+   * Product type (4th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l4 = 15; + * + * @return The bytes for productTypeL4. + */ + com.google.protobuf.ByteString getProductTypeL4Bytes(); + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 16; + * + * @return Whether the productTypeL5 field is set. + */ + boolean hasProductTypeL5(); + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 16; + * + * @return The productTypeL5. + */ + java.lang.String getProductTypeL5(); + + /** + * + * + *
+   * Product type (5th level) in merchant's own [product
+   * taxonomy](https://support.google.com/merchants/answer/6324406).
+   * 
+ * + * optional string product_type_l5 = 16; + * + * @return The bytes for productTypeL5. + */ + com.google.protobuf.ByteString getProductTypeL5Bytes(); + + /** + * + * + *
+   * Product price. Absent if the information about the price of the product is
+   * not available.
+   * 
+ * + * .google.shopping.type.Price price = 17; + * + * @return Whether the price field is set. + */ + boolean hasPrice(); + + /** + * + * + *
+   * Product price. Absent if the information about the price of the product is
+   * not available.
+   * 
+ * + * .google.shopping.type.Price price = 17; + * + * @return The price. + */ + com.google.shopping.type.Price getPrice(); + + /** + * + * + *
+   * Product price. Absent if the information about the price of the product is
+   * not available.
+   * 
+ * + * .google.shopping.type.Price price = 17; + */ + com.google.shopping.type.PriceOrBuilder getPriceOrBuilder(); + + /** + * + * + *
+   * [Condition](https://support.google.com/merchants/answer/6324469) of the
+   * product.
+   * 
+ * + * optional string condition = 18; + * + * @return Whether the condition field is set. + */ + boolean hasCondition(); + + /** + * + * + *
+   * [Condition](https://support.google.com/merchants/answer/6324469) of the
+   * product.
+   * 
+ * + * optional string condition = 18; + * + * @return The condition. + */ + java.lang.String getCondition(); + + /** + * + * + *
+   * [Condition](https://support.google.com/merchants/answer/6324469) of the
+   * product.
+   * 
+ * + * optional string condition = 18; + * + * @return The bytes for condition. + */ + com.google.protobuf.ByteString getConditionBytes(); + + /** + * + * + *
+   * [Availability](https://support.google.com/merchants/answer/6324448) of the
+   * product.
+   * 
+ * + * optional string availability = 19; + * + * @return Whether the availability field is set. + */ + boolean hasAvailability(); + + /** + * + * + *
+   * [Availability](https://support.google.com/merchants/answer/6324448) of the
+   * product.
+   * 
+ * + * optional string availability = 19; + * + * @return The availability. + */ + java.lang.String getAvailability(); + + /** + * + * + *
+   * [Availability](https://support.google.com/merchants/answer/6324448) of the
+   * product.
+   * 
+ * + * optional string availability = 19; + * + * @return The bytes for availability. + */ + com.google.protobuf.ByteString getAvailabilityBytes(); + + /** + * + * + *
+   * Normalized [shipping
+   * label](https://support.google.com/merchants/answer/6324504) specified in
+   * the data source.
+   * 
+ * + * optional string shipping_label = 20; + * + * @return Whether the shippingLabel field is set. + */ + boolean hasShippingLabel(); + + /** + * + * + *
+   * Normalized [shipping
+   * label](https://support.google.com/merchants/answer/6324504) specified in
+   * the data source.
+   * 
+ * + * optional string shipping_label = 20; + * + * @return The shippingLabel. + */ + java.lang.String getShippingLabel(); + + /** + * + * + *
+   * Normalized [shipping
+   * label](https://support.google.com/merchants/answer/6324504) specified in
+   * the data source.
+   * 
+ * + * optional string shipping_label = 20; + * + * @return The bytes for shippingLabel. + */ + com.google.protobuf.ByteString getShippingLabelBytes(); + + /** + * + * + *
+   * List of Global Trade Item Numbers (GTINs) of the product.
+   * 
+ * + * repeated string gtin = 21; + * + * @return A list containing the gtin. + */ + java.util.List getGtinList(); + + /** + * + * + *
+   * List of Global Trade Item Numbers (GTINs) of the product.
+   * 
+ * + * repeated string gtin = 21; + * + * @return The count of gtin. + */ + int getGtinCount(); + + /** + * + * + *
+   * List of Global Trade Item Numbers (GTINs) of the product.
+   * 
+ * + * repeated string gtin = 21; + * + * @param index The index of the element to return. + * @return The gtin at the given index. + */ + java.lang.String getGtin(int index); + + /** + * + * + *
+   * List of Global Trade Item Numbers (GTINs) of the product.
+   * 
+ * + * repeated string gtin = 21; + * + * @param index The index of the value to return. + * @return The bytes of the gtin at the given index. + */ + com.google.protobuf.ByteString getGtinBytes(int index); + + /** + * + * + *
+   * Item group id provided by the merchant for grouping variants together.
+   * 
+ * + * optional string item_group_id = 22; + * + * @return Whether the itemGroupId field is set. + */ + boolean hasItemGroupId(); + + /** + * + * + *
+   * Item group id provided by the merchant for grouping variants together.
+   * 
+ * + * optional string item_group_id = 22; + * + * @return The itemGroupId. + */ + java.lang.String getItemGroupId(); + + /** + * + * + *
+   * Item group id provided by the merchant for grouping variants together.
+   * 
+ * + * optional string item_group_id = 22; + * + * @return The bytes for itemGroupId. + */ + com.google.protobuf.ByteString getItemGroupIdBytes(); + + /** + * + * + *
+   * Link to the processed image of the product, hosted on the Google
+   * infrastructure.
+   * 
+ * + * optional string thumbnail_link = 23; + * + * @return Whether the thumbnailLink field is set. + */ + boolean hasThumbnailLink(); + + /** + * + * + *
+   * Link to the processed image of the product, hosted on the Google
+   * infrastructure.
+   * 
+ * + * optional string thumbnail_link = 23; + * + * @return The thumbnailLink. + */ + java.lang.String getThumbnailLink(); + + /** + * + * + *
+   * Link to the processed image of the product, hosted on the Google
+   * infrastructure.
+   * 
+ * + * optional string thumbnail_link = 23; + * + * @return The bytes for thumbnailLink. + */ + com.google.protobuf.ByteString getThumbnailLinkBytes(); + + /** + * + * + *
+   * The time the merchant created the product in timestamp seconds.
+   * 
+ * + * .google.protobuf.Timestamp creation_time = 24; + * + * @return Whether the creationTime field is set. + */ + boolean hasCreationTime(); + + /** + * + * + *
+   * The time the merchant created the product in timestamp seconds.
+   * 
+ * + * .google.protobuf.Timestamp creation_time = 24; + * + * @return The creationTime. + */ + com.google.protobuf.Timestamp getCreationTime(); + + /** + * + * + *
+   * The time the merchant created the product in timestamp seconds.
+   * 
+ * + * .google.protobuf.Timestamp creation_time = 24; + */ + com.google.protobuf.TimestampOrBuilder getCreationTimeOrBuilder(); + + /** + * + * + *
+   * Expiration date for the product, specified on insertion.
+   * 
+ * + * .google.type.Date expiration_date = 25; + * + * @return Whether the expirationDate field is set. + */ + boolean hasExpirationDate(); + + /** + * + * + *
+   * Expiration date for the product, specified on insertion.
+   * 
+ * + * .google.type.Date expiration_date = 25; + * + * @return The expirationDate. + */ + com.google.type.Date getExpirationDate(); + + /** + * + * + *
+   * Expiration date for the product, specified on insertion.
+   * 
+ * + * .google.type.Date expiration_date = 25; + */ + com.google.type.DateOrBuilder getExpirationDateOrBuilder(); + + /** + * + * + *
+   * Aggregated status.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26; + * + * + * @return Whether the aggregatedReportingContextStatus field is set. + */ + boolean hasAggregatedReportingContextStatus(); + + /** + * + * + *
+   * Aggregated status.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26; + * + * + * @return The enum numeric value on the wire for aggregatedReportingContextStatus. + */ + int getAggregatedReportingContextStatusValue(); + + /** + * + * + *
+   * Aggregated status.
+   * 
+ * + * + * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26; + * + * + * @return The aggregatedReportingContextStatus. + */ + com.google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus + getAggregatedReportingContextStatus(); + + /** + * + * + *
+   * List of item issues for the product.
+   *
+   * **This field cannot be used for sorting the results.**
+   *
+   * **Only selected attributes of this field (for example,
+   * `item_issues.severity.aggregated_severity`) can be used for filtering the
+   * results.**
+   * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + java.util.List + getItemIssuesList(); + + /** + * + * + *
+   * List of item issues for the product.
+   *
+   * **This field cannot be used for sorting the results.**
+   *
+   * **Only selected attributes of this field (for example,
+   * `item_issues.severity.aggregated_severity`) can be used for filtering the
+   * results.**
+   * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue getItemIssues(int index); + + /** + * + * + *
+   * List of item issues for the product.
+   *
+   * **This field cannot be used for sorting the results.**
+   *
+   * **Only selected attributes of this field (for example,
+   * `item_issues.severity.aggregated_severity`) can be used for filtering the
+   * results.**
+   * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + int getItemIssuesCount(); + + /** + * + * + *
+   * List of item issues for the product.
+   *
+   * **This field cannot be used for sorting the results.**
+   *
+   * **Only selected attributes of this field (for example,
+   * `item_issues.severity.aggregated_severity`) can be used for filtering the
+   * results.**
+   * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + java.util.List< + ? extends com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder> + getItemIssuesOrBuilderList(); + + /** + * + * + *
+   * List of item issues for the product.
+   *
+   * **This field cannot be used for sorting the results.**
+   *
+   * **Only selected attributes of this field (for example,
+   * `item_issues.severity.aggregated_severity`) can be used for filtering the
+   * results.**
+   * 
+ * + * + * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27; + * + */ + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder + getItemIssuesOrBuilder(int index); + + /** + * + * + *
+   * Estimated performance potential compared to highest performing products of
+   * the merchant.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29; + * + * + * @return The enum numeric value on the wire for clickPotential. + */ + int getClickPotentialValue(); + + /** + * + * + *
+   * Estimated performance potential compared to highest performing products of
+   * the merchant.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29; + * + * + * @return The clickPotential. + */ + com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential getClickPotential(); + + /** + * + * + *
+   * Rank of the product based on its click potential. A product with
+   * `click_potential_rank` 1 has the highest click potential among the
+   * merchant's products that fulfill the search query conditions.
+   * 
+ * + * optional int64 click_potential_rank = 30; + * + * @return Whether the clickPotentialRank field is set. + */ + boolean hasClickPotentialRank(); + + /** + * + * + *
+   * Rank of the product based on its click potential. A product with
+   * `click_potential_rank` 1 has the highest click potential among the
+   * merchant's products that fulfill the search query conditions.
+   * 
+ * + * optional int64 click_potential_rank = 30; + * + * @return The clickPotentialRank. + */ + long getClickPotentialRank(); +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemand.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemand.java new file mode 100644 index 000000000000..c9ba6e4f2bf5 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemand.java @@ -0,0 +1,679 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Relative demand of a product cluster or brand in the Best sellers report.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.RelativeDemand} + */ +public final class RelativeDemand extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.RelativeDemand) + RelativeDemandOrBuilder { + private static final long serialVersionUID = 0L; + + // Use RelativeDemand.newBuilder() to construct. + private RelativeDemand(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RelativeDemand() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new RelativeDemand(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemand_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemand_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.class, + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.Builder.class); + } + + /** + * + * + *
+   * Relative demand values.
+   * 
+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum} + */ + public enum RelativeDemandEnum implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Not specified.
+     * 
+ * + * RELATIVE_DEMAND_ENUM_UNSPECIFIED = 0; + */ + RELATIVE_DEMAND_ENUM_UNSPECIFIED(0), + /** + * + * + *
+     * Demand is 0-5% of the demand of the highest ranked product cluster or
+     * brand.
+     * 
+ * + * VERY_LOW = 10; + */ + VERY_LOW(10), + /** + * + * + *
+     * Demand is 6-10% of the demand of the highest ranked product cluster or
+     * brand.
+     * 
+ * + * LOW = 20; + */ + LOW(20), + /** + * + * + *
+     * Demand is 11-20% of the demand of the highest ranked product cluster or
+     * brand.
+     * 
+ * + * MEDIUM = 30; + */ + MEDIUM(30), + /** + * + * + *
+     * Demand is 21-50% of the demand of the highest ranked product cluster or
+     * brand.
+     * 
+ * + * HIGH = 40; + */ + HIGH(40), + /** + * + * + *
+     * Demand is 51-100% of the demand of the highest ranked product cluster or
+     * brand.
+     * 
+ * + * VERY_HIGH = 50; + */ + VERY_HIGH(50), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+     * Not specified.
+     * 
+ * + * RELATIVE_DEMAND_ENUM_UNSPECIFIED = 0; + */ + public static final int RELATIVE_DEMAND_ENUM_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+     * Demand is 0-5% of the demand of the highest ranked product cluster or
+     * brand.
+     * 
+ * + * VERY_LOW = 10; + */ + public static final int VERY_LOW_VALUE = 10; + + /** + * + * + *
+     * Demand is 6-10% of the demand of the highest ranked product cluster or
+     * brand.
+     * 
+ * + * LOW = 20; + */ + public static final int LOW_VALUE = 20; + + /** + * + * + *
+     * Demand is 11-20% of the demand of the highest ranked product cluster or
+     * brand.
+     * 
+ * + * MEDIUM = 30; + */ + public static final int MEDIUM_VALUE = 30; + + /** + * + * + *
+     * Demand is 21-50% of the demand of the highest ranked product cluster or
+     * brand.
+     * 
+ * + * HIGH = 40; + */ + public static final int HIGH_VALUE = 40; + + /** + * + * + *
+     * Demand is 51-100% of the demand of the highest ranked product cluster or
+     * brand.
+     * 
+ * + * VERY_HIGH = 50; + */ + public static final int VERY_HIGH_VALUE = 50; + + 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 RelativeDemandEnum 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 RelativeDemandEnum forNumber(int value) { + switch (value) { + case 0: + return RELATIVE_DEMAND_ENUM_UNSPECIFIED; + case 10: + return VERY_LOW; + case 20: + return LOW; + case 30: + return MEDIUM; + case 40: + return HIGH; + case 50: + return VERY_HIGH; + 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 RelativeDemandEnum findValueByNumber(int number) { + return RelativeDemandEnum.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.shopping.merchant.reports.v1alpha.RelativeDemand.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final RelativeDemandEnum[] VALUES = values(); + + public static RelativeDemandEnum 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 RelativeDemandEnum(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum) + } + + 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 { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.RelativeDemand)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.RelativeDemand other = + (com.google.shopping.merchant.reports.v1alpha.RelativeDemand) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) 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) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemand parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemand parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemand parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemand 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.shopping.merchant.reports.v1alpha.RelativeDemand parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemand parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemand parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemand 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.shopping.merchant.reports.v1alpha.RelativeDemand parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemand 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.shopping.merchant.reports.v1alpha.RelativeDemand parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemand 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.shopping.merchant.reports.v1alpha.RelativeDemand 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; + } + + /** + * + * + *
+   * Relative demand of a product cluster or brand in the Best sellers report.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.RelativeDemand} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.RelativeDemand) + com.google.shopping.merchant.reports.v1alpha.RelativeDemandOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemand_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemand_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.class, + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.Builder.class); + } + + // Construct using com.google.shopping.merchant.reports.v1alpha.RelativeDemand.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemand_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemand getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.RelativeDemand.getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemand build() { + com.google.shopping.merchant.reports.v1alpha.RelativeDemand result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemand buildPartial() { + com.google.shopping.merchant.reports.v1alpha.RelativeDemand result = + new com.google.shopping.merchant.reports.v1alpha.RelativeDemand(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.shopping.merchant.reports.v1alpha.RelativeDemand) { + return mergeFrom((com.google.shopping.merchant.reports.v1alpha.RelativeDemand) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.shopping.merchant.reports.v1alpha.RelativeDemand other) { + if (other == com.google.shopping.merchant.reports.v1alpha.RelativeDemand.getDefaultInstance()) + return this; + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + 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.shopping.merchant.reports.v1alpha.RelativeDemand) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.RelativeDemand) + private static final com.google.shopping.merchant.reports.v1alpha.RelativeDemand DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.RelativeDemand(); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemand getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RelativeDemand parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.RelativeDemand getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemandChangeType.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemandChangeType.java new file mode 100644 index 000000000000..33f6751a6dae --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemandChangeType.java @@ -0,0 +1,635 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Relative demand of a product cluster or brand in the Best sellers report
+ * compared to the previous time period.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType} + */ +public final class RelativeDemandChangeType extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType) + RelativeDemandChangeTypeOrBuilder { + private static final long serialVersionUID = 0L; + + // Use RelativeDemandChangeType.newBuilder() to construct. + private RelativeDemandChangeType(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RelativeDemandChangeType() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new RelativeDemandChangeType(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemandChangeType_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemandChangeType_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.class, + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.Builder.class); + } + + /** + * + * + *
+   * Relative demand change type values.
+   * 
+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum} + */ + public enum RelativeDemandChangeTypeEnum implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Not specified.
+     * 
+ * + * RELATIVE_DEMAND_CHANGE_TYPE_ENUM_UNSPECIFIED = 0; + */ + RELATIVE_DEMAND_CHANGE_TYPE_ENUM_UNSPECIFIED(0), + /** + * + * + *
+     * Relative demand is lower than the previous time period.
+     * 
+ * + * SINKER = 1; + */ + SINKER(1), + /** + * + * + *
+     * Relative demand is equal to the previous time period.
+     * 
+ * + * FLAT = 2; + */ + FLAT(2), + /** + * + * + *
+     * Relative demand is higher than the previous time period.
+     * 
+ * + * RISER = 3; + */ + RISER(3), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+     * Not specified.
+     * 
+ * + * RELATIVE_DEMAND_CHANGE_TYPE_ENUM_UNSPECIFIED = 0; + */ + public static final int RELATIVE_DEMAND_CHANGE_TYPE_ENUM_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+     * Relative demand is lower than the previous time period.
+     * 
+ * + * SINKER = 1; + */ + public static final int SINKER_VALUE = 1; + + /** + * + * + *
+     * Relative demand is equal to the previous time period.
+     * 
+ * + * FLAT = 2; + */ + public static final int FLAT_VALUE = 2; + + /** + * + * + *
+     * Relative demand is higher than the previous time period.
+     * 
+ * + * RISER = 3; + */ + public static final int RISER_VALUE = 3; + + 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 RelativeDemandChangeTypeEnum 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 RelativeDemandChangeTypeEnum forNumber(int value) { + switch (value) { + case 0: + return RELATIVE_DEMAND_CHANGE_TYPE_ENUM_UNSPECIFIED; + case 1: + return SINKER; + case 2: + return FLAT; + case 3: + return RISER; + 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 RelativeDemandChangeTypeEnum findValueByNumber(int number) { + return RelativeDemandChangeTypeEnum.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.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final RelativeDemandChangeTypeEnum[] VALUES = values(); + + public static RelativeDemandChangeTypeEnum 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 RelativeDemandChangeTypeEnum(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum) + } + + 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 { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.RelativeDemandChangeType)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType other = + (com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) 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) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType 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.shopping.merchant.reports.v1alpha.RelativeDemandChangeType parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType 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.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + 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.shopping.merchant.reports.v1alpha.RelativeDemandChangeType parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType 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.shopping.merchant.reports.v1alpha.RelativeDemandChangeType 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; + } + + /** + * + * + *
+   * Relative demand of a product cluster or brand in the Best sellers report
+   * compared to the previous time period.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType) + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeTypeOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemandChangeType_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemandChangeType_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.class, + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.Builder.class); + } + + // Construct using + // com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemandChangeType_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType build() { + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType buildPartial() { + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType result = + new com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType(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.shopping.merchant.reports.v1alpha.RelativeDemandChangeType) { + return mergeFrom( + (com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + .getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + 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.shopping.merchant.reports.v1alpha.RelativeDemandChangeType) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType) + private static final com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType(); + } + + public static com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RelativeDemandChangeType parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.RelativeDemandChangeType + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemandChangeTypeOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemandChangeTypeOrBuilder.java new file mode 100644 index 000000000000..6de216466d48 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemandChangeTypeOrBuilder.java @@ -0,0 +1,25 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface RelativeDemandChangeTypeOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType) + com.google.protobuf.MessageOrBuilder {} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemandOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemandOrBuilder.java new file mode 100644 index 000000000000..0675d150dd96 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemandOrBuilder.java @@ -0,0 +1,25 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface RelativeDemandOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.RelativeDemand) + com.google.protobuf.MessageOrBuilder {} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportGranularity.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportGranularity.java new file mode 100644 index 000000000000..d797c0bcb24b --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportGranularity.java @@ -0,0 +1,607 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Granularity of the Best sellers report. Best sellers reports are computed
+ * over a week and a month timeframe.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ReportGranularity} + */ +public final class ReportGranularity extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.ReportGranularity) + ReportGranularityOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ReportGranularity.newBuilder() to construct. + private ReportGranularity(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ReportGranularity() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ReportGranularity(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ReportGranularity_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ReportGranularity_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.class, + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.Builder.class); + } + + /** + * + * + *
+   * Report granularity values.
+   * 
+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum} + */ + public enum ReportGranularityEnum implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Not specified.
+     * 
+ * + * REPORT_GRANULARITY_ENUM_UNSPECIFIED = 0; + */ + REPORT_GRANULARITY_ENUM_UNSPECIFIED(0), + /** + * + * + *
+     * Report is computed over a week timeframe.
+     * 
+ * + * WEEKLY = 1; + */ + WEEKLY(1), + /** + * + * + *
+     * Report is computed over a month timeframe.
+     * 
+ * + * MONTHLY = 2; + */ + MONTHLY(2), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+     * Not specified.
+     * 
+ * + * REPORT_GRANULARITY_ENUM_UNSPECIFIED = 0; + */ + public static final int REPORT_GRANULARITY_ENUM_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+     * Report is computed over a week timeframe.
+     * 
+ * + * WEEKLY = 1; + */ + public static final int WEEKLY_VALUE = 1; + + /** + * + * + *
+     * Report is computed over a month timeframe.
+     * 
+ * + * MONTHLY = 2; + */ + public static final int MONTHLY_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 ReportGranularityEnum 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 ReportGranularityEnum forNumber(int value) { + switch (value) { + case 0: + return REPORT_GRANULARITY_ENUM_UNSPECIFIED; + case 1: + return WEEKLY; + case 2: + return MONTHLY; + 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 ReportGranularityEnum findValueByNumber(int number) { + return ReportGranularityEnum.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.shopping.merchant.reports.v1alpha.ReportGranularity.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final ReportGranularityEnum[] VALUES = values(); + + public static ReportGranularityEnum 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 ReportGranularityEnum(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum) + } + + 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 { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.ReportGranularity)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.ReportGranularity other = + (com.google.shopping.merchant.reports.v1alpha.ReportGranularity) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) 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) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportGranularity parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportGranularity parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportGranularity parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportGranularity 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.shopping.merchant.reports.v1alpha.ReportGranularity parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportGranularity parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportGranularity parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportGranularity 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.shopping.merchant.reports.v1alpha.ReportGranularity parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportGranularity 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.shopping.merchant.reports.v1alpha.ReportGranularity parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportGranularity 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.shopping.merchant.reports.v1alpha.ReportGranularity 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; + } + + /** + * + * + *
+   * Granularity of the Best sellers report. Best sellers reports are computed
+   * over a week and a month timeframe.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ReportGranularity} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.ReportGranularity) + com.google.shopping.merchant.reports.v1alpha.ReportGranularityOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ReportGranularity_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ReportGranularity_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.class, + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.Builder.class); + } + + // Construct using com.google.shopping.merchant.reports.v1alpha.ReportGranularity.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ReportGranularity_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ReportGranularity + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportGranularity.getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ReportGranularity build() { + com.google.shopping.merchant.reports.v1alpha.ReportGranularity result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ReportGranularity buildPartial() { + com.google.shopping.merchant.reports.v1alpha.ReportGranularity result = + new com.google.shopping.merchant.reports.v1alpha.ReportGranularity(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.shopping.merchant.reports.v1alpha.ReportGranularity) { + return mergeFrom((com.google.shopping.merchant.reports.v1alpha.ReportGranularity) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.shopping.merchant.reports.v1alpha.ReportGranularity other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.ReportGranularity.getDefaultInstance()) + return this; + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + 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.shopping.merchant.reports.v1alpha.ReportGranularity) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.ReportGranularity) + private static final com.google.shopping.merchant.reports.v1alpha.ReportGranularity + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.ReportGranularity(); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportGranularity + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ReportGranularity parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.ReportGranularity + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportGranularityOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportGranularityOrBuilder.java new file mode 100644 index 000000000000..fd034c2fcb76 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportGranularityOrBuilder.java @@ -0,0 +1,25 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface ReportGranularityOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.ReportGranularity) + com.google.protobuf.MessageOrBuilder {} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportRow.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportRow.java new file mode 100644 index 000000000000..1122f2f55770 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportRow.java @@ -0,0 +1,4742 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Result row returned from the search query.
+ *
+ * Only the message corresponding to the queried table is populated in the
+ * response. Within the populated message, only the fields requested explicitly
+ * in the query are populated.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ReportRow} + */ +public final class ReportRow extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.ReportRow) + ReportRowOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ReportRow.newBuilder() to construct. + private ReportRow(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ReportRow() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ReportRow(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ReportRow_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ReportRow_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ReportRow.class, + com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder.class); + } + + private int bitField0_; + public static final int PRODUCT_PERFORMANCE_VIEW_FIELD_NUMBER = 1; + private com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView + productPerformanceView_; + + /** + * + * + *
+   * Fields available for query in `product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1; + * + * + * @return Whether the productPerformanceView field is set. + */ + @java.lang.Override + public boolean hasProductPerformanceView() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Fields available for query in `product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1; + * + * + * @return The productPerformanceView. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView + getProductPerformanceView() { + return productPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.getDefaultInstance() + : productPerformanceView_; + } + + /** + * + * + *
+   * Fields available for query in `product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductPerformanceViewOrBuilder + getProductPerformanceViewOrBuilder() { + return productPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.getDefaultInstance() + : productPerformanceView_; + } + + public static final int NON_PRODUCT_PERFORMANCE_VIEW_FIELD_NUMBER = 7; + private com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView + nonProductPerformanceView_; + + /** + * + * + *
+   * Fields available for query in `non_product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7; + * + * + * @return Whether the nonProductPerformanceView field is set. + */ + @java.lang.Override + public boolean hasNonProductPerformanceView() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Fields available for query in `non_product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7; + * + * + * @return The nonProductPerformanceView. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView + getNonProductPerformanceView() { + return nonProductPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView + .getDefaultInstance() + : nonProductPerformanceView_; + } + + /** + * + * + *
+   * Fields available for query in `non_product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceViewOrBuilder + getNonProductPerformanceViewOrBuilder() { + return nonProductPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView + .getDefaultInstance() + : nonProductPerformanceView_; + } + + public static final int PRODUCT_VIEW_FIELD_NUMBER = 2; + private com.google.shopping.merchant.reports.v1alpha.ProductView productView_; + + /** + * + * + *
+   * Fields available for query in `product_view` table.
+   * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView product_view = 2; + * + * @return Whether the productView field is set. + */ + @java.lang.Override + public boolean hasProductView() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * Fields available for query in `product_view` table.
+   * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView product_view = 2; + * + * @return The productView. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductView getProductView() { + return productView_ == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.getDefaultInstance() + : productView_; + } + + /** + * + * + *
+   * Fields available for query in `product_view` table.
+   * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView product_view = 2; + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ProductViewOrBuilder + getProductViewOrBuilder() { + return productView_ == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.getDefaultInstance() + : productView_; + } + + public static final int PRICE_COMPETITIVENESS_PRODUCT_VIEW_FIELD_NUMBER = 3; + private com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + priceCompetitivenessProductView_; + + /** + * + * + *
+   * Fields available for query in `price_competitiveness_product_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3; + * + * + * @return Whether the priceCompetitivenessProductView field is set. + */ + @java.lang.Override + public boolean hasPriceCompetitivenessProductView() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * Fields available for query in `price_competitiveness_product_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3; + * + * + * @return The priceCompetitivenessProductView. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + getPriceCompetitivenessProductView() { + return priceCompetitivenessProductView_ == null + ? com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + .getDefaultInstance() + : priceCompetitivenessProductView_; + } + + /** + * + * + *
+   * Fields available for query in `price_competitiveness_product_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductViewOrBuilder + getPriceCompetitivenessProductViewOrBuilder() { + return priceCompetitivenessProductView_ == null + ? com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + .getDefaultInstance() + : priceCompetitivenessProductView_; + } + + public static final int PRICE_INSIGHTS_PRODUCT_VIEW_FIELD_NUMBER = 4; + private com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView + priceInsightsProductView_; + + /** + * + * + *
+   * Fields available for query in `price_insights_product_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4; + * + * + * @return Whether the priceInsightsProductView field is set. + */ + @java.lang.Override + public boolean hasPriceInsightsProductView() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * Fields available for query in `price_insights_product_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4; + * + * + * @return The priceInsightsProductView. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView + getPriceInsightsProductView() { + return priceInsightsProductView_ == null + ? com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.getDefaultInstance() + : priceInsightsProductView_; + } + + /** + * + * + *
+   * Fields available for query in `price_insights_product_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductViewOrBuilder + getPriceInsightsProductViewOrBuilder() { + return priceInsightsProductView_ == null + ? com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.getDefaultInstance() + : priceInsightsProductView_; + } + + public static final int BEST_SELLERS_PRODUCT_CLUSTER_VIEW_FIELD_NUMBER = 5; + private com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + bestSellersProductClusterView_; + + /** + * + * + *
+   * Fields available for query in `best_sellers_product_cluster_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5; + * + * + * @return Whether the bestSellersProductClusterView field is set. + */ + @java.lang.Override + public boolean hasBestSellersProductClusterView() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+   * Fields available for query in `best_sellers_product_cluster_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5; + * + * + * @return The bestSellersProductClusterView. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + getBestSellersProductClusterView() { + return bestSellersProductClusterView_ == null + ? com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + .getDefaultInstance() + : bestSellersProductClusterView_; + } + + /** + * + * + *
+   * Fields available for query in `best_sellers_product_cluster_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterViewOrBuilder + getBestSellersProductClusterViewOrBuilder() { + return bestSellersProductClusterView_ == null + ? com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + .getDefaultInstance() + : bestSellersProductClusterView_; + } + + public static final int BEST_SELLERS_BRAND_VIEW_FIELD_NUMBER = 6; + private com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView bestSellersBrandView_; + + /** + * + * + *
+   * Fields available for query in `best_sellers_brand_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6; + * + * + * @return Whether the bestSellersBrandView field is set. + */ + @java.lang.Override + public boolean hasBestSellersBrandView() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+   * Fields available for query in `best_sellers_brand_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6; + * + * + * @return The bestSellersBrandView. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView + getBestSellersBrandView() { + return bestSellersBrandView_ == null + ? com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.getDefaultInstance() + : bestSellersBrandView_; + } + + /** + * + * + *
+   * Fields available for query in `best_sellers_brand_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.BestSellersBrandViewOrBuilder + getBestSellersBrandViewOrBuilder() { + return bestSellersBrandView_ == null + ? com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.getDefaultInstance() + : bestSellersBrandView_; + } + + public static final int COMPETITIVE_VISIBILITY_COMPETITOR_VIEW_FIELD_NUMBER = 8; + private com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + competitiveVisibilityCompetitorView_; + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_competitor_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8; + * + * + * @return Whether the competitiveVisibilityCompetitorView field is set. + */ + @java.lang.Override + public boolean hasCompetitiveVisibilityCompetitorView() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_competitor_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8; + * + * + * @return The competitiveVisibilityCompetitorView. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + getCompetitiveVisibilityCompetitorView() { + return competitiveVisibilityCompetitorView_ == null + ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + .getDefaultInstance() + : competitiveVisibilityCompetitorView_; + } + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_competitor_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorViewOrBuilder + getCompetitiveVisibilityCompetitorViewOrBuilder() { + return competitiveVisibilityCompetitorView_ == null + ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + .getDefaultInstance() + : competitiveVisibilityCompetitorView_; + } + + public static final int COMPETITIVE_VISIBILITY_TOP_MERCHANT_VIEW_FIELD_NUMBER = 9; + private com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + competitiveVisibilityTopMerchantView_; + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_top_merchant_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9; + * + * + * @return Whether the competitiveVisibilityTopMerchantView field is set. + */ + @java.lang.Override + public boolean hasCompetitiveVisibilityTopMerchantView() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_top_merchant_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9; + * + * + * @return The competitiveVisibilityTopMerchantView. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + getCompetitiveVisibilityTopMerchantView() { + return competitiveVisibilityTopMerchantView_ == null + ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + .getDefaultInstance() + : competitiveVisibilityTopMerchantView_; + } + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_top_merchant_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantViewOrBuilder + getCompetitiveVisibilityTopMerchantViewOrBuilder() { + return competitiveVisibilityTopMerchantView_ == null + ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + .getDefaultInstance() + : competitiveVisibilityTopMerchantView_; + } + + public static final int COMPETITIVE_VISIBILITY_BENCHMARK_VIEW_FIELD_NUMBER = 10; + private com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + competitiveVisibilityBenchmarkView_; + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_benchmark_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10; + * + * + * @return Whether the competitiveVisibilityBenchmarkView field is set. + */ + @java.lang.Override + public boolean hasCompetitiveVisibilityBenchmarkView() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_benchmark_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10; + * + * + * @return The competitiveVisibilityBenchmarkView. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + getCompetitiveVisibilityBenchmarkView() { + return competitiveVisibilityBenchmarkView_ == null + ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + .getDefaultInstance() + : competitiveVisibilityBenchmarkView_; + } + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_benchmark_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkViewOrBuilder + getCompetitiveVisibilityBenchmarkViewOrBuilder() { + return competitiveVisibilityBenchmarkView_ == null + ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + .getDefaultInstance() + : competitiveVisibilityBenchmarkView_; + } + + public static final int YOUTUBE_CREATOR_PERFORMANCE_VIEW_FIELD_NUMBER = 11; + private com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + youtubeCreatorPerformanceView_; + + /** + * + * + *
+   * Fields available for query in `youtube_creator_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11; + * + * + * @return Whether the youtubeCreatorPerformanceView field is set. + */ + @java.lang.Override + public boolean hasYoutubeCreatorPerformanceView() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+   * Fields available for query in `youtube_creator_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11; + * + * + * @return The youtubeCreatorPerformanceView. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + getYoutubeCreatorPerformanceView() { + return youtubeCreatorPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + .getDefaultInstance() + : youtubeCreatorPerformanceView_; + } + + /** + * + * + *
+   * Fields available for query in `youtube_creator_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceViewOrBuilder + getYoutubeCreatorPerformanceViewOrBuilder() { + return youtubeCreatorPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + .getDefaultInstance() + : youtubeCreatorPerformanceView_; + } + + public static final int YOUTUBE_CONTENT_PERFORMANCE_VIEW_FIELD_NUMBER = 12; + private com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + youtubeContentPerformanceView_; + + /** + * + * + *
+   * Fields available for query in `youtube_content_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12; + * + * + * @return Whether the youtubeContentPerformanceView field is set. + */ + @java.lang.Override + public boolean hasYoutubeContentPerformanceView() { + return ((bitField0_ & 0x00000800) != 0); + } + + /** + * + * + *
+   * Fields available for query in `youtube_content_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12; + * + * + * @return The youtubeContentPerformanceView. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + getYoutubeContentPerformanceView() { + return youtubeContentPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + .getDefaultInstance() + : youtubeContentPerformanceView_; + } + + /** + * + * + *
+   * Fields available for query in `youtube_content_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceViewOrBuilder + getYoutubeContentPerformanceViewOrBuilder() { + return youtubeContentPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + .getDefaultInstance() + : youtubeContentPerformanceView_; + } + + public static final int YOUTUBE_PRODUCT_PERFORMANCE_VIEW_FIELD_NUMBER = 13; + private com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + youtubeProductPerformanceView_; + + /** + * + * + *
+   * Fields available for query in `youtube_product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13; + * + * + * @return Whether the youtubeProductPerformanceView field is set. + */ + @java.lang.Override + public boolean hasYoutubeProductPerformanceView() { + return ((bitField0_ & 0x00001000) != 0); + } + + /** + * + * + *
+   * Fields available for query in `youtube_product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13; + * + * + * @return The youtubeProductPerformanceView. + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + getYoutubeProductPerformanceView() { + return youtubeProductPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + .getDefaultInstance() + : youtubeProductPerformanceView_; + } + + /** + * + * + *
+   * Fields available for query in `youtube_product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13; + * + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceViewOrBuilder + getYoutubeProductPerformanceViewOrBuilder() { + return youtubeProductPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + .getDefaultInstance() + : youtubeProductPerformanceView_; + } + + 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 (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getProductPerformanceView()); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeMessage(2, getProductView()); + } + if (((bitField0_ & 0x00000008) != 0)) { + output.writeMessage(3, getPriceCompetitivenessProductView()); + } + if (((bitField0_ & 0x00000010) != 0)) { + output.writeMessage(4, getPriceInsightsProductView()); + } + if (((bitField0_ & 0x00000020) != 0)) { + output.writeMessage(5, getBestSellersProductClusterView()); + } + if (((bitField0_ & 0x00000040) != 0)) { + output.writeMessage(6, getBestSellersBrandView()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(7, getNonProductPerformanceView()); + } + if (((bitField0_ & 0x00000080) != 0)) { + output.writeMessage(8, getCompetitiveVisibilityCompetitorView()); + } + if (((bitField0_ & 0x00000100) != 0)) { + output.writeMessage(9, getCompetitiveVisibilityTopMerchantView()); + } + if (((bitField0_ & 0x00000200) != 0)) { + output.writeMessage(10, getCompetitiveVisibilityBenchmarkView()); + } + if (((bitField0_ & 0x00000400) != 0)) { + output.writeMessage(11, getYoutubeCreatorPerformanceView()); + } + if (((bitField0_ & 0x00000800) != 0)) { + output.writeMessage(12, getYoutubeContentPerformanceView()); + } + if (((bitField0_ & 0x00001000) != 0)) { + output.writeMessage(13, getYoutubeProductPerformanceView()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(1, getProductPerformanceView()); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getProductView()); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 3, getPriceCompetitivenessProductView()); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 4, getPriceInsightsProductView()); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 5, getBestSellersProductClusterView()); + } + if (((bitField0_ & 0x00000040) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(6, getBestSellersBrandView()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 7, getNonProductPerformanceView()); + } + if (((bitField0_ & 0x00000080) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 8, getCompetitiveVisibilityCompetitorView()); + } + if (((bitField0_ & 0x00000100) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 9, getCompetitiveVisibilityTopMerchantView()); + } + if (((bitField0_ & 0x00000200) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 10, getCompetitiveVisibilityBenchmarkView()); + } + if (((bitField0_ & 0x00000400) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 11, getYoutubeCreatorPerformanceView()); + } + if (((bitField0_ & 0x00000800) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 12, getYoutubeContentPerformanceView()); + } + if (((bitField0_ & 0x00001000) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 13, getYoutubeProductPerformanceView()); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.ReportRow)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.ReportRow other = + (com.google.shopping.merchant.reports.v1alpha.ReportRow) obj; + + if (hasProductPerformanceView() != other.hasProductPerformanceView()) return false; + if (hasProductPerformanceView()) { + if (!getProductPerformanceView().equals(other.getProductPerformanceView())) return false; + } + if (hasNonProductPerformanceView() != other.hasNonProductPerformanceView()) return false; + if (hasNonProductPerformanceView()) { + if (!getNonProductPerformanceView().equals(other.getNonProductPerformanceView())) + return false; + } + if (hasProductView() != other.hasProductView()) return false; + if (hasProductView()) { + if (!getProductView().equals(other.getProductView())) return false; + } + if (hasPriceCompetitivenessProductView() != other.hasPriceCompetitivenessProductView()) + return false; + if (hasPriceCompetitivenessProductView()) { + if (!getPriceCompetitivenessProductView().equals(other.getPriceCompetitivenessProductView())) + return false; + } + if (hasPriceInsightsProductView() != other.hasPriceInsightsProductView()) return false; + if (hasPriceInsightsProductView()) { + if (!getPriceInsightsProductView().equals(other.getPriceInsightsProductView())) return false; + } + if (hasBestSellersProductClusterView() != other.hasBestSellersProductClusterView()) + return false; + if (hasBestSellersProductClusterView()) { + if (!getBestSellersProductClusterView().equals(other.getBestSellersProductClusterView())) + return false; + } + if (hasBestSellersBrandView() != other.hasBestSellersBrandView()) return false; + if (hasBestSellersBrandView()) { + if (!getBestSellersBrandView().equals(other.getBestSellersBrandView())) return false; + } + if (hasCompetitiveVisibilityCompetitorView() != other.hasCompetitiveVisibilityCompetitorView()) + return false; + if (hasCompetitiveVisibilityCompetitorView()) { + if (!getCompetitiveVisibilityCompetitorView() + .equals(other.getCompetitiveVisibilityCompetitorView())) return false; + } + if (hasCompetitiveVisibilityTopMerchantView() + != other.hasCompetitiveVisibilityTopMerchantView()) return false; + if (hasCompetitiveVisibilityTopMerchantView()) { + if (!getCompetitiveVisibilityTopMerchantView() + .equals(other.getCompetitiveVisibilityTopMerchantView())) return false; + } + if (hasCompetitiveVisibilityBenchmarkView() != other.hasCompetitiveVisibilityBenchmarkView()) + return false; + if (hasCompetitiveVisibilityBenchmarkView()) { + if (!getCompetitiveVisibilityBenchmarkView() + .equals(other.getCompetitiveVisibilityBenchmarkView())) return false; + } + if (hasYoutubeCreatorPerformanceView() != other.hasYoutubeCreatorPerformanceView()) + return false; + if (hasYoutubeCreatorPerformanceView()) { + if (!getYoutubeCreatorPerformanceView().equals(other.getYoutubeCreatorPerformanceView())) + return false; + } + if (hasYoutubeContentPerformanceView() != other.hasYoutubeContentPerformanceView()) + return false; + if (hasYoutubeContentPerformanceView()) { + if (!getYoutubeContentPerformanceView().equals(other.getYoutubeContentPerformanceView())) + return false; + } + if (hasYoutubeProductPerformanceView() != other.hasYoutubeProductPerformanceView()) + return false; + if (hasYoutubeProductPerformanceView()) { + if (!getYoutubeProductPerformanceView().equals(other.getYoutubeProductPerformanceView())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasProductPerformanceView()) { + hash = (37 * hash) + PRODUCT_PERFORMANCE_VIEW_FIELD_NUMBER; + hash = (53 * hash) + getProductPerformanceView().hashCode(); + } + if (hasNonProductPerformanceView()) { + hash = (37 * hash) + NON_PRODUCT_PERFORMANCE_VIEW_FIELD_NUMBER; + hash = (53 * hash) + getNonProductPerformanceView().hashCode(); + } + if (hasProductView()) { + hash = (37 * hash) + PRODUCT_VIEW_FIELD_NUMBER; + hash = (53 * hash) + getProductView().hashCode(); + } + if (hasPriceCompetitivenessProductView()) { + hash = (37 * hash) + PRICE_COMPETITIVENESS_PRODUCT_VIEW_FIELD_NUMBER; + hash = (53 * hash) + getPriceCompetitivenessProductView().hashCode(); + } + if (hasPriceInsightsProductView()) { + hash = (37 * hash) + PRICE_INSIGHTS_PRODUCT_VIEW_FIELD_NUMBER; + hash = (53 * hash) + getPriceInsightsProductView().hashCode(); + } + if (hasBestSellersProductClusterView()) { + hash = (37 * hash) + BEST_SELLERS_PRODUCT_CLUSTER_VIEW_FIELD_NUMBER; + hash = (53 * hash) + getBestSellersProductClusterView().hashCode(); + } + if (hasBestSellersBrandView()) { + hash = (37 * hash) + BEST_SELLERS_BRAND_VIEW_FIELD_NUMBER; + hash = (53 * hash) + getBestSellersBrandView().hashCode(); + } + if (hasCompetitiveVisibilityCompetitorView()) { + hash = (37 * hash) + COMPETITIVE_VISIBILITY_COMPETITOR_VIEW_FIELD_NUMBER; + hash = (53 * hash) + getCompetitiveVisibilityCompetitorView().hashCode(); + } + if (hasCompetitiveVisibilityTopMerchantView()) { + hash = (37 * hash) + COMPETITIVE_VISIBILITY_TOP_MERCHANT_VIEW_FIELD_NUMBER; + hash = (53 * hash) + getCompetitiveVisibilityTopMerchantView().hashCode(); + } + if (hasCompetitiveVisibilityBenchmarkView()) { + hash = (37 * hash) + COMPETITIVE_VISIBILITY_BENCHMARK_VIEW_FIELD_NUMBER; + hash = (53 * hash) + getCompetitiveVisibilityBenchmarkView().hashCode(); + } + if (hasYoutubeCreatorPerformanceView()) { + hash = (37 * hash) + YOUTUBE_CREATOR_PERFORMANCE_VIEW_FIELD_NUMBER; + hash = (53 * hash) + getYoutubeCreatorPerformanceView().hashCode(); + } + if (hasYoutubeContentPerformanceView()) { + hash = (37 * hash) + YOUTUBE_CONTENT_PERFORMANCE_VIEW_FIELD_NUMBER; + hash = (53 * hash) + getYoutubeContentPerformanceView().hashCode(); + } + if (hasYoutubeProductPerformanceView()) { + hash = (37 * hash) + YOUTUBE_PRODUCT_PERFORMANCE_VIEW_FIELD_NUMBER; + hash = (53 * hash) + getYoutubeProductPerformanceView().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportRow parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportRow parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportRow parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportRow 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.shopping.merchant.reports.v1alpha.ReportRow parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportRow parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportRow parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportRow 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.shopping.merchant.reports.v1alpha.ReportRow parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportRow 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.shopping.merchant.reports.v1alpha.ReportRow parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportRow 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.shopping.merchant.reports.v1alpha.ReportRow 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; + } + + /** + * + * + *
+   * Result row returned from the search query.
+   *
+   * Only the message corresponding to the queried table is populated in the
+   * response. Within the populated message, only the fields requested explicitly
+   * in the query are populated.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ReportRow} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.ReportRow) + com.google.shopping.merchant.reports.v1alpha.ReportRowOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ReportRow_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ReportRow_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ReportRow.class, + com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder.class); + } + + // Construct using com.google.shopping.merchant.reports.v1alpha.ReportRow.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getProductPerformanceViewFieldBuilder(); + getNonProductPerformanceViewFieldBuilder(); + getProductViewFieldBuilder(); + getPriceCompetitivenessProductViewFieldBuilder(); + getPriceInsightsProductViewFieldBuilder(); + getBestSellersProductClusterViewFieldBuilder(); + getBestSellersBrandViewFieldBuilder(); + getCompetitiveVisibilityCompetitorViewFieldBuilder(); + getCompetitiveVisibilityTopMerchantViewFieldBuilder(); + getCompetitiveVisibilityBenchmarkViewFieldBuilder(); + getYoutubeCreatorPerformanceViewFieldBuilder(); + getYoutubeContentPerformanceViewFieldBuilder(); + getYoutubeProductPerformanceViewFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + productPerformanceView_ = null; + if (productPerformanceViewBuilder_ != null) { + productPerformanceViewBuilder_.dispose(); + productPerformanceViewBuilder_ = null; + } + nonProductPerformanceView_ = null; + if (nonProductPerformanceViewBuilder_ != null) { + nonProductPerformanceViewBuilder_.dispose(); + nonProductPerformanceViewBuilder_ = null; + } + productView_ = null; + if (productViewBuilder_ != null) { + productViewBuilder_.dispose(); + productViewBuilder_ = null; + } + priceCompetitivenessProductView_ = null; + if (priceCompetitivenessProductViewBuilder_ != null) { + priceCompetitivenessProductViewBuilder_.dispose(); + priceCompetitivenessProductViewBuilder_ = null; + } + priceInsightsProductView_ = null; + if (priceInsightsProductViewBuilder_ != null) { + priceInsightsProductViewBuilder_.dispose(); + priceInsightsProductViewBuilder_ = null; + } + bestSellersProductClusterView_ = null; + if (bestSellersProductClusterViewBuilder_ != null) { + bestSellersProductClusterViewBuilder_.dispose(); + bestSellersProductClusterViewBuilder_ = null; + } + bestSellersBrandView_ = null; + if (bestSellersBrandViewBuilder_ != null) { + bestSellersBrandViewBuilder_.dispose(); + bestSellersBrandViewBuilder_ = null; + } + competitiveVisibilityCompetitorView_ = null; + if (competitiveVisibilityCompetitorViewBuilder_ != null) { + competitiveVisibilityCompetitorViewBuilder_.dispose(); + competitiveVisibilityCompetitorViewBuilder_ = null; + } + competitiveVisibilityTopMerchantView_ = null; + if (competitiveVisibilityTopMerchantViewBuilder_ != null) { + competitiveVisibilityTopMerchantViewBuilder_.dispose(); + competitiveVisibilityTopMerchantViewBuilder_ = null; + } + competitiveVisibilityBenchmarkView_ = null; + if (competitiveVisibilityBenchmarkViewBuilder_ != null) { + competitiveVisibilityBenchmarkViewBuilder_.dispose(); + competitiveVisibilityBenchmarkViewBuilder_ = null; + } + youtubeCreatorPerformanceView_ = null; + if (youtubeCreatorPerformanceViewBuilder_ != null) { + youtubeCreatorPerformanceViewBuilder_.dispose(); + youtubeCreatorPerformanceViewBuilder_ = null; + } + youtubeContentPerformanceView_ = null; + if (youtubeContentPerformanceViewBuilder_ != null) { + youtubeContentPerformanceViewBuilder_.dispose(); + youtubeContentPerformanceViewBuilder_ = null; + } + youtubeProductPerformanceView_ = null; + if (youtubeProductPerformanceViewBuilder_ != null) { + youtubeProductPerformanceViewBuilder_.dispose(); + youtubeProductPerformanceViewBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ReportRow_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ReportRow getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportRow.getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ReportRow build() { + com.google.shopping.merchant.reports.v1alpha.ReportRow result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ReportRow buildPartial() { + com.google.shopping.merchant.reports.v1alpha.ReportRow result = + new com.google.shopping.merchant.reports.v1alpha.ReportRow(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.shopping.merchant.reports.v1alpha.ReportRow result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.productPerformanceView_ = + productPerformanceViewBuilder_ == null + ? productPerformanceView_ + : productPerformanceViewBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.nonProductPerformanceView_ = + nonProductPerformanceViewBuilder_ == null + ? nonProductPerformanceView_ + : nonProductPerformanceViewBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.productView_ = + productViewBuilder_ == null ? productView_ : productViewBuilder_.build(); + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.priceCompetitivenessProductView_ = + priceCompetitivenessProductViewBuilder_ == null + ? priceCompetitivenessProductView_ + : priceCompetitivenessProductViewBuilder_.build(); + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.priceInsightsProductView_ = + priceInsightsProductViewBuilder_ == null + ? priceInsightsProductView_ + : priceInsightsProductViewBuilder_.build(); + to_bitField0_ |= 0x00000010; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.bestSellersProductClusterView_ = + bestSellersProductClusterViewBuilder_ == null + ? bestSellersProductClusterView_ + : bestSellersProductClusterViewBuilder_.build(); + to_bitField0_ |= 0x00000020; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.bestSellersBrandView_ = + bestSellersBrandViewBuilder_ == null + ? bestSellersBrandView_ + : bestSellersBrandViewBuilder_.build(); + to_bitField0_ |= 0x00000040; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.competitiveVisibilityCompetitorView_ = + competitiveVisibilityCompetitorViewBuilder_ == null + ? competitiveVisibilityCompetitorView_ + : competitiveVisibilityCompetitorViewBuilder_.build(); + to_bitField0_ |= 0x00000080; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.competitiveVisibilityTopMerchantView_ = + competitiveVisibilityTopMerchantViewBuilder_ == null + ? competitiveVisibilityTopMerchantView_ + : competitiveVisibilityTopMerchantViewBuilder_.build(); + to_bitField0_ |= 0x00000100; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.competitiveVisibilityBenchmarkView_ = + competitiveVisibilityBenchmarkViewBuilder_ == null + ? competitiveVisibilityBenchmarkView_ + : competitiveVisibilityBenchmarkViewBuilder_.build(); + to_bitField0_ |= 0x00000200; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.youtubeCreatorPerformanceView_ = + youtubeCreatorPerformanceViewBuilder_ == null + ? youtubeCreatorPerformanceView_ + : youtubeCreatorPerformanceViewBuilder_.build(); + to_bitField0_ |= 0x00000400; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.youtubeContentPerformanceView_ = + youtubeContentPerformanceViewBuilder_ == null + ? youtubeContentPerformanceView_ + : youtubeContentPerformanceViewBuilder_.build(); + to_bitField0_ |= 0x00000800; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.youtubeProductPerformanceView_ = + youtubeProductPerformanceViewBuilder_ == null + ? youtubeProductPerformanceView_ + : youtubeProductPerformanceViewBuilder_.build(); + to_bitField0_ |= 0x00001000; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.ReportRow) { + return mergeFrom((com.google.shopping.merchant.reports.v1alpha.ReportRow) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.shopping.merchant.reports.v1alpha.ReportRow other) { + if (other == com.google.shopping.merchant.reports.v1alpha.ReportRow.getDefaultInstance()) + return this; + if (other.hasProductPerformanceView()) { + mergeProductPerformanceView(other.getProductPerformanceView()); + } + if (other.hasNonProductPerformanceView()) { + mergeNonProductPerformanceView(other.getNonProductPerformanceView()); + } + if (other.hasProductView()) { + mergeProductView(other.getProductView()); + } + if (other.hasPriceCompetitivenessProductView()) { + mergePriceCompetitivenessProductView(other.getPriceCompetitivenessProductView()); + } + if (other.hasPriceInsightsProductView()) { + mergePriceInsightsProductView(other.getPriceInsightsProductView()); + } + if (other.hasBestSellersProductClusterView()) { + mergeBestSellersProductClusterView(other.getBestSellersProductClusterView()); + } + if (other.hasBestSellersBrandView()) { + mergeBestSellersBrandView(other.getBestSellersBrandView()); + } + if (other.hasCompetitiveVisibilityCompetitorView()) { + mergeCompetitiveVisibilityCompetitorView(other.getCompetitiveVisibilityCompetitorView()); + } + if (other.hasCompetitiveVisibilityTopMerchantView()) { + mergeCompetitiveVisibilityTopMerchantView(other.getCompetitiveVisibilityTopMerchantView()); + } + if (other.hasCompetitiveVisibilityBenchmarkView()) { + mergeCompetitiveVisibilityBenchmarkView(other.getCompetitiveVisibilityBenchmarkView()); + } + if (other.hasYoutubeCreatorPerformanceView()) { + mergeYoutubeCreatorPerformanceView(other.getYoutubeCreatorPerformanceView()); + } + if (other.hasYoutubeContentPerformanceView()) { + mergeYoutubeContentPerformanceView(other.getYoutubeContentPerformanceView()); + } + if (other.hasYoutubeProductPerformanceView()) { + mergeYoutubeProductPerformanceView(other.getYoutubeProductPerformanceView()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage( + getProductPerformanceViewFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + input.readMessage(getProductViewFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000004; + break; + } // case 18 + case 26: + { + input.readMessage( + getPriceCompetitivenessProductViewFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000008; + break; + } // case 26 + case 34: + { + input.readMessage( + getPriceInsightsProductViewFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000010; + break; + } // case 34 + case 42: + { + input.readMessage( + getBestSellersProductClusterViewFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000020; + break; + } // case 42 + case 50: + { + input.readMessage( + getBestSellersBrandViewFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000040; + break; + } // case 50 + case 58: + { + input.readMessage( + getNonProductPerformanceViewFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 58 + case 66: + { + input.readMessage( + getCompetitiveVisibilityCompetitorViewFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000080; + break; + } // case 66 + case 74: + { + input.readMessage( + getCompetitiveVisibilityTopMerchantViewFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000100; + break; + } // case 74 + case 82: + { + input.readMessage( + getCompetitiveVisibilityBenchmarkViewFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000200; + break; + } // case 82 + case 90: + { + input.readMessage( + getYoutubeCreatorPerformanceViewFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000400; + break; + } // case 90 + case 98: + { + input.readMessage( + getYoutubeContentPerformanceViewFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000800; + break; + } // case 98 + case 106: + { + input.readMessage( + getYoutubeProductPerformanceViewFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00001000; + break; + } // case 106 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView + productPerformanceView_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView, + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.Builder, + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceViewOrBuilder> + productPerformanceViewBuilder_; + + /** + * + * + *
+     * Fields available for query in `product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1; + * + * + * @return Whether the productPerformanceView field is set. + */ + public boolean hasProductPerformanceView() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Fields available for query in `product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1; + * + * + * @return The productPerformanceView. + */ + public com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView + getProductPerformanceView() { + if (productPerformanceViewBuilder_ == null) { + return productPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView + .getDefaultInstance() + : productPerformanceView_; + } else { + return productPerformanceViewBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Fields available for query in `product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1; + * + */ + public Builder setProductPerformanceView( + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView value) { + if (productPerformanceViewBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + productPerformanceView_ = value; + } else { + productPerformanceViewBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1; + * + */ + public Builder setProductPerformanceView( + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.Builder + builderForValue) { + if (productPerformanceViewBuilder_ == null) { + productPerformanceView_ = builderForValue.build(); + } else { + productPerformanceViewBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1; + * + */ + public Builder mergeProductPerformanceView( + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView value) { + if (productPerformanceViewBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && productPerformanceView_ != null + && productPerformanceView_ + != com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView + .getDefaultInstance()) { + getProductPerformanceViewBuilder().mergeFrom(value); + } else { + productPerformanceView_ = value; + } + } else { + productPerformanceViewBuilder_.mergeFrom(value); + } + if (productPerformanceView_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Fields available for query in `product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1; + * + */ + public Builder clearProductPerformanceView() { + bitField0_ = (bitField0_ & ~0x00000001); + productPerformanceView_ = null; + if (productPerformanceViewBuilder_ != null) { + productPerformanceViewBuilder_.dispose(); + productPerformanceViewBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1; + * + */ + public com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.Builder + getProductPerformanceViewBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getProductPerformanceViewFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Fields available for query in `product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1; + * + */ + public com.google.shopping.merchant.reports.v1alpha.ProductPerformanceViewOrBuilder + getProductPerformanceViewOrBuilder() { + if (productPerformanceViewBuilder_ != null) { + return productPerformanceViewBuilder_.getMessageOrBuilder(); + } else { + return productPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView + .getDefaultInstance() + : productPerformanceView_; + } + } + + /** + * + * + *
+     * Fields available for query in `product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView, + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.Builder, + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceViewOrBuilder> + getProductPerformanceViewFieldBuilder() { + if (productPerformanceViewBuilder_ == null) { + productPerformanceViewBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView, + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.Builder, + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceViewOrBuilder>( + getProductPerformanceView(), getParentForChildren(), isClean()); + productPerformanceView_ = null; + } + return productPerformanceViewBuilder_; + } + + private com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView + nonProductPerformanceView_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView, + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView.Builder, + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceViewOrBuilder> + nonProductPerformanceViewBuilder_; + + /** + * + * + *
+     * Fields available for query in `non_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7; + * + * + * @return Whether the nonProductPerformanceView field is set. + */ + public boolean hasNonProductPerformanceView() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Fields available for query in `non_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7; + * + * + * @return The nonProductPerformanceView. + */ + public com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView + getNonProductPerformanceView() { + if (nonProductPerformanceViewBuilder_ == null) { + return nonProductPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView + .getDefaultInstance() + : nonProductPerformanceView_; + } else { + return nonProductPerformanceViewBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Fields available for query in `non_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7; + * + */ + public Builder setNonProductPerformanceView( + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView value) { + if (nonProductPerformanceViewBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + nonProductPerformanceView_ = value; + } else { + nonProductPerformanceViewBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `non_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7; + * + */ + public Builder setNonProductPerformanceView( + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView.Builder + builderForValue) { + if (nonProductPerformanceViewBuilder_ == null) { + nonProductPerformanceView_ = builderForValue.build(); + } else { + nonProductPerformanceViewBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `non_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7; + * + */ + public Builder mergeNonProductPerformanceView( + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView value) { + if (nonProductPerformanceViewBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) + && nonProductPerformanceView_ != null + && nonProductPerformanceView_ + != com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView + .getDefaultInstance()) { + getNonProductPerformanceViewBuilder().mergeFrom(value); + } else { + nonProductPerformanceView_ = value; + } + } else { + nonProductPerformanceViewBuilder_.mergeFrom(value); + } + if (nonProductPerformanceView_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Fields available for query in `non_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7; + * + */ + public Builder clearNonProductPerformanceView() { + bitField0_ = (bitField0_ & ~0x00000002); + nonProductPerformanceView_ = null; + if (nonProductPerformanceViewBuilder_ != null) { + nonProductPerformanceViewBuilder_.dispose(); + nonProductPerformanceViewBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `non_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7; + * + */ + public com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView.Builder + getNonProductPerformanceViewBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getNonProductPerformanceViewFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Fields available for query in `non_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7; + * + */ + public com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceViewOrBuilder + getNonProductPerformanceViewOrBuilder() { + if (nonProductPerformanceViewBuilder_ != null) { + return nonProductPerformanceViewBuilder_.getMessageOrBuilder(); + } else { + return nonProductPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView + .getDefaultInstance() + : nonProductPerformanceView_; + } + } + + /** + * + * + *
+     * Fields available for query in `non_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView, + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView.Builder, + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceViewOrBuilder> + getNonProductPerformanceViewFieldBuilder() { + if (nonProductPerformanceViewBuilder_ == null) { + nonProductPerformanceViewBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView, + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView.Builder, + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceViewOrBuilder>( + getNonProductPerformanceView(), getParentForChildren(), isClean()); + nonProductPerformanceView_ = null; + } + return nonProductPerformanceViewBuilder_; + } + + private com.google.shopping.merchant.reports.v1alpha.ProductView productView_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductView, + com.google.shopping.merchant.reports.v1alpha.ProductView.Builder, + com.google.shopping.merchant.reports.v1alpha.ProductViewOrBuilder> + productViewBuilder_; + + /** + * + * + *
+     * Fields available for query in `product_view` table.
+     * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView product_view = 2; + * + * @return Whether the productView field is set. + */ + public boolean hasProductView() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * Fields available for query in `product_view` table.
+     * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView product_view = 2; + * + * @return The productView. + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView getProductView() { + if (productViewBuilder_ == null) { + return productView_ == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.getDefaultInstance() + : productView_; + } else { + return productViewBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Fields available for query in `product_view` table.
+     * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView product_view = 2; + */ + public Builder setProductView(com.google.shopping.merchant.reports.v1alpha.ProductView value) { + if (productViewBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + productView_ = value; + } else { + productViewBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `product_view` table.
+     * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView product_view = 2; + */ + public Builder setProductView( + com.google.shopping.merchant.reports.v1alpha.ProductView.Builder builderForValue) { + if (productViewBuilder_ == null) { + productView_ = builderForValue.build(); + } else { + productViewBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `product_view` table.
+     * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView product_view = 2; + */ + public Builder mergeProductView( + com.google.shopping.merchant.reports.v1alpha.ProductView value) { + if (productViewBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) + && productView_ != null + && productView_ + != com.google.shopping.merchant.reports.v1alpha.ProductView.getDefaultInstance()) { + getProductViewBuilder().mergeFrom(value); + } else { + productView_ = value; + } + } else { + productViewBuilder_.mergeFrom(value); + } + if (productView_ != null) { + bitField0_ |= 0x00000004; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Fields available for query in `product_view` table.
+     * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView product_view = 2; + */ + public Builder clearProductView() { + bitField0_ = (bitField0_ & ~0x00000004); + productView_ = null; + if (productViewBuilder_ != null) { + productViewBuilder_.dispose(); + productViewBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `product_view` table.
+     * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView product_view = 2; + */ + public com.google.shopping.merchant.reports.v1alpha.ProductView.Builder + getProductViewBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getProductViewFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Fields available for query in `product_view` table.
+     * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView product_view = 2; + */ + public com.google.shopping.merchant.reports.v1alpha.ProductViewOrBuilder + getProductViewOrBuilder() { + if (productViewBuilder_ != null) { + return productViewBuilder_.getMessageOrBuilder(); + } else { + return productView_ == null + ? com.google.shopping.merchant.reports.v1alpha.ProductView.getDefaultInstance() + : productView_; + } + } + + /** + * + * + *
+     * Fields available for query in `product_view` table.
+     * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView product_view = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductView, + com.google.shopping.merchant.reports.v1alpha.ProductView.Builder, + com.google.shopping.merchant.reports.v1alpha.ProductViewOrBuilder> + getProductViewFieldBuilder() { + if (productViewBuilder_ == null) { + productViewBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ProductView, + com.google.shopping.merchant.reports.v1alpha.ProductView.Builder, + com.google.shopping.merchant.reports.v1alpha.ProductViewOrBuilder>( + getProductView(), getParentForChildren(), isClean()); + productView_ = null; + } + return productViewBuilder_; + } + + private com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + priceCompetitivenessProductView_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView, + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView.Builder, + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductViewOrBuilder> + priceCompetitivenessProductViewBuilder_; + + /** + * + * + *
+     * Fields available for query in `price_competitiveness_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3; + * + * + * @return Whether the priceCompetitivenessProductView field is set. + */ + public boolean hasPriceCompetitivenessProductView() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Fields available for query in `price_competitiveness_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3; + * + * + * @return The priceCompetitivenessProductView. + */ + public com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + getPriceCompetitivenessProductView() { + if (priceCompetitivenessProductViewBuilder_ == null) { + return priceCompetitivenessProductView_ == null + ? com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + .getDefaultInstance() + : priceCompetitivenessProductView_; + } else { + return priceCompetitivenessProductViewBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Fields available for query in `price_competitiveness_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3; + * + */ + public Builder setPriceCompetitivenessProductView( + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView value) { + if (priceCompetitivenessProductViewBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + priceCompetitivenessProductView_ = value; + } else { + priceCompetitivenessProductViewBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `price_competitiveness_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3; + * + */ + public Builder setPriceCompetitivenessProductView( + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView.Builder + builderForValue) { + if (priceCompetitivenessProductViewBuilder_ == null) { + priceCompetitivenessProductView_ = builderForValue.build(); + } else { + priceCompetitivenessProductViewBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `price_competitiveness_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3; + * + */ + public Builder mergePriceCompetitivenessProductView( + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView value) { + if (priceCompetitivenessProductViewBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) + && priceCompetitivenessProductView_ != null + && priceCompetitivenessProductView_ + != com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + .getDefaultInstance()) { + getPriceCompetitivenessProductViewBuilder().mergeFrom(value); + } else { + priceCompetitivenessProductView_ = value; + } + } else { + priceCompetitivenessProductViewBuilder_.mergeFrom(value); + } + if (priceCompetitivenessProductView_ != null) { + bitField0_ |= 0x00000008; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Fields available for query in `price_competitiveness_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3; + * + */ + public Builder clearPriceCompetitivenessProductView() { + bitField0_ = (bitField0_ & ~0x00000008); + priceCompetitivenessProductView_ = null; + if (priceCompetitivenessProductViewBuilder_ != null) { + priceCompetitivenessProductViewBuilder_.dispose(); + priceCompetitivenessProductViewBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `price_competitiveness_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3; + * + */ + public com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView.Builder + getPriceCompetitivenessProductViewBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getPriceCompetitivenessProductViewFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Fields available for query in `price_competitiveness_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3; + * + */ + public com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductViewOrBuilder + getPriceCompetitivenessProductViewOrBuilder() { + if (priceCompetitivenessProductViewBuilder_ != null) { + return priceCompetitivenessProductViewBuilder_.getMessageOrBuilder(); + } else { + return priceCompetitivenessProductView_ == null + ? com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + .getDefaultInstance() + : priceCompetitivenessProductView_; + } + } + + /** + * + * + *
+     * Fields available for query in `price_competitiveness_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView, + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView.Builder, + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductViewOrBuilder> + getPriceCompetitivenessProductViewFieldBuilder() { + if (priceCompetitivenessProductViewBuilder_ == null) { + priceCompetitivenessProductViewBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView, + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + .Builder, + com.google.shopping.merchant.reports.v1alpha + .PriceCompetitivenessProductViewOrBuilder>( + getPriceCompetitivenessProductView(), getParentForChildren(), isClean()); + priceCompetitivenessProductView_ = null; + } + return priceCompetitivenessProductViewBuilder_; + } + + private com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView + priceInsightsProductView_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView, + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Builder, + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductViewOrBuilder> + priceInsightsProductViewBuilder_; + + /** + * + * + *
+     * Fields available for query in `price_insights_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4; + * + * + * @return Whether the priceInsightsProductView field is set. + */ + public boolean hasPriceInsightsProductView() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * Fields available for query in `price_insights_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4; + * + * + * @return The priceInsightsProductView. + */ + public com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView + getPriceInsightsProductView() { + if (priceInsightsProductViewBuilder_ == null) { + return priceInsightsProductView_ == null + ? com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView + .getDefaultInstance() + : priceInsightsProductView_; + } else { + return priceInsightsProductViewBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Fields available for query in `price_insights_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4; + * + */ + public Builder setPriceInsightsProductView( + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView value) { + if (priceInsightsProductViewBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + priceInsightsProductView_ = value; + } else { + priceInsightsProductViewBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `price_insights_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4; + * + */ + public Builder setPriceInsightsProductView( + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Builder + builderForValue) { + if (priceInsightsProductViewBuilder_ == null) { + priceInsightsProductView_ = builderForValue.build(); + } else { + priceInsightsProductViewBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `price_insights_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4; + * + */ + public Builder mergePriceInsightsProductView( + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView value) { + if (priceInsightsProductViewBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) + && priceInsightsProductView_ != null + && priceInsightsProductView_ + != com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView + .getDefaultInstance()) { + getPriceInsightsProductViewBuilder().mergeFrom(value); + } else { + priceInsightsProductView_ = value; + } + } else { + priceInsightsProductViewBuilder_.mergeFrom(value); + } + if (priceInsightsProductView_ != null) { + bitField0_ |= 0x00000010; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Fields available for query in `price_insights_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4; + * + */ + public Builder clearPriceInsightsProductView() { + bitField0_ = (bitField0_ & ~0x00000010); + priceInsightsProductView_ = null; + if (priceInsightsProductViewBuilder_ != null) { + priceInsightsProductViewBuilder_.dispose(); + priceInsightsProductViewBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `price_insights_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4; + * + */ + public com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Builder + getPriceInsightsProductViewBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getPriceInsightsProductViewFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Fields available for query in `price_insights_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4; + * + */ + public com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductViewOrBuilder + getPriceInsightsProductViewOrBuilder() { + if (priceInsightsProductViewBuilder_ != null) { + return priceInsightsProductViewBuilder_.getMessageOrBuilder(); + } else { + return priceInsightsProductView_ == null + ? com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView + .getDefaultInstance() + : priceInsightsProductView_; + } + } + + /** + * + * + *
+     * Fields available for query in `price_insights_product_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView, + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Builder, + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductViewOrBuilder> + getPriceInsightsProductViewFieldBuilder() { + if (priceInsightsProductViewBuilder_ == null) { + priceInsightsProductViewBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView, + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Builder, + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductViewOrBuilder>( + getPriceInsightsProductView(), getParentForChildren(), isClean()); + priceInsightsProductView_ = null; + } + return priceInsightsProductViewBuilder_; + } + + private com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + bestSellersProductClusterView_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView, + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.Builder, + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterViewOrBuilder> + bestSellersProductClusterViewBuilder_; + + /** + * + * + *
+     * Fields available for query in `best_sellers_product_cluster_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5; + * + * + * @return Whether the bestSellersProductClusterView field is set. + */ + public boolean hasBestSellersProductClusterView() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * Fields available for query in `best_sellers_product_cluster_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5; + * + * + * @return The bestSellersProductClusterView. + */ + public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + getBestSellersProductClusterView() { + if (bestSellersProductClusterViewBuilder_ == null) { + return bestSellersProductClusterView_ == null + ? com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + .getDefaultInstance() + : bestSellersProductClusterView_; + } else { + return bestSellersProductClusterViewBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Fields available for query in `best_sellers_product_cluster_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5; + * + */ + public Builder setBestSellersProductClusterView( + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView value) { + if (bestSellersProductClusterViewBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + bestSellersProductClusterView_ = value; + } else { + bestSellersProductClusterViewBuilder_.setMessage(value); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `best_sellers_product_cluster_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5; + * + */ + public Builder setBestSellersProductClusterView( + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.Builder + builderForValue) { + if (bestSellersProductClusterViewBuilder_ == null) { + bestSellersProductClusterView_ = builderForValue.build(); + } else { + bestSellersProductClusterViewBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `best_sellers_product_cluster_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5; + * + */ + public Builder mergeBestSellersProductClusterView( + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView value) { + if (bestSellersProductClusterViewBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0) + && bestSellersProductClusterView_ != null + && bestSellersProductClusterView_ + != com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + .getDefaultInstance()) { + getBestSellersProductClusterViewBuilder().mergeFrom(value); + } else { + bestSellersProductClusterView_ = value; + } + } else { + bestSellersProductClusterViewBuilder_.mergeFrom(value); + } + if (bestSellersProductClusterView_ != null) { + bitField0_ |= 0x00000020; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Fields available for query in `best_sellers_product_cluster_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5; + * + */ + public Builder clearBestSellersProductClusterView() { + bitField0_ = (bitField0_ & ~0x00000020); + bestSellersProductClusterView_ = null; + if (bestSellersProductClusterViewBuilder_ != null) { + bestSellersProductClusterViewBuilder_.dispose(); + bestSellersProductClusterViewBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `best_sellers_product_cluster_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5; + * + */ + public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.Builder + getBestSellersProductClusterViewBuilder() { + bitField0_ |= 0x00000020; + onChanged(); + return getBestSellersProductClusterViewFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Fields available for query in `best_sellers_product_cluster_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5; + * + */ + public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterViewOrBuilder + getBestSellersProductClusterViewOrBuilder() { + if (bestSellersProductClusterViewBuilder_ != null) { + return bestSellersProductClusterViewBuilder_.getMessageOrBuilder(); + } else { + return bestSellersProductClusterView_ == null + ? com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + .getDefaultInstance() + : bestSellersProductClusterView_; + } + } + + /** + * + * + *
+     * Fields available for query in `best_sellers_product_cluster_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView, + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.Builder, + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterViewOrBuilder> + getBestSellersProductClusterViewFieldBuilder() { + if (bestSellersProductClusterViewBuilder_ == null) { + bestSellersProductClusterViewBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView, + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.Builder, + com.google.shopping.merchant.reports.v1alpha + .BestSellersProductClusterViewOrBuilder>( + getBestSellersProductClusterView(), getParentForChildren(), isClean()); + bestSellersProductClusterView_ = null; + } + return bestSellersProductClusterViewBuilder_; + } + + private com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView bestSellersBrandView_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView, + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.Builder, + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandViewOrBuilder> + bestSellersBrandViewBuilder_; + + /** + * + * + *
+     * Fields available for query in `best_sellers_brand_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6; + * + * + * @return Whether the bestSellersBrandView field is set. + */ + public boolean hasBestSellersBrandView() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+     * Fields available for query in `best_sellers_brand_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6; + * + * + * @return The bestSellersBrandView. + */ + public com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView + getBestSellersBrandView() { + if (bestSellersBrandViewBuilder_ == null) { + return bestSellersBrandView_ == null + ? com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.getDefaultInstance() + : bestSellersBrandView_; + } else { + return bestSellersBrandViewBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Fields available for query in `best_sellers_brand_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6; + * + */ + public Builder setBestSellersBrandView( + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView value) { + if (bestSellersBrandViewBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + bestSellersBrandView_ = value; + } else { + bestSellersBrandViewBuilder_.setMessage(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `best_sellers_brand_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6; + * + */ + public Builder setBestSellersBrandView( + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.Builder builderForValue) { + if (bestSellersBrandViewBuilder_ == null) { + bestSellersBrandView_ = builderForValue.build(); + } else { + bestSellersBrandViewBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `best_sellers_brand_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6; + * + */ + public Builder mergeBestSellersBrandView( + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView value) { + if (bestSellersBrandViewBuilder_ == null) { + if (((bitField0_ & 0x00000040) != 0) + && bestSellersBrandView_ != null + && bestSellersBrandView_ + != com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView + .getDefaultInstance()) { + getBestSellersBrandViewBuilder().mergeFrom(value); + } else { + bestSellersBrandView_ = value; + } + } else { + bestSellersBrandViewBuilder_.mergeFrom(value); + } + if (bestSellersBrandView_ != null) { + bitField0_ |= 0x00000040; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Fields available for query in `best_sellers_brand_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6; + * + */ + public Builder clearBestSellersBrandView() { + bitField0_ = (bitField0_ & ~0x00000040); + bestSellersBrandView_ = null; + if (bestSellersBrandViewBuilder_ != null) { + bestSellersBrandViewBuilder_.dispose(); + bestSellersBrandViewBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `best_sellers_brand_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6; + * + */ + public com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.Builder + getBestSellersBrandViewBuilder() { + bitField0_ |= 0x00000040; + onChanged(); + return getBestSellersBrandViewFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Fields available for query in `best_sellers_brand_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6; + * + */ + public com.google.shopping.merchant.reports.v1alpha.BestSellersBrandViewOrBuilder + getBestSellersBrandViewOrBuilder() { + if (bestSellersBrandViewBuilder_ != null) { + return bestSellersBrandViewBuilder_.getMessageOrBuilder(); + } else { + return bestSellersBrandView_ == null + ? com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.getDefaultInstance() + : bestSellersBrandView_; + } + } + + /** + * + * + *
+     * Fields available for query in `best_sellers_brand_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView, + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.Builder, + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandViewOrBuilder> + getBestSellersBrandViewFieldBuilder() { + if (bestSellersBrandViewBuilder_ == null) { + bestSellersBrandViewBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView, + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.Builder, + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandViewOrBuilder>( + getBestSellersBrandView(), getParentForChildren(), isClean()); + bestSellersBrandView_ = null; + } + return bestSellersBrandViewBuilder_; + } + + private com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + competitiveVisibilityCompetitorView_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + .Builder, + com.google.shopping.merchant.reports.v1alpha + .CompetitiveVisibilityCompetitorViewOrBuilder> + competitiveVisibilityCompetitorViewBuilder_; + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_competitor_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8; + * + * + * @return Whether the competitiveVisibilityCompetitorView field is set. + */ + public boolean hasCompetitiveVisibilityCompetitorView() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_competitor_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8; + * + * + * @return The competitiveVisibilityCompetitorView. + */ + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + getCompetitiveVisibilityCompetitorView() { + if (competitiveVisibilityCompetitorViewBuilder_ == null) { + return competitiveVisibilityCompetitorView_ == null + ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + .getDefaultInstance() + : competitiveVisibilityCompetitorView_; + } else { + return competitiveVisibilityCompetitorViewBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_competitor_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8; + * + */ + public Builder setCompetitiveVisibilityCompetitorView( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView value) { + if (competitiveVisibilityCompetitorViewBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + competitiveVisibilityCompetitorView_ = value; + } else { + competitiveVisibilityCompetitorViewBuilder_.setMessage(value); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_competitor_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8; + * + */ + public Builder setCompetitiveVisibilityCompetitorView( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView.Builder + builderForValue) { + if (competitiveVisibilityCompetitorViewBuilder_ == null) { + competitiveVisibilityCompetitorView_ = builderForValue.build(); + } else { + competitiveVisibilityCompetitorViewBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_competitor_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8; + * + */ + public Builder mergeCompetitiveVisibilityCompetitorView( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView value) { + if (competitiveVisibilityCompetitorViewBuilder_ == null) { + if (((bitField0_ & 0x00000080) != 0) + && competitiveVisibilityCompetitorView_ != null + && competitiveVisibilityCompetitorView_ + != com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + .getDefaultInstance()) { + getCompetitiveVisibilityCompetitorViewBuilder().mergeFrom(value); + } else { + competitiveVisibilityCompetitorView_ = value; + } + } else { + competitiveVisibilityCompetitorViewBuilder_.mergeFrom(value); + } + if (competitiveVisibilityCompetitorView_ != null) { + bitField0_ |= 0x00000080; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_competitor_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8; + * + */ + public Builder clearCompetitiveVisibilityCompetitorView() { + bitField0_ = (bitField0_ & ~0x00000080); + competitiveVisibilityCompetitorView_ = null; + if (competitiveVisibilityCompetitorViewBuilder_ != null) { + competitiveVisibilityCompetitorViewBuilder_.dispose(); + competitiveVisibilityCompetitorViewBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_competitor_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8; + * + */ + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView.Builder + getCompetitiveVisibilityCompetitorViewBuilder() { + bitField0_ |= 0x00000080; + onChanged(); + return getCompetitiveVisibilityCompetitorViewFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_competitor_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8; + * + */ + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorViewOrBuilder + getCompetitiveVisibilityCompetitorViewOrBuilder() { + if (competitiveVisibilityCompetitorViewBuilder_ != null) { + return competitiveVisibilityCompetitorViewBuilder_.getMessageOrBuilder(); + } else { + return competitiveVisibilityCompetitorView_ == null + ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + .getDefaultInstance() + : competitiveVisibilityCompetitorView_; + } + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_competitor_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + .Builder, + com.google.shopping.merchant.reports.v1alpha + .CompetitiveVisibilityCompetitorViewOrBuilder> + getCompetitiveVisibilityCompetitorViewFieldBuilder() { + if (competitiveVisibilityCompetitorViewBuilder_ == null) { + competitiveVisibilityCompetitorViewBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + .Builder, + com.google.shopping.merchant.reports.v1alpha + .CompetitiveVisibilityCompetitorViewOrBuilder>( + getCompetitiveVisibilityCompetitorView(), getParentForChildren(), isClean()); + competitiveVisibilityCompetitorView_ = null; + } + return competitiveVisibilityCompetitorViewBuilder_; + } + + private com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + competitiveVisibilityTopMerchantView_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + .Builder, + com.google.shopping.merchant.reports.v1alpha + .CompetitiveVisibilityTopMerchantViewOrBuilder> + competitiveVisibilityTopMerchantViewBuilder_; + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_top_merchant_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9; + * + * + * @return Whether the competitiveVisibilityTopMerchantView field is set. + */ + public boolean hasCompetitiveVisibilityTopMerchantView() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_top_merchant_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9; + * + * + * @return The competitiveVisibilityTopMerchantView. + */ + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + getCompetitiveVisibilityTopMerchantView() { + if (competitiveVisibilityTopMerchantViewBuilder_ == null) { + return competitiveVisibilityTopMerchantView_ == null + ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + .getDefaultInstance() + : competitiveVisibilityTopMerchantView_; + } else { + return competitiveVisibilityTopMerchantViewBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_top_merchant_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9; + * + */ + public Builder setCompetitiveVisibilityTopMerchantView( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView value) { + if (competitiveVisibilityTopMerchantViewBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + competitiveVisibilityTopMerchantView_ = value; + } else { + competitiveVisibilityTopMerchantViewBuilder_.setMessage(value); + } + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_top_merchant_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9; + * + */ + public Builder setCompetitiveVisibilityTopMerchantView( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView.Builder + builderForValue) { + if (competitiveVisibilityTopMerchantViewBuilder_ == null) { + competitiveVisibilityTopMerchantView_ = builderForValue.build(); + } else { + competitiveVisibilityTopMerchantViewBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_top_merchant_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9; + * + */ + public Builder mergeCompetitiveVisibilityTopMerchantView( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView value) { + if (competitiveVisibilityTopMerchantViewBuilder_ == null) { + if (((bitField0_ & 0x00000100) != 0) + && competitiveVisibilityTopMerchantView_ != null + && competitiveVisibilityTopMerchantView_ + != com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + .getDefaultInstance()) { + getCompetitiveVisibilityTopMerchantViewBuilder().mergeFrom(value); + } else { + competitiveVisibilityTopMerchantView_ = value; + } + } else { + competitiveVisibilityTopMerchantViewBuilder_.mergeFrom(value); + } + if (competitiveVisibilityTopMerchantView_ != null) { + bitField0_ |= 0x00000100; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_top_merchant_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9; + * + */ + public Builder clearCompetitiveVisibilityTopMerchantView() { + bitField0_ = (bitField0_ & ~0x00000100); + competitiveVisibilityTopMerchantView_ = null; + if (competitiveVisibilityTopMerchantViewBuilder_ != null) { + competitiveVisibilityTopMerchantViewBuilder_.dispose(); + competitiveVisibilityTopMerchantViewBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_top_merchant_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9; + * + */ + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView.Builder + getCompetitiveVisibilityTopMerchantViewBuilder() { + bitField0_ |= 0x00000100; + onChanged(); + return getCompetitiveVisibilityTopMerchantViewFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_top_merchant_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9; + * + */ + public com.google.shopping.merchant.reports.v1alpha + .CompetitiveVisibilityTopMerchantViewOrBuilder + getCompetitiveVisibilityTopMerchantViewOrBuilder() { + if (competitiveVisibilityTopMerchantViewBuilder_ != null) { + return competitiveVisibilityTopMerchantViewBuilder_.getMessageOrBuilder(); + } else { + return competitiveVisibilityTopMerchantView_ == null + ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + .getDefaultInstance() + : competitiveVisibilityTopMerchantView_; + } + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_top_merchant_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + .Builder, + com.google.shopping.merchant.reports.v1alpha + .CompetitiveVisibilityTopMerchantViewOrBuilder> + getCompetitiveVisibilityTopMerchantViewFieldBuilder() { + if (competitiveVisibilityTopMerchantViewBuilder_ == null) { + competitiveVisibilityTopMerchantViewBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + .Builder, + com.google.shopping.merchant.reports.v1alpha + .CompetitiveVisibilityTopMerchantViewOrBuilder>( + getCompetitiveVisibilityTopMerchantView(), getParentForChildren(), isClean()); + competitiveVisibilityTopMerchantView_ = null; + } + return competitiveVisibilityTopMerchantViewBuilder_; + } + + private com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + competitiveVisibilityBenchmarkView_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView.Builder, + com.google.shopping.merchant.reports.v1alpha + .CompetitiveVisibilityBenchmarkViewOrBuilder> + competitiveVisibilityBenchmarkViewBuilder_; + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_benchmark_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10; + * + * + * @return Whether the competitiveVisibilityBenchmarkView field is set. + */ + public boolean hasCompetitiveVisibilityBenchmarkView() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_benchmark_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10; + * + * + * @return The competitiveVisibilityBenchmarkView. + */ + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + getCompetitiveVisibilityBenchmarkView() { + if (competitiveVisibilityBenchmarkViewBuilder_ == null) { + return competitiveVisibilityBenchmarkView_ == null + ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + .getDefaultInstance() + : competitiveVisibilityBenchmarkView_; + } else { + return competitiveVisibilityBenchmarkViewBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_benchmark_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10; + * + */ + public Builder setCompetitiveVisibilityBenchmarkView( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView value) { + if (competitiveVisibilityBenchmarkViewBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + competitiveVisibilityBenchmarkView_ = value; + } else { + competitiveVisibilityBenchmarkViewBuilder_.setMessage(value); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_benchmark_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10; + * + */ + public Builder setCompetitiveVisibilityBenchmarkView( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView.Builder + builderForValue) { + if (competitiveVisibilityBenchmarkViewBuilder_ == null) { + competitiveVisibilityBenchmarkView_ = builderForValue.build(); + } else { + competitiveVisibilityBenchmarkViewBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_benchmark_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10; + * + */ + public Builder mergeCompetitiveVisibilityBenchmarkView( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView value) { + if (competitiveVisibilityBenchmarkViewBuilder_ == null) { + if (((bitField0_ & 0x00000200) != 0) + && competitiveVisibilityBenchmarkView_ != null + && competitiveVisibilityBenchmarkView_ + != com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + .getDefaultInstance()) { + getCompetitiveVisibilityBenchmarkViewBuilder().mergeFrom(value); + } else { + competitiveVisibilityBenchmarkView_ = value; + } + } else { + competitiveVisibilityBenchmarkViewBuilder_.mergeFrom(value); + } + if (competitiveVisibilityBenchmarkView_ != null) { + bitField0_ |= 0x00000200; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_benchmark_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10; + * + */ + public Builder clearCompetitiveVisibilityBenchmarkView() { + bitField0_ = (bitField0_ & ~0x00000200); + competitiveVisibilityBenchmarkView_ = null; + if (competitiveVisibilityBenchmarkViewBuilder_ != null) { + competitiveVisibilityBenchmarkViewBuilder_.dispose(); + competitiveVisibilityBenchmarkViewBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_benchmark_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10; + * + */ + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView.Builder + getCompetitiveVisibilityBenchmarkViewBuilder() { + bitField0_ |= 0x00000200; + onChanged(); + return getCompetitiveVisibilityBenchmarkViewFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_benchmark_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10; + * + */ + public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkViewOrBuilder + getCompetitiveVisibilityBenchmarkViewOrBuilder() { + if (competitiveVisibilityBenchmarkViewBuilder_ != null) { + return competitiveVisibilityBenchmarkViewBuilder_.getMessageOrBuilder(); + } else { + return competitiveVisibilityBenchmarkView_ == null + ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + .getDefaultInstance() + : competitiveVisibilityBenchmarkView_; + } + } + + /** + * + * + *
+     * Fields available for query in `competitive_visibility_benchmark_view`
+     * table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView.Builder, + com.google.shopping.merchant.reports.v1alpha + .CompetitiveVisibilityBenchmarkViewOrBuilder> + getCompetitiveVisibilityBenchmarkViewFieldBuilder() { + if (competitiveVisibilityBenchmarkViewBuilder_ == null) { + competitiveVisibilityBenchmarkViewBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + .Builder, + com.google.shopping.merchant.reports.v1alpha + .CompetitiveVisibilityBenchmarkViewOrBuilder>( + getCompetitiveVisibilityBenchmarkView(), getParentForChildren(), isClean()); + competitiveVisibilityBenchmarkView_ = null; + } + return competitiveVisibilityBenchmarkViewBuilder_; + } + + private com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + youtubeCreatorPerformanceView_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView, + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView.Builder, + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceViewOrBuilder> + youtubeCreatorPerformanceViewBuilder_; + + /** + * + * + *
+     * Fields available for query in `youtube_creator_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11; + * + * + * @return Whether the youtubeCreatorPerformanceView field is set. + */ + public boolean hasYoutubeCreatorPerformanceView() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+     * Fields available for query in `youtube_creator_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11; + * + * + * @return The youtubeCreatorPerformanceView. + */ + public com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + getYoutubeCreatorPerformanceView() { + if (youtubeCreatorPerformanceViewBuilder_ == null) { + return youtubeCreatorPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + .getDefaultInstance() + : youtubeCreatorPerformanceView_; + } else { + return youtubeCreatorPerformanceViewBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Fields available for query in `youtube_creator_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11; + * + */ + public Builder setYoutubeCreatorPerformanceView( + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView value) { + if (youtubeCreatorPerformanceViewBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + youtubeCreatorPerformanceView_ = value; + } else { + youtubeCreatorPerformanceViewBuilder_.setMessage(value); + } + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `youtube_creator_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11; + * + */ + public Builder setYoutubeCreatorPerformanceView( + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView.Builder + builderForValue) { + if (youtubeCreatorPerformanceViewBuilder_ == null) { + youtubeCreatorPerformanceView_ = builderForValue.build(); + } else { + youtubeCreatorPerformanceViewBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `youtube_creator_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11; + * + */ + public Builder mergeYoutubeCreatorPerformanceView( + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView value) { + if (youtubeCreatorPerformanceViewBuilder_ == null) { + if (((bitField0_ & 0x00000400) != 0) + && youtubeCreatorPerformanceView_ != null + && youtubeCreatorPerformanceView_ + != com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + .getDefaultInstance()) { + getYoutubeCreatorPerformanceViewBuilder().mergeFrom(value); + } else { + youtubeCreatorPerformanceView_ = value; + } + } else { + youtubeCreatorPerformanceViewBuilder_.mergeFrom(value); + } + if (youtubeCreatorPerformanceView_ != null) { + bitField0_ |= 0x00000400; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Fields available for query in `youtube_creator_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11; + * + */ + public Builder clearYoutubeCreatorPerformanceView() { + bitField0_ = (bitField0_ & ~0x00000400); + youtubeCreatorPerformanceView_ = null; + if (youtubeCreatorPerformanceViewBuilder_ != null) { + youtubeCreatorPerformanceViewBuilder_.dispose(); + youtubeCreatorPerformanceViewBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `youtube_creator_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11; + * + */ + public com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView.Builder + getYoutubeCreatorPerformanceViewBuilder() { + bitField0_ |= 0x00000400; + onChanged(); + return getYoutubeCreatorPerformanceViewFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Fields available for query in `youtube_creator_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11; + * + */ + public com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceViewOrBuilder + getYoutubeCreatorPerformanceViewOrBuilder() { + if (youtubeCreatorPerformanceViewBuilder_ != null) { + return youtubeCreatorPerformanceViewBuilder_.getMessageOrBuilder(); + } else { + return youtubeCreatorPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + .getDefaultInstance() + : youtubeCreatorPerformanceView_; + } + } + + /** + * + * + *
+     * Fields available for query in `youtube_creator_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView, + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView.Builder, + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceViewOrBuilder> + getYoutubeCreatorPerformanceViewFieldBuilder() { + if (youtubeCreatorPerformanceViewBuilder_ == null) { + youtubeCreatorPerformanceViewBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView, + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView.Builder, + com.google.shopping.merchant.reports.v1alpha + .YoutubeCreatorPerformanceViewOrBuilder>( + getYoutubeCreatorPerformanceView(), getParentForChildren(), isClean()); + youtubeCreatorPerformanceView_ = null; + } + return youtubeCreatorPerformanceViewBuilder_; + } + + private com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + youtubeContentPerformanceView_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView, + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView.Builder, + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceViewOrBuilder> + youtubeContentPerformanceViewBuilder_; + + /** + * + * + *
+     * Fields available for query in `youtube_content_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12; + * + * + * @return Whether the youtubeContentPerformanceView field is set. + */ + public boolean hasYoutubeContentPerformanceView() { + return ((bitField0_ & 0x00000800) != 0); + } + + /** + * + * + *
+     * Fields available for query in `youtube_content_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12; + * + * + * @return The youtubeContentPerformanceView. + */ + public com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + getYoutubeContentPerformanceView() { + if (youtubeContentPerformanceViewBuilder_ == null) { + return youtubeContentPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + .getDefaultInstance() + : youtubeContentPerformanceView_; + } else { + return youtubeContentPerformanceViewBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Fields available for query in `youtube_content_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12; + * + */ + public Builder setYoutubeContentPerformanceView( + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView value) { + if (youtubeContentPerformanceViewBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + youtubeContentPerformanceView_ = value; + } else { + youtubeContentPerformanceViewBuilder_.setMessage(value); + } + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `youtube_content_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12; + * + */ + public Builder setYoutubeContentPerformanceView( + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView.Builder + builderForValue) { + if (youtubeContentPerformanceViewBuilder_ == null) { + youtubeContentPerformanceView_ = builderForValue.build(); + } else { + youtubeContentPerformanceViewBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `youtube_content_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12; + * + */ + public Builder mergeYoutubeContentPerformanceView( + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView value) { + if (youtubeContentPerformanceViewBuilder_ == null) { + if (((bitField0_ & 0x00000800) != 0) + && youtubeContentPerformanceView_ != null + && youtubeContentPerformanceView_ + != com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + .getDefaultInstance()) { + getYoutubeContentPerformanceViewBuilder().mergeFrom(value); + } else { + youtubeContentPerformanceView_ = value; + } + } else { + youtubeContentPerformanceViewBuilder_.mergeFrom(value); + } + if (youtubeContentPerformanceView_ != null) { + bitField0_ |= 0x00000800; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Fields available for query in `youtube_content_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12; + * + */ + public Builder clearYoutubeContentPerformanceView() { + bitField0_ = (bitField0_ & ~0x00000800); + youtubeContentPerformanceView_ = null; + if (youtubeContentPerformanceViewBuilder_ != null) { + youtubeContentPerformanceViewBuilder_.dispose(); + youtubeContentPerformanceViewBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `youtube_content_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12; + * + */ + public com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView.Builder + getYoutubeContentPerformanceViewBuilder() { + bitField0_ |= 0x00000800; + onChanged(); + return getYoutubeContentPerformanceViewFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Fields available for query in `youtube_content_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12; + * + */ + public com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceViewOrBuilder + getYoutubeContentPerformanceViewOrBuilder() { + if (youtubeContentPerformanceViewBuilder_ != null) { + return youtubeContentPerformanceViewBuilder_.getMessageOrBuilder(); + } else { + return youtubeContentPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + .getDefaultInstance() + : youtubeContentPerformanceView_; + } + } + + /** + * + * + *
+     * Fields available for query in `youtube_content_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView, + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView.Builder, + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceViewOrBuilder> + getYoutubeContentPerformanceViewFieldBuilder() { + if (youtubeContentPerformanceViewBuilder_ == null) { + youtubeContentPerformanceViewBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView, + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView.Builder, + com.google.shopping.merchant.reports.v1alpha + .YoutubeContentPerformanceViewOrBuilder>( + getYoutubeContentPerformanceView(), getParentForChildren(), isClean()); + youtubeContentPerformanceView_ = null; + } + return youtubeContentPerformanceViewBuilder_; + } + + private com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + youtubeProductPerformanceView_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView, + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView.Builder, + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceViewOrBuilder> + youtubeProductPerformanceViewBuilder_; + + /** + * + * + *
+     * Fields available for query in `youtube_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13; + * + * + * @return Whether the youtubeProductPerformanceView field is set. + */ + public boolean hasYoutubeProductPerformanceView() { + return ((bitField0_ & 0x00001000) != 0); + } + + /** + * + * + *
+     * Fields available for query in `youtube_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13; + * + * + * @return The youtubeProductPerformanceView. + */ + public com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + getYoutubeProductPerformanceView() { + if (youtubeProductPerformanceViewBuilder_ == null) { + return youtubeProductPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + .getDefaultInstance() + : youtubeProductPerformanceView_; + } else { + return youtubeProductPerformanceViewBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Fields available for query in `youtube_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13; + * + */ + public Builder setYoutubeProductPerformanceView( + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView value) { + if (youtubeProductPerformanceViewBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + youtubeProductPerformanceView_ = value; + } else { + youtubeProductPerformanceViewBuilder_.setMessage(value); + } + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `youtube_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13; + * + */ + public Builder setYoutubeProductPerformanceView( + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView.Builder + builderForValue) { + if (youtubeProductPerformanceViewBuilder_ == null) { + youtubeProductPerformanceView_ = builderForValue.build(); + } else { + youtubeProductPerformanceViewBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `youtube_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13; + * + */ + public Builder mergeYoutubeProductPerformanceView( + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView value) { + if (youtubeProductPerformanceViewBuilder_ == null) { + if (((bitField0_ & 0x00001000) != 0) + && youtubeProductPerformanceView_ != null + && youtubeProductPerformanceView_ + != com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + .getDefaultInstance()) { + getYoutubeProductPerformanceViewBuilder().mergeFrom(value); + } else { + youtubeProductPerformanceView_ = value; + } + } else { + youtubeProductPerformanceViewBuilder_.mergeFrom(value); + } + if (youtubeProductPerformanceView_ != null) { + bitField0_ |= 0x00001000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Fields available for query in `youtube_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13; + * + */ + public Builder clearYoutubeProductPerformanceView() { + bitField0_ = (bitField0_ & ~0x00001000); + youtubeProductPerformanceView_ = null; + if (youtubeProductPerformanceViewBuilder_ != null) { + youtubeProductPerformanceViewBuilder_.dispose(); + youtubeProductPerformanceViewBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Fields available for query in `youtube_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13; + * + */ + public com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView.Builder + getYoutubeProductPerformanceViewBuilder() { + bitField0_ |= 0x00001000; + onChanged(); + return getYoutubeProductPerformanceViewFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Fields available for query in `youtube_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13; + * + */ + public com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceViewOrBuilder + getYoutubeProductPerformanceViewOrBuilder() { + if (youtubeProductPerformanceViewBuilder_ != null) { + return youtubeProductPerformanceViewBuilder_.getMessageOrBuilder(); + } else { + return youtubeProductPerformanceView_ == null + ? com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + .getDefaultInstance() + : youtubeProductPerformanceView_; + } + } + + /** + * + * + *
+     * Fields available for query in `youtube_product_performance_view` table.
+     * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView, + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView.Builder, + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceViewOrBuilder> + getYoutubeProductPerformanceViewFieldBuilder() { + if (youtubeProductPerformanceViewBuilder_ == null) { + youtubeProductPerformanceViewBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView, + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView.Builder, + com.google.shopping.merchant.reports.v1alpha + .YoutubeProductPerformanceViewOrBuilder>( + getYoutubeProductPerformanceView(), getParentForChildren(), isClean()); + youtubeProductPerformanceView_ = null; + } + return youtubeProductPerformanceViewBuilder_; + } + + @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.shopping.merchant.reports.v1alpha.ReportRow) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.ReportRow) + private static final com.google.shopping.merchant.reports.v1alpha.ReportRow DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.ReportRow(); + } + + public static com.google.shopping.merchant.reports.v1alpha.ReportRow getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ReportRow parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.ReportRow getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportRowOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportRowOrBuilder.java new file mode 100644 index 000000000000..52193aba8217 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportRowOrBuilder.java @@ -0,0 +1,610 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface ReportRowOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.ReportRow) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Fields available for query in `product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1; + * + * + * @return Whether the productPerformanceView field is set. + */ + boolean hasProductPerformanceView(); + + /** + * + * + *
+   * Fields available for query in `product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1; + * + * + * @return The productPerformanceView. + */ + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView getProductPerformanceView(); + + /** + * + * + *
+   * Fields available for query in `product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1; + * + */ + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceViewOrBuilder + getProductPerformanceViewOrBuilder(); + + /** + * + * + *
+   * Fields available for query in `non_product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7; + * + * + * @return Whether the nonProductPerformanceView field is set. + */ + boolean hasNonProductPerformanceView(); + + /** + * + * + *
+   * Fields available for query in `non_product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7; + * + * + * @return The nonProductPerformanceView. + */ + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView + getNonProductPerformanceView(); + + /** + * + * + *
+   * Fields available for query in `non_product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7; + * + */ + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceViewOrBuilder + getNonProductPerformanceViewOrBuilder(); + + /** + * + * + *
+   * Fields available for query in `product_view` table.
+   * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView product_view = 2; + * + * @return Whether the productView field is set. + */ + boolean hasProductView(); + + /** + * + * + *
+   * Fields available for query in `product_view` table.
+   * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView product_view = 2; + * + * @return The productView. + */ + com.google.shopping.merchant.reports.v1alpha.ProductView getProductView(); + + /** + * + * + *
+   * Fields available for query in `product_view` table.
+   * 
+ * + * .google.shopping.merchant.reports.v1alpha.ProductView product_view = 2; + */ + com.google.shopping.merchant.reports.v1alpha.ProductViewOrBuilder getProductViewOrBuilder(); + + /** + * + * + *
+   * Fields available for query in `price_competitiveness_product_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3; + * + * + * @return Whether the priceCompetitivenessProductView field is set. + */ + boolean hasPriceCompetitivenessProductView(); + + /** + * + * + *
+   * Fields available for query in `price_competitiveness_product_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3; + * + * + * @return The priceCompetitivenessProductView. + */ + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView + getPriceCompetitivenessProductView(); + + /** + * + * + *
+   * Fields available for query in `price_competitiveness_product_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3; + * + */ + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductViewOrBuilder + getPriceCompetitivenessProductViewOrBuilder(); + + /** + * + * + *
+   * Fields available for query in `price_insights_product_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4; + * + * + * @return Whether the priceInsightsProductView field is set. + */ + boolean hasPriceInsightsProductView(); + + /** + * + * + *
+   * Fields available for query in `price_insights_product_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4; + * + * + * @return The priceInsightsProductView. + */ + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView + getPriceInsightsProductView(); + + /** + * + * + *
+   * Fields available for query in `price_insights_product_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4; + * + */ + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductViewOrBuilder + getPriceInsightsProductViewOrBuilder(); + + /** + * + * + *
+   * Fields available for query in `best_sellers_product_cluster_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5; + * + * + * @return Whether the bestSellersProductClusterView field is set. + */ + boolean hasBestSellersProductClusterView(); + + /** + * + * + *
+   * Fields available for query in `best_sellers_product_cluster_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5; + * + * + * @return The bestSellersProductClusterView. + */ + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView + getBestSellersProductClusterView(); + + /** + * + * + *
+   * Fields available for query in `best_sellers_product_cluster_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5; + * + */ + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterViewOrBuilder + getBestSellersProductClusterViewOrBuilder(); + + /** + * + * + *
+   * Fields available for query in `best_sellers_brand_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6; + * + * + * @return Whether the bestSellersBrandView field is set. + */ + boolean hasBestSellersBrandView(); + + /** + * + * + *
+   * Fields available for query in `best_sellers_brand_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6; + * + * + * @return The bestSellersBrandView. + */ + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView getBestSellersBrandView(); + + /** + * + * + *
+   * Fields available for query in `best_sellers_brand_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6; + * + */ + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandViewOrBuilder + getBestSellersBrandViewOrBuilder(); + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_competitor_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8; + * + * + * @return Whether the competitiveVisibilityCompetitorView field is set. + */ + boolean hasCompetitiveVisibilityCompetitorView(); + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_competitor_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8; + * + * + * @return The competitiveVisibilityCompetitorView. + */ + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView + getCompetitiveVisibilityCompetitorView(); + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_competitor_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8; + * + */ + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorViewOrBuilder + getCompetitiveVisibilityCompetitorViewOrBuilder(); + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_top_merchant_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9; + * + * + * @return Whether the competitiveVisibilityTopMerchantView field is set. + */ + boolean hasCompetitiveVisibilityTopMerchantView(); + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_top_merchant_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9; + * + * + * @return The competitiveVisibilityTopMerchantView. + */ + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + getCompetitiveVisibilityTopMerchantView(); + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_top_merchant_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9; + * + */ + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantViewOrBuilder + getCompetitiveVisibilityTopMerchantViewOrBuilder(); + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_benchmark_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10; + * + * + * @return Whether the competitiveVisibilityBenchmarkView field is set. + */ + boolean hasCompetitiveVisibilityBenchmarkView(); + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_benchmark_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10; + * + * + * @return The competitiveVisibilityBenchmarkView. + */ + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView + getCompetitiveVisibilityBenchmarkView(); + + /** + * + * + *
+   * Fields available for query in `competitive_visibility_benchmark_view`
+   * table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10; + * + */ + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkViewOrBuilder + getCompetitiveVisibilityBenchmarkViewOrBuilder(); + + /** + * + * + *
+   * Fields available for query in `youtube_creator_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11; + * + * + * @return Whether the youtubeCreatorPerformanceView field is set. + */ + boolean hasYoutubeCreatorPerformanceView(); + + /** + * + * + *
+   * Fields available for query in `youtube_creator_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11; + * + * + * @return The youtubeCreatorPerformanceView. + */ + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + getYoutubeCreatorPerformanceView(); + + /** + * + * + *
+   * Fields available for query in `youtube_creator_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11; + * + */ + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceViewOrBuilder + getYoutubeCreatorPerformanceViewOrBuilder(); + + /** + * + * + *
+   * Fields available for query in `youtube_content_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12; + * + * + * @return Whether the youtubeContentPerformanceView field is set. + */ + boolean hasYoutubeContentPerformanceView(); + + /** + * + * + *
+   * Fields available for query in `youtube_content_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12; + * + * + * @return The youtubeContentPerformanceView. + */ + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + getYoutubeContentPerformanceView(); + + /** + * + * + *
+   * Fields available for query in `youtube_content_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12; + * + */ + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceViewOrBuilder + getYoutubeContentPerformanceViewOrBuilder(); + + /** + * + * + *
+   * Fields available for query in `youtube_product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13; + * + * + * @return Whether the youtubeProductPerformanceView field is set. + */ + boolean hasYoutubeProductPerformanceView(); + + /** + * + * + *
+   * Fields available for query in `youtube_product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13; + * + * + * @return The youtubeProductPerformanceView. + */ + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + getYoutubeProductPerformanceView(); + + /** + * + * + *
+   * Fields available for query in `youtube_product_performance_view` table.
+   * 
+ * + * + * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13; + * + */ + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceViewOrBuilder + getYoutubeProductPerformanceViewOrBuilder(); +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportsProto.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportsProto.java new file mode 100644 index 000000000000..368dc71e63b6 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportsProto.java @@ -0,0 +1,1107 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public final class ReportsProto { + private ReportsProto() {} + + 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_shopping_merchant_reports_v1alpha_SearchRequest_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_SearchRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_SearchResponse_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_SearchResponse_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_ReportRow_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_ReportRow_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_ProductPerformanceView_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_ProductPerformanceView_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueType_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueType_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_IssueSeverityPerReportingContext_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_IssueSeverityPerReportingContext_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_PriceCompetitivenessProductView_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_PriceCompetitivenessProductView_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_PriceInsightsProductView_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_PriceInsightsProductView_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_BestSellersProductClusterView_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_BestSellersProductClusterView_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_BestSellersBrandView_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_BestSellersBrandView_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_NonProductPerformanceView_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_NonProductPerformanceView_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityCompetitorView_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityCompetitorView_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityTopMerchantView_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityTopMerchantView_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityBenchmarkView_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityBenchmarkView_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_MarketingMethod_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_MarketingMethod_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_ReportGranularity_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_ReportGranularity_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemand_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemand_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemandChangeType_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemandChangeType_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_TrafficSource_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_TrafficSource_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_YoutubeCreatorPerformanceView_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_YoutubeCreatorPerformanceView_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_YoutubeContentPerformanceView_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_YoutubeContentPerformanceView_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_reports_v1alpha_YoutubeProductPerformanceView_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_shopping_merchant_reports_v1alpha_YoutubeProductPerformanceView_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" + + "6google/shopping/merchant/reports/v1alpha/reports.proto\022(google.shopping.mercha" + + "nt.reports.v1alpha\032\034google/api/annotatio" + + "ns.proto\032\027google/api/client.proto\032\037googl" + + "e/api/field_behavior.proto\032\037google/protobuf/timestamp.proto\032" + + " google/shopping/type/types.proto\032\026google/type/date.proto\"i\n" + + "\r" + + "SearchRequest\022\023\n" + + "\006parent\030\001 \001(\tB\003\340A\002\022\022\n" + + "\005query\030\002 \001(\tB\003\340A\002\022\026\n" + + "\tpage_size\030\003 \001(\005B\003\340A\001\022\027\n\n" + + "page_token\030\004 \001(\tB\003\340A\001\"o\n" + + "\016SearchResponse\022D\n" + + "\007results\030\001" + + " \003(\01323.google.shopping.merchant.reports.v1alpha.ReportRow\022\027\n" + + "\017next_page_token\030\002 \001(\t\"\264\013\n" + + "\tReportRow\022b\n" + + "\030product_performance_view\030\001 \001(\0132@.google.shopp" + + "ing.merchant.reports.v1alpha.ProductPerformanceView\022i\n" + + "\034non_product_performance_view\030\007 \001(\0132C.google.shopping.merchant.rep" + + "orts.v1alpha.NonProductPerformanceView\022K\n" + + "\014product_view\030\002" + + " \001(\01325.google.shopping.merchant.reports.v1alpha.ProductView\022u\n" + + "\"price_competitiveness_product_view\030\003 \001(\0132" + + "I.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView\022g\n" + + "\033price_insights_product_view\030\004 \001(\0132B.google" + + ".shopping.merchant.reports.v1alpha.PriceInsightsProductView\022r\n" + + "!best_sellers_product_cluster_view\030\005 \001(\0132G.google.shopping" + + ".merchant.reports.v1alpha.BestSellersProductClusterView\022_\n" + + "\027best_sellers_brand_view\030\006" + + " \001(\0132>.google.shopping.merchant.reports.v1alpha.BestSellersBrandView\022}\n" + + "&competitive_visibility_competitor_view\030\010 \001(\013" + + "2M.google.shopping.merchant.reports.v1al" + + "pha.CompetitiveVisibilityCompetitorView\022\200\001\n" + + "(competitive_visibility_top_merchant_view\030\t" + + " \001(\0132N.google.shopping.merchant.re" + + "ports.v1alpha.CompetitiveVisibilityTopMerchantView\022{\n" + + "%competitive_visibility_benchmark_view\030\n" + + " \001(\0132L.google.shopping.merc" + + "hant.reports.v1alpha.CompetitiveVisibilityBenchmarkView\022q\n" + + " youtube_creator_performance_view\030\013 \001(\0132G.google.shopping.merc" + + "hant.reports.v1alpha.YoutubeCreatorPerformanceView\022q\n" + + " youtube_content_performance_view\030\014 \001(\0132G.google.shopping.merchant." + + "reports.v1alpha.YoutubeContentPerformanceView\022q\n" + + " youtube_product_performance_view\030\r" + + " \001(\0132G.google.shopping.merchant.repor" + + "ts.v1alpha.YoutubeProductPerformanceView\"\302\n\n" + + "\026ProductPerformanceView\022l\n" + + "\020marketing_method\030\001 \001(\0162M.google.shopping.merchant" + + ".reports.v1alpha.MarketingMethod.MarketingMethodEnumH\000\210\001\001\022\037\n" + + "\004date\030\002 \001(\0132\021.google.type.Date\022\037\n" + + "\004week\030\003 \001(\0132\021.google.type.Date\022\"\n" + + "\025customer_country_code\030\004 \001(\tH\001\210\001\001\022\025\n" + + "\010offer_id\030\005 \001(\tH\002\210\001\001\022\022\n" + + "\005title\030\006 \001(\tH\003\210\001\001\022\022\n" + + "\005brand\030\007 \001(\tH\004\210\001\001\022\030\n" + + "\013category_l1\030\010 \001(\tH\005\210\001\001\022\030\n" + + "\013category_l2\030\t \001(\tH\006\210\001\001\022\030\n" + + "\013category_l3\030\n" + + " \001(\tH\007\210\001\001\022\030\n" + + "\013category_l4\030\013 \001(\tH\010\210\001\001\022\030\n" + + "\013category_l5\030\014 \001(\tH\t\210\001\001\022\034\n" + + "\017product_type_l1\030\r" + + " \001(\tH\n" + + "\210\001\001\022\034\n" + + "\017product_type_l2\030\016 \001(\tH\013\210\001\001\022\034\n" + + "\017product_type_l3\030\017 \001(\tH\014\210\001\001\022\034\n" + + "\017product_type_l4\030\020 \001(\tH\r" + + "\210\001\001\022\034\n" + + "\017product_type_l5\030\021 \001(\tH\016\210\001\001\022\032\n\r" + + "custom_label0\030\022 \001(\tH\017\210\001\001\022\032\n\r" + + "custom_label1\030\023 \001(\tH\020\210\001\001\022\032\n\r" + + "custom_label2\030\024 \001(\tH\021\210\001\001\022\032\n\r" + + "custom_label3\030\025 \001(\tH\022\210\001\001\022\032\n\r" + + "custom_label4\030\026 \001(\tH\023\210\001\001\022\023\n" + + "\006clicks\030\027 \001(\003H\024\210\001\001\022\030\n" + + "\013impressions\030\030 \001(\003H\025\210\001\001\022\037\n" + + "\022click_through_rate\030\031 \001(\001H\026\210\001\001\022\030\n" + + "\013conversions\030\032 \001(\001H\027\210\001\001\0225\n" + + "\020conversion_value\030\033 \001(\0132\033.google.shopping.type.Price\022\034\n" + + "\017conversion_rate\030\034 \001(\001H\030\210\001\001B\023\n" + + "\021_marketing_methodB\030\n" + + "\026_customer_country_codeB\013\n" + + "\t_offer_idB\010\n" + + "\006_titleB\010\n" + + "\006_brandB\016\n" + + "\014_category_l1B\016\n" + + "\014_category_l2B\016\n" + + "\014_category_l3B\016\n" + + "\014_category_l4B\016\n" + + "\014_category_l5B\022\n" + + "\020_product_type_l1B\022\n" + + "\020_product_type_l2B\022\n" + + "\020_product_type_l3B\022\n" + + "\020_product_type_l4B\022\n" + + "\020_product_type_l5B\020\n" + + "\016_custom_label0B\020\n" + + "\016_custom_label1B\020\n" + + "\016_custom_label2B\020\n" + + "\016_custom_label3B\020\n" + + "\016_custom_label4B\t\n" + + "\007_clicksB\016\n" + + "\014_impressionsB\025\n" + + "\023_click_through_rateB\016\n" + + "\014_conversionsB\022\n" + + "\020_conversion_rate\"\312\027\n" + + "\013ProductView\022\017\n" + + "\002id\030\001 \001(\tH\000\210\001\001\022?\n" + + "\007channel\030\034 \001(\0162" + + ").google.shopping.type.Channel.ChannelEnumH\001\210\001\001\022\032\n\r" + + "language_code\030\002 \001(\tH\002\210\001\001\022\027\n\n" + + "feed_label\030\003 \001(\tH\003\210\001\001\022\025\n" + + "\010offer_id\030\004 \001(\tH\004\210\001\001\022\022\n" + + "\005title\030\005 \001(\tH\005\210\001\001\022\022\n" + + "\005brand\030\006 \001(\tH\006\210\001\001\022\030\n" + + "\013category_l1\030\007 \001(\tH\007\210\001\001\022\030\n" + + "\013category_l2\030\010 \001(\tH\010\210\001\001\022\030\n" + + "\013category_l3\030\t \001(\tH\t\210\001\001\022\030\n" + + "\013category_l4\030\n" + + " \001(\tH\n" + + "\210\001\001\022\030\n" + + "\013category_l5\030\013 \001(\tH\013\210\001\001\022\034\n" + + "\017product_type_l1\030\014 \001(\tH\014\210\001\001\022\034\n" + + "\017product_type_l2\030\r" + + " \001(\tH\r" + + "\210\001\001\022\034\n" + + "\017product_type_l3\030\016 \001(\tH\016\210\001\001\022\034\n" + + "\017product_type_l4\030\017 \001(\tH\017\210\001\001\022\034\n" + + "\017product_type_l5\030\020 \001(\tH\020\210\001\001\022*\n" + + "\005price\030\021 \001(\0132\033.google.shopping.type.Price\022\026\n" + + "\tcondition\030\022 \001(\tH\021\210\001\001\022\031\n" + + "\014availability\030\023 \001(\tH\022\210\001\001\022\033\n" + + "\016shipping_label\030\024 \001(\tH\023\210\001\001\022\014\n" + + "\004gtin\030\025 \003(\t\022\032\n\r" + + "item_group_id\030\026 \001(\tH\024\210\001\001\022\033\n" + + "\016thumbnail_link\030\027 \001(\tH\025\210\001\001\0221\n\r" + + "creation_time\030\030 \001(\0132\032.google.protobuf.Timestamp\022*\n" + + "\017expiration_date\030\031 \001(\0132\021.google.type.Date\022\210\001\n" + + "#aggregated_reporting_context_status\030\032 \001(\0162V.google.shopping.me" + + "rchant.reports.v1alpha.ProductView.AggregatedReportingContextStatusH\026\210\001\001\022T\n" + + "\013item_issues\030\033 \003(\0132?.google.shopping.merchant" + + ".reports.v1alpha.ProductView.ItemIssue\022]\n" + + "\017click_potential\030\035 \001(\0162D.google.shoppin" + + "g.merchant.reports.v1alpha.ProductView.ClickPotential\022!\n" + + "\024click_potential_rank\030\036 \001(\003H\027\210\001\001\032\270\t\n" + + "\tItemIssue\022[\n" + + "\004type\030\001 \001(\0132M.g" + + "oogle.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType\022c\n" + + "\010severity\030\002 \001(\0132Q.google.shopping.merchant" + + ".reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity\022l\n\n" + + "resolution\030\003 \001(\0162S.google.shopping.merchant.reports.v1alpha." + + "ProductView.ItemIssue.ItemIssueResolutionH\000\210\001\001\032e\n\r" + + "ItemIssueType\022\021\n" + + "\004code\030\001 \001(\tH\000\210\001\001\022 \n" + + "\023canonical_attribute\030\002 \001(\tH\001\210\001\001B\007\n" + + "\005_codeB\026\n" + + "\024_canonical_attribute\032\231\005\n" + + "\021ItemIssueSeverity\022\232\001\n" + + "\036severity_per_reporting_context\030\001 \003(\0132r.google.shopping.merchant." + + "reports.v1alpha.ProductView.ItemIssue.It" + + "emIssueSeverity.IssueSeverityPerReportingContext\022\213\001\n" + + "\023aggregated_severity\030\002 \001(\0162i.google.shopping.merchant.reports.v1alph" + + "a.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverityH\000\210\001\001\032\317\001\n" + + " IssueSeverityPerReportingContext\022[\n" + + "\021reporting_context\030\001 \001(\0162;.google.shopping.type.Re" + + "portingContext.ReportingContextEnumH\000\210\001\001\022\035\n" + + "\025disapproved_countries\030\002 \003(\t\022\031\n" + + "\021demoted_countries\030\003 \003(\tB\024\n" + + "\022_reporting_context\"o\n" + + "\027AggregatedIssueSeverity\022)\n" + + "%AGGREGATED_ISSUE_SEVERITY_UNSPECIFIED\020\000\022\017\n" + + "\013DISAPPROVED\020\001\022\013\n" + + "\007DEMOTED\020\002\022\013\n" + + "\007PENDING\020\003B\026\n" + + "\024_aggregated_severity\"i\n" + + "\023ItemIssueResolution\022%\n" + + "!ITEM_ISSUE_RESOLUTION_UNSPECIFIED\020\000\022\023\n" + + "\017MERCHANT_ACTION\020\001\022\026\n" + + "\022PENDING_PROCESSING\020\002B\r\n" + + "\013_resolution\"\251\001\n" + + " AggregatedReportingContextStatus\0223\n" + + "/AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED\020\000\022\037\n" + + "\033NOT_ELIGIBLE_OR_DISAPPROVED\020\001\022\013\n" + + "\007PENDING\020\002\022\024\n" + + "\020ELIGIBLE_LIMITED\020\003\022\014\n" + + "\010ELIGIBLE\020\004\"P\n" + + "\016ClickPotential\022\037\n" + + "\033CLICK_POTENTIAL_UNSPECIFIED\020\000\022\007\n" + + "\003LOW\020\001\022\n\n" + + "\006MEDIUM\020\002\022\010\n" + + "\004HIGH\020\003B\005\n" + + "\003_idB\n\n" + + "\010_channelB\020\n" + + "\016_language_codeB\r\n" + + "\013_feed_labelB\013\n" + + "\t_offer_idB\010\n" + + "\006_titleB\010\n" + + "\006_brandB\016\n" + + "\014_category_l1B\016\n" + + "\014_category_l2B\016\n" + + "\014_category_l3B\016\n" + + "\014_category_l4B\016\n" + + "\014_category_l5B\022\n" + + "\020_product_type_l1B\022\n" + + "\020_product_type_l2B\022\n" + + "\020_product_type_l3B\022\n" + + "\020_product_type_l4B\022\n" + + "\020_product_type_l5B\014\n\n" + + "_conditionB\017\n\r" + + "_availabilityB\021\n" + + "\017_shipping_labelB\020\n" + + "\016_item_group_idB\021\n" + + "\017_thumbnail_linkB&\n" + + "$_aggregated_reporting_context_statusB\027\n" + + "\025_click_potential_rank\"\201\006\n" + + "\037PriceCompetitivenessProductView\022 \n" + + "\023report_country_code\030\001 \001(\tH\000\210\001\001\022\017\n" + + "\002id\030\002 \001(\tH\001\210\001\001\022\025\n" + + "\010offer_id\030\003 \001(\tH\002\210\001\001\022\022\n" + + "\005title\030\004 \001(\tH\003\210\001\001\022\022\n" + + "\005brand\030\005 \001(\tH\004\210\001\001\022\030\n" + + "\013category_l1\030\006 \001(\tH\005\210\001\001\022\030\n" + + "\013category_l2\030\007 \001(\tH\006\210\001\001\022\030\n" + + "\013category_l3\030\010 \001(\tH\007\210\001\001\022\030\n" + + "\013category_l4\030\t \001(\tH\010\210\001\001\022\030\n" + + "\013category_l5\030\n" + + " \001(\tH\t\210\001\001\022\034\n" + + "\017product_type_l1\030\013 \001(\tH\n" + + "\210\001\001\022\034\n" + + "\017product_type_l2\030\014 \001(\tH\013\210\001\001\022\034\n" + + "\017product_type_l3\030\r" + + " \001(\tH\014\210\001\001\022\034\n" + + "\017product_type_l4\030\016 \001(\tH\r" + + "\210\001\001\022\034\n" + + "\017product_type_l5\030\017 \001(\tH\016\210\001\001\022*\n" + + "\005price\030\020 \001(\0132\033.google.shopping.type.Price\0224\n" + + "\017benchmark_price\030\021 \001(\0132\033.google.shopping.type.PriceB\026\n" + + "\024_report_country_codeB\005\n" + + "\003_idB\013\n" + + "\t_offer_idB\010\n" + + "\006_titleB\010\n" + + "\006_brandB\016\n" + + "\014_category_l1B\016\n" + + "\014_category_l2B\016\n" + + "\014_category_l3B\016\n" + + "\014_category_l4B\016\n" + + "\014_category_l5B\022\n" + + "\020_product_type_l1B\022\n" + + "\020_product_type_l2B\022\n" + + "\020_product_type_l3B\022\n" + + "\020_product_type_l4B\022\n" + + "\020_product_type_l5\"\210\t\n" + + "\030PriceInsightsProductView\022\017\n" + + "\002id\030\001 \001(\tH\000\210\001\001\022\025\n" + + "\010offer_id\030\002 \001(\tH\001\210\001\001\022\022\n" + + "\005title\030\003 \001(\tH\002\210\001\001\022\022\n" + + "\005brand\030\004 \001(\tH\003\210\001\001\022\030\n" + + "\013category_l1\030\005 \001(\tH\004\210\001\001\022\030\n" + + "\013category_l2\030\006 \001(\tH\005\210\001\001\022\030\n" + + "\013category_l3\030\007 \001(\tH\006\210\001\001\022\030\n" + + "\013category_l4\030\010 \001(\tH\007\210\001\001\022\030\n" + + "\013category_l5\030\t \001(\tH\010\210\001\001\022\034\n" + + "\017product_type_l1\030\n" + + " \001(\tH\t\210\001\001\022\034\n" + + "\017product_type_l2\030\013 \001(\tH\n" + + "\210\001\001\022\034\n" + + "\017product_type_l3\030\014 \001(\tH\013\210\001\001\022\034\n" + + "\017product_type_l4\030\r" + + " \001(\tH\014\210\001\001\022\034\n" + + "\017product_type_l5\030\016 \001(\tH\r" + + "\210\001\001\022*\n" + + "\005price\030\017 \001(\0132\033.google.shopping.type.Price\0224\n" + + "\017suggested_price\030\020 \001(\0132\033.google.shopping.type.Price\0222\n" + + "%predicted_impressions_change_fraction\030\021 \001(\001H\016\210\001\001\022-\n" + + " predicted_clicks_change_fraction\030\022 \001(\001H\017\210\001\001\0222\n" + + "%predicted_conversions_change_fraction\030\023 \001(\001H\020\210\001\001\022g\n\r" + + "effectiveness\030\026 \001(\0162P.google.shopping.merchant.reports.v" + + "1alpha.PriceInsightsProductView.Effectiveness\"M\n\r" + + "Effectiveness\022\035\n" + + "\031EFFECTIVENESS_UNSPECIFIED\020\000\022\007\n" + + "\003LOW\020\001\022\n\n" + + "\006MEDIUM\020\002\022\010\n" + + "\004HIGH\020\003B\005\n" + + "\003_idB\013\n" + + "\t_offer_idB\010\n" + + "\006_titleB\010\n" + + "\006_brandB\016\n" + + "\014_category_l1B\016\n" + + "\014_category_l2B\016\n" + + "\014_category_l3B\016\n" + + "\014_category_l4B\016\n" + + "\014_category_l5B\022\n" + + "\020_product_type_l1B\022\n" + + "\020_product_type_l2B\022\n" + + "\020_product_type_l3B\022\n" + + "\020_product_type_l4B\022\n" + + "\020_product_type_l5B(\n" + + "&_predicted_impressions_change_fractionB#\n" + + "!_predicted_clicks_change_fractionB(\n" + + "&_predicted_conversions_change_fraction\"\366\013\n" + + "\035BestSellersProductClusterView\022&\n" + + "\013report_date\030\001 \001(\0132\021.google.type.Date\022r\n" + + "\022report_granularity\030\002 \001(\0162Q.google.shopping.merchant.repor" + + "ts.v1alpha.ReportGranularity.ReportGranularityEnumH\000\210\001\001\022 \n" + + "\023report_country_code\030\003 \001(\tH\001\210\001\001\022\037\n" + + "\022report_category_id\030\004 \001(\003H\002\210\001\001\022\022\n" + + "\005title\030\006 \001(\tH\003\210\001\001\022\022\n" + + "\005brand\030\007 \001(\tH\004\210\001\001\022\030\n" + + "\013category_l1\030\010 \001(\tH\005\210\001\001\022\030\n" + + "\013category_l2\030\t \001(\tH\006\210\001\001\022\030\n" + + "\013category_l3\030\n" + + " \001(\tH\007\210\001\001\022\030\n" + + "\013category_l4\030\013 \001(\tH\010\210\001\001\022\030\n" + + "\013category_l5\030\014 \001(\tH\t\210\001\001\022\025\n\r" + + "variant_gtins\030\r" + + " \003(\t\022v\n" + + "\020inventory_status\030\016 \001(\0162W.google.shopping." + + "merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatusH\n" + + "\210\001\001\022|\n" + + "\026brand_inventory_status\030\017 \001(\0162W.google.sho" + + "pping.merchant.reports.v1alpha.BestSelle" + + "rsProductClusterView.InventoryStatusH\013\210\001\001\022\021\n" + + "\004rank\030\020 \001(\003H\014\210\001\001\022\032\n\r" + + "previous_rank\030\021 \001(\003H\r" + + "\210\001\001\022i\n" + + "\017relative_demand\030\022 \001(\0162K.goog" + + "le.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnumH\016\210\001\001\022r\n" + + "\030previous_relative_demand\030\023 \001(\0162K.google.s" + + "hopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnumH\017\210\001\001\022\204\001\n" + + "\026relative_demand_change\030\024 \001(\0162_.google.shoppi" + + "ng.merchant.reports.v1alpha.RelativeDema" + + "ndChangeType.RelativeDemandChangeTypeEnumH\020\210\001\001\"i\n" + + "\017InventoryStatus\022 \n" + + "\034INVENTORY_STATUS_UNSPECIFIED\020\000\022\014\n" + + "\010IN_STOCK\020\001\022\020\n" + + "\014OUT_OF_STOCK\020\002\022\024\n" + + "\020NOT_IN_INVENTORY\020\003B\025\n" + + "\023_report_granularityB\026\n" + + "\024_report_country_codeB\025\n" + + "\023_report_category_idB\010\n" + + "\006_titleB\010\n" + + "\006_brandB\016\n" + + "\014_category_l1B\016\n" + + "\014_category_l2B\016\n" + + "\014_category_l3B\016\n" + + "\014_category_l4B\016\n" + + "\014_category_l5B\023\n" + + "\021_inventory_statusB\031\n" + + "\027_brand_inventory_statusB\007\n" + + "\005_rankB\020\n" + + "\016_previous_rankB\022\n" + + "\020_relative_demandB\033\n" + + "\031_previous_relative_demandB\031\n" + + "\027_relative_demand_change\"\325\006\n" + + "\024BestSellersBrandView\022&\n" + + "\013report_date\030\001 \001(\0132\021.google.type.Date\022r\n" + + "\022report_granularity\030\002 \001(\0162Q.google.shopping.merchant.repor" + + "ts.v1alpha.ReportGranularity.ReportGranularityEnumH\000\210\001\001\022 \n" + + "\023report_country_code\030\003 \001(\tH\001\210\001\001\022\037\n" + + "\022report_category_id\030\004 \001(\003H\002\210\001\001\022\022\n" + + "\005brand\030\006 \001(\tH\003\210\001\001\022\021\n" + + "\004rank\030\007 \001(\003H\004\210\001\001\022\032\n\r" + + "previous_rank\030\010 \001(\003H\005\210\001\001\022i\n" + + "\017relative_demand\030\t \001(\0162K.google.shopping.merchan" + + "t.reports.v1alpha.RelativeDemand.RelativeDemandEnumH\006\210\001\001\022r\n" + + "\030previous_relative_demand\030\n" + + " \001(\0162K.google.shopping.merchant.re" + + "ports.v1alpha.RelativeDemand.RelativeDemandEnumH\007\210\001\001\022\204\001\n" + + "\026relative_demand_change\030\013 \001(\0162_.google.shopping.merchant.reports" + + ".v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnumH\010\210\001\001B\025\n" + + "\023_report_granularityB\026\n" + + "\024_report_country_codeB\025\n" + + "\023_report_category_idB\010\n" + + "\006_brandB\007\n" + + "\005_rankB\020\n" + + "\016_previous_rankB\022\n" + + "\020_relative_demandB\033\n" + + "\031_previous_relative_demandB\031\n" + + "\027_relative_demand_change\"\337\001\n" + + "\031NonProductPerformanceView\022\037\n" + + "\004date\030\001 \001(\0132\021.google.type.Date\022\037\n" + + "\004week\030\002 \001(\0132\021.google.type.Date\022\023\n" + + "\006clicks\030\003 \001(\003H\000\210\001\001\022\030\n" + + "\013impressions\030\004 \001(\003H\001\210\001\001\022\037\n" + + "\022click_through_rate\030\005 \001(\001H\002\210\001\001B\t\n" + + "\007_clicksB\016\n" + + "\014_impressionsB\025\n" + + "\023_click_through_rate\"\201\005\n" + + "#CompetitiveVisibilityCompetitorView\022\037\n" + + "\004date\030\001 \001(\0132\021.google.type.Date\022\023\n" + + "\006domain\030\002 \001(\tH\000\210\001\001\022\033\n" + + "\016is_your_domain\030\003 \001(\010H\001\210\001\001\022 \n" + + "\023report_country_code\030\004 \001(\tH\002\210\001\001\022\037\n" + + "\022report_category_id\030\005 \001(\003H\003\210\001\001\022f\n" + + "\016traffic_source\030\006 \001(\0162I.google.shopping.merchant.re" + + "ports.v1alpha.TrafficSource.TrafficSourceEnumH\004\210\001\001\022\021\n" + + "\004rank\030\007 \001(\003H\005\210\001\001\022\036\n" + + "\021ads_organic_ratio\030\010 \001(\001H\006\210\001\001\022\036\n" + + "\021page_overlap_rate\030\t \001(\001H\007\210\001\001\022!\n" + + "\024higher_position_rate\030\n" + + " \001(\001H\010\210\001\001\022 \n" + + "\023relative_visibility\030\013 \001(\001H\t\210\001\001B\t\n" + + "\007_domainB\021\n" + + "\017_is_your_domainB\026\n" + + "\024_report_country_codeB\025\n" + + "\023_report_category_idB\021\n" + + "\017_traffic_sourceB\007\n" + + "\005_rankB\024\n" + + "\022_ads_organic_ratioB\024\n" + + "\022_page_overlap_rateB\027\n" + + "\025_higher_position_rateB\026\n" + + "\024_relative_visibility\"\310\004\n" + + "$CompetitiveVisibilityTopMerchantView\022\037\n" + + "\004date\030\001 \001(\0132\021.google.type.Date\022\023\n" + + "\006domain\030\002 \001(\tH\000\210\001\001\022\033\n" + + "\016is_your_domain\030\003 \001(\010H\001\210\001\001\022 \n" + + "\023report_country_code\030\004 \001(\tH\002\210\001\001\022\037\n" + + "\022report_category_id\030\005 \001(\003H\003\210\001\001\022f\n" + + "\016traffic_source\030\006 \001(\0162I.google.shopping.mercha" + + "nt.reports.v1alpha.TrafficSource.TrafficSourceEnumH\004\210\001\001\022\021\n" + + "\004rank\030\007 \001(\003H\005\210\001\001\022\036\n" + + "\021ads_organic_ratio\030\010 \001(\001H\006\210\001\001\022\036\n" + + "\021page_overlap_rate\030\t \001(\001H\007\210\001\001\022!\n" + + "\024higher_position_rate\030\n" + + " \001(\001H\010\210\001\001B\t\n" + + "\007_domainB\021\n" + + "\017_is_your_domainB\026\n" + + "\024_report_country_codeB\025\n" + + "\023_report_category_idB\021\n" + + "\017_traffic_sourceB\007\n" + + "\005_rankB\024\n" + + "\022_ads_organic_ratioB\024\n" + + "\022_page_overlap_rateB\027\n" + + "\025_higher_position_rate\"\330\003\n" + + "\"CompetitiveVisibilityBenchmarkView\022\037\n" + + "\004date\030\001 \001(\0132\021.google.type.Date\022 \n" + + "\023report_country_code\030\002 \001(\tH\000\210\001\001\022\037\n" + + "\022report_category_id\030\003 \001(\003H\001\210\001\001\022f\n" + + "\016traffic_source\030\004 \001(\0162I.google." + + "shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnumH\002\210\001\001\022)\n" + + "\034your_domain_visibility_trend\030\005 \001(\001H\003\210\001\001\0220\n" + + "#category_benchmark_visibility_trend\030\006 \001(\001H\004\210\001\001B\026\n" + + "\024_report_country_codeB\025\n" + + "\023_report_category_idB\021\n" + + "\017_traffic_sourceB\037\n" + + "\035_your_domain_visibility_trendB&\n" + + "$_category_benchmark_visibility_trend\"e\n" + + "\017MarketingMethod\"R\n" + + "\023MarketingMethodEnum\022%\n" + + "!MARKETING_METHOD_ENUM_UNSPECIFIED\020\000\022\013\n" + + "\007ORGANIC\020\001\022\007\n" + + "\003ADS\020\002\"n\n" + + "\021ReportGranularity\"Y\n" + + "\025ReportGranularityEnum\022\'\n" + + "#REPORT_GRANULARITY_ENUM_UNSPECIFIED\020\000\022\n\n" + + "\006WEEKLY\020\001\022\013\n" + + "\007MONTHLY\020\002\"\210\001\n" + + "\016RelativeDemand\"v\n" + + "\022RelativeDemandEnum\022$\n" + + " RELATIVE_DEMAND_ENUM_UNSPECIFIED\020\000\022\014\n" + + "\010VERY_LOW\020\n" + + "\022\007\n" + + "\003LOW\020\024\022\n\n" + + "\006MEDIUM\020\036\022\010\n" + + "\004HIGH\020(\022\r\n" + + "\tVERY_HIGH\0202\"\215\001\n" + + "\030RelativeDemandChangeType\"q\n" + + "\034RelativeDemandChangeTypeEnum\0220\n" + + ",RELATIVE_DEMAND_CHANGE_TYPE_ENUM_UNSPECIFIED\020\000\022\n\n" + + "\006SINKER\020\001\022\010\n" + + "\004FLAT\020\002\022\t\n" + + "\005RISER\020\003\"h\n\r" + + "TrafficSource\"W\n" + + "\021TrafficSourceEnum\022#\n" + + "\037TRAFFIC_SOURCE_ENUM_UNSPECIFIED\020\000\022\013\n" + + "\007ORGANIC\020\001\022\007\n" + + "\003ADS\020\002\022\007\n" + + "\003ALL\020\003\"\265\003\n" + + "\035YoutubeCreatorPerformanceView\022\037\n" + + "\004date\030\001 \001(\0132\021.google.type.Date\022\022\n" + + "\005title\030\002 \001(\tH\000\210\001\001\022\027\n\n" + + "channel_id\030\003 \001(\tH\001\210\001\001\0225\n" + + "\013gross_sales\030\004" + + " \001(\0132\033.google.shopping.type.PriceH\002\210\001\001\0225\n" + + "\013commissions\030\005" + + " \001(\0132\033.google.shopping.type.PriceH\003\210\001\001\022\023\n" + + "\006orders\030\006 \001(\003H\004\210\001\001\022\022\n" + + "\005views\030\007 \001(\003H\005\210\001\001\022\023\n" + + "\006clicks\030\010 \001(\003H\006\210\001\001\0223\n" + + "\tnet_sales\030\t \001(\0132\033.google.shopping.type.PriceH\007\210\001\001B\010\n" + + "\006_titleB\r\n" + + "\013_channel_idB\016\n" + + "\014_gross_salesB\016\n" + + "\014_commissionsB\t\n" + + "\007_ordersB\010\n" + + "\006_viewsB\t\n" + + "\007_clicksB\014\n\n" + + "_net_sales\"\207\004\n" + + "\035YoutubeContentPerformanceView\022\037\n" + + "\004date\030\001 \001(\0132\021.google.type.Date\022\022\n" + + "\005title\030\002 \001(\tH\000\210\001\001\022\025\n" + + "\010video_id\030\003 \001(\tH\001\210\001\001\022\032\n\r" + + "channel_title\030\004 \001(\tH\002\210\001\001\022\027\n\n" + + "channel_id\030\005 \001(\tH\003\210\001\001\0225\n" + + "\013gross_sales\030\006" + + " \001(\0132\033.google.shopping.type.PriceH\004\210\001\001\0225\n" + + "\013commissions\030\007" + + " \001(\0132\033.google.shopping.type.PriceH\005\210\001\001\022\023\n" + + "\006orders\030\010 \001(\003H\006\210\001\001\022\022\n" + + "\005views\030\t \001(\003H\007\210\001\001\022\023\n" + + "\006clicks\030\n" + + " \001(\003H\010\210\001\001\0223\n" + + "\tnet_sales\030\013 \001(\0132\033.google.shopping.type.PriceH\t\210\001\001B\010\n" + + "\006_titleB\013\n" + + "\t_video_idB\020\n" + + "\016_channel_titleB\r\n" + + "\013_channel_idB\016\n" + + "\014_gross_salesB\016\n" + + "\014_commissionsB\t\n" + + "\007_ordersB\010\n" + + "\006_viewsB\t\n" + + "\007_clicksB\014\n\n" + + "_net_sales\"\255\004\n" + + "\035YoutubeProductPerformanceView\022\037\n" + + "\004date\030\001 \001(\0132\021.google.type.Date\022\022\n" + + "\005title\030\002 \001(\tH\000\210\001\001\022\025\n" + + "\010offer_id\030\003 \001(\tH\001\210\001\001\022!\n" + + "\024distinct_video_count\030\004 \001(\003H\002\210\001\001\022#\n" + + "\026distinct_creator_count\030\005 \001(\003H\003\210\001\001\0225\n" + + "\013gross_sales\030\006" + + " \001(\0132\033.google.shopping.type.PriceH\004\210\001\001\0225\n" + + "\013commissions\030\007" + + " \001(\0132\033.google.shopping.type.PriceH\005\210\001\001\022\023\n" + + "\006orders\030\010 \001(\003H\006\210\001\001\022\022\n" + + "\005views\030\t \001(\003H\007\210\001\001\022\023\n" + + "\006clicks\030\n" + + " \001(\003H\010\210\001\001\0223\n" + + "\tnet_sales\030\013 \001(\0132\033.google.shopping.type.PriceH\t\210\001\001B\010\n" + + "\006_titleB\013\n" + + "\t_offer_idB\027\n" + + "\025_distinct_video_countB\031\n" + + "\027_distinct_creator_countB\016\n" + + "\014_gross_salesB\016\n" + + "\014_commissionsB\t\n" + + "\007_ordersB\010\n" + + "\006_viewsB\t\n" + + "\007_clicksB\014\n\n" + + "_net_sales2\237\002\n\r" + + "ReportService\022\304\001\n" + + "\006Search\0227.google.shopping.merchant.reports.v1alpha.SearchRequest\0328.goo" + + "gle.shopping.merchant.reports.v1alpha.Se" + + "archResponse\"G\332A\006parent\202\323\344\223\0028\"3/reports/" + + "v1alpha/{parent=accounts/*}/reports:sear" + + "ch:\001*\032G\312A\032merchantapi.googleapis.com\322A\'h" + + "ttps://www.googleapis.com/auth/contentB\214\001\n" + + ",com.google.shopping.merchant.reports.v1alphaB\014ReportsProtoP\001ZLcloud.google.co" + + "m/go/shopping/merchant/reports/apiv1alpha/reportspb;reportspbb\006proto3" + }; + descriptor = + com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( + descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + com.google.api.AnnotationsProto.getDescriptor(), + com.google.api.ClientProto.getDescriptor(), + com.google.api.FieldBehaviorProto.getDescriptor(), + com.google.protobuf.TimestampProto.getDescriptor(), + com.google.shopping.type.TypesProto.getDescriptor(), + com.google.type.DateProto.getDescriptor(), + }); + internal_static_google_shopping_merchant_reports_v1alpha_SearchRequest_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_google_shopping_merchant_reports_v1alpha_SearchRequest_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_SearchRequest_descriptor, + new java.lang.String[] { + "Parent", "Query", "PageSize", "PageToken", + }); + internal_static_google_shopping_merchant_reports_v1alpha_SearchResponse_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_google_shopping_merchant_reports_v1alpha_SearchResponse_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_SearchResponse_descriptor, + new java.lang.String[] { + "Results", "NextPageToken", + }); + internal_static_google_shopping_merchant_reports_v1alpha_ReportRow_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_google_shopping_merchant_reports_v1alpha_ReportRow_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_ReportRow_descriptor, + new java.lang.String[] { + "ProductPerformanceView", + "NonProductPerformanceView", + "ProductView", + "PriceCompetitivenessProductView", + "PriceInsightsProductView", + "BestSellersProductClusterView", + "BestSellersBrandView", + "CompetitiveVisibilityCompetitorView", + "CompetitiveVisibilityTopMerchantView", + "CompetitiveVisibilityBenchmarkView", + "YoutubeCreatorPerformanceView", + "YoutubeContentPerformanceView", + "YoutubeProductPerformanceView", + }); + internal_static_google_shopping_merchant_reports_v1alpha_ProductPerformanceView_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_google_shopping_merchant_reports_v1alpha_ProductPerformanceView_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_ProductPerformanceView_descriptor, + new java.lang.String[] { + "MarketingMethod", + "Date", + "Week", + "CustomerCountryCode", + "OfferId", + "Title", + "Brand", + "CategoryL1", + "CategoryL2", + "CategoryL3", + "CategoryL4", + "CategoryL5", + "ProductTypeL1", + "ProductTypeL2", + "ProductTypeL3", + "ProductTypeL4", + "ProductTypeL5", + "CustomLabel0", + "CustomLabel1", + "CustomLabel2", + "CustomLabel3", + "CustomLabel4", + "Clicks", + "Impressions", + "ClickThroughRate", + "Conversions", + "ConversionValue", + "ConversionRate", + }); + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_descriptor = + getDescriptor().getMessageTypes().get(4); + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_descriptor, + new java.lang.String[] { + "Id", + "Channel", + "LanguageCode", + "FeedLabel", + "OfferId", + "Title", + "Brand", + "CategoryL1", + "CategoryL2", + "CategoryL3", + "CategoryL4", + "CategoryL5", + "ProductTypeL1", + "ProductTypeL2", + "ProductTypeL3", + "ProductTypeL4", + "ProductTypeL5", + "Price", + "Condition", + "Availability", + "ShippingLabel", + "Gtin", + "ItemGroupId", + "ThumbnailLink", + "CreationTime", + "ExpirationDate", + "AggregatedReportingContextStatus", + "ItemIssues", + "ClickPotential", + "ClickPotentialRank", + }); + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_descriptor = + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_descriptor + .getNestedTypes() + .get(0); + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_descriptor, + new java.lang.String[] { + "Type", "Severity", "Resolution", + }); + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueType_descriptor = + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_descriptor + .getNestedTypes() + .get(0); + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueType_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueType_descriptor, + new java.lang.String[] { + "Code", "CanonicalAttribute", + }); + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_descriptor = + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_descriptor + .getNestedTypes() + .get(1); + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_descriptor, + new java.lang.String[] { + "SeverityPerReportingContext", "AggregatedSeverity", + }); + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_IssueSeverityPerReportingContext_descriptor = + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_descriptor + .getNestedTypes() + .get(0); + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_IssueSeverityPerReportingContext_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_IssueSeverityPerReportingContext_descriptor, + new java.lang.String[] { + "ReportingContext", "DisapprovedCountries", "DemotedCountries", + }); + internal_static_google_shopping_merchant_reports_v1alpha_PriceCompetitivenessProductView_descriptor = + getDescriptor().getMessageTypes().get(5); + internal_static_google_shopping_merchant_reports_v1alpha_PriceCompetitivenessProductView_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_PriceCompetitivenessProductView_descriptor, + new java.lang.String[] { + "ReportCountryCode", + "Id", + "OfferId", + "Title", + "Brand", + "CategoryL1", + "CategoryL2", + "CategoryL3", + "CategoryL4", + "CategoryL5", + "ProductTypeL1", + "ProductTypeL2", + "ProductTypeL3", + "ProductTypeL4", + "ProductTypeL5", + "Price", + "BenchmarkPrice", + }); + internal_static_google_shopping_merchant_reports_v1alpha_PriceInsightsProductView_descriptor = + getDescriptor().getMessageTypes().get(6); + internal_static_google_shopping_merchant_reports_v1alpha_PriceInsightsProductView_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_PriceInsightsProductView_descriptor, + new java.lang.String[] { + "Id", + "OfferId", + "Title", + "Brand", + "CategoryL1", + "CategoryL2", + "CategoryL3", + "CategoryL4", + "CategoryL5", + "ProductTypeL1", + "ProductTypeL2", + "ProductTypeL3", + "ProductTypeL4", + "ProductTypeL5", + "Price", + "SuggestedPrice", + "PredictedImpressionsChangeFraction", + "PredictedClicksChangeFraction", + "PredictedConversionsChangeFraction", + "Effectiveness", + }); + internal_static_google_shopping_merchant_reports_v1alpha_BestSellersProductClusterView_descriptor = + getDescriptor().getMessageTypes().get(7); + internal_static_google_shopping_merchant_reports_v1alpha_BestSellersProductClusterView_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_BestSellersProductClusterView_descriptor, + new java.lang.String[] { + "ReportDate", + "ReportGranularity", + "ReportCountryCode", + "ReportCategoryId", + "Title", + "Brand", + "CategoryL1", + "CategoryL2", + "CategoryL3", + "CategoryL4", + "CategoryL5", + "VariantGtins", + "InventoryStatus", + "BrandInventoryStatus", + "Rank", + "PreviousRank", + "RelativeDemand", + "PreviousRelativeDemand", + "RelativeDemandChange", + }); + internal_static_google_shopping_merchant_reports_v1alpha_BestSellersBrandView_descriptor = + getDescriptor().getMessageTypes().get(8); + internal_static_google_shopping_merchant_reports_v1alpha_BestSellersBrandView_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_BestSellersBrandView_descriptor, + new java.lang.String[] { + "ReportDate", + "ReportGranularity", + "ReportCountryCode", + "ReportCategoryId", + "Brand", + "Rank", + "PreviousRank", + "RelativeDemand", + "PreviousRelativeDemand", + "RelativeDemandChange", + }); + internal_static_google_shopping_merchant_reports_v1alpha_NonProductPerformanceView_descriptor = + getDescriptor().getMessageTypes().get(9); + internal_static_google_shopping_merchant_reports_v1alpha_NonProductPerformanceView_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_NonProductPerformanceView_descriptor, + new java.lang.String[] { + "Date", "Week", "Clicks", "Impressions", "ClickThroughRate", + }); + internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityCompetitorView_descriptor = + getDescriptor().getMessageTypes().get(10); + internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityCompetitorView_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityCompetitorView_descriptor, + new java.lang.String[] { + "Date", + "Domain", + "IsYourDomain", + "ReportCountryCode", + "ReportCategoryId", + "TrafficSource", + "Rank", + "AdsOrganicRatio", + "PageOverlapRate", + "HigherPositionRate", + "RelativeVisibility", + }); + internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityTopMerchantView_descriptor = + getDescriptor().getMessageTypes().get(11); + internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityTopMerchantView_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityTopMerchantView_descriptor, + new java.lang.String[] { + "Date", + "Domain", + "IsYourDomain", + "ReportCountryCode", + "ReportCategoryId", + "TrafficSource", + "Rank", + "AdsOrganicRatio", + "PageOverlapRate", + "HigherPositionRate", + }); + internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityBenchmarkView_descriptor = + getDescriptor().getMessageTypes().get(12); + internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityBenchmarkView_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityBenchmarkView_descriptor, + new java.lang.String[] { + "Date", + "ReportCountryCode", + "ReportCategoryId", + "TrafficSource", + "YourDomainVisibilityTrend", + "CategoryBenchmarkVisibilityTrend", + }); + internal_static_google_shopping_merchant_reports_v1alpha_MarketingMethod_descriptor = + getDescriptor().getMessageTypes().get(13); + internal_static_google_shopping_merchant_reports_v1alpha_MarketingMethod_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_MarketingMethod_descriptor, + new java.lang.String[] {}); + internal_static_google_shopping_merchant_reports_v1alpha_ReportGranularity_descriptor = + getDescriptor().getMessageTypes().get(14); + internal_static_google_shopping_merchant_reports_v1alpha_ReportGranularity_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_ReportGranularity_descriptor, + new java.lang.String[] {}); + internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemand_descriptor = + getDescriptor().getMessageTypes().get(15); + internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemand_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemand_descriptor, + new java.lang.String[] {}); + internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemandChangeType_descriptor = + getDescriptor().getMessageTypes().get(16); + internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemandChangeType_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemandChangeType_descriptor, + new java.lang.String[] {}); + internal_static_google_shopping_merchant_reports_v1alpha_TrafficSource_descriptor = + getDescriptor().getMessageTypes().get(17); + internal_static_google_shopping_merchant_reports_v1alpha_TrafficSource_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_TrafficSource_descriptor, + new java.lang.String[] {}); + internal_static_google_shopping_merchant_reports_v1alpha_YoutubeCreatorPerformanceView_descriptor = + getDescriptor().getMessageTypes().get(18); + internal_static_google_shopping_merchant_reports_v1alpha_YoutubeCreatorPerformanceView_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_YoutubeCreatorPerformanceView_descriptor, + new java.lang.String[] { + "Date", + "Title", + "ChannelId", + "GrossSales", + "Commissions", + "Orders", + "Views", + "Clicks", + "NetSales", + }); + internal_static_google_shopping_merchant_reports_v1alpha_YoutubeContentPerformanceView_descriptor = + getDescriptor().getMessageTypes().get(19); + internal_static_google_shopping_merchant_reports_v1alpha_YoutubeContentPerformanceView_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_YoutubeContentPerformanceView_descriptor, + new java.lang.String[] { + "Date", + "Title", + "VideoId", + "ChannelTitle", + "ChannelId", + "GrossSales", + "Commissions", + "Orders", + "Views", + "Clicks", + "NetSales", + }); + internal_static_google_shopping_merchant_reports_v1alpha_YoutubeProductPerformanceView_descriptor = + getDescriptor().getMessageTypes().get(20); + internal_static_google_shopping_merchant_reports_v1alpha_YoutubeProductPerformanceView_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_shopping_merchant_reports_v1alpha_YoutubeProductPerformanceView_descriptor, + new java.lang.String[] { + "Date", + "Title", + "OfferId", + "DistinctVideoCount", + "DistinctCreatorCount", + "GrossSales", + "Commissions", + "Orders", + "Views", + "Clicks", + "NetSales", + }); + com.google.protobuf.ExtensionRegistry registry = + com.google.protobuf.ExtensionRegistry.newInstance(); + registry.add(com.google.api.ClientProto.defaultHost); + registry.add(com.google.api.FieldBehaviorProto.fieldBehavior); + registry.add(com.google.api.AnnotationsProto.http); + registry.add(com.google.api.ClientProto.methodSignature); + registry.add(com.google.api.ClientProto.oauthScopes); + com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor( + descriptor, registry); + com.google.api.AnnotationsProto.getDescriptor(); + com.google.api.ClientProto.getDescriptor(); + com.google.api.FieldBehaviorProto.getDescriptor(); + com.google.protobuf.TimestampProto.getDescriptor(); + com.google.shopping.type.TypesProto.getDescriptor(); + com.google.type.DateProto.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchRequest.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchRequest.java new file mode 100644 index 000000000000..f38f5dc7e452 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchRequest.java @@ -0,0 +1,1170 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Request message for the `ReportService.Search` method.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.SearchRequest} + */ +public final class SearchRequest extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.SearchRequest) + SearchRequestOrBuilder { + private static final long serialVersionUID = 0L; + + // Use SearchRequest.newBuilder() to construct. + private SearchRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private SearchRequest() { + parent_ = ""; + query_ = ""; + pageToken_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new SearchRequest(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_SearchRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_SearchRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.SearchRequest.class, + com.google.shopping.merchant.reports.v1alpha.SearchRequest.Builder.class); + } + + public static final int PARENT_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object parent_ = ""; + + /** + * + * + *
+   * Required. Id of the account making the call. Must be a standalone account
+   * or an MCA subaccount. Format: accounts/{account}
+   * 
+ * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The parent. + */ + @java.lang.Override + public java.lang.String getParent() { + java.lang.Object ref = parent_; + 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(); + parent_ = s; + return s; + } + } + + /** + * + * + *
+   * Required. Id of the account making the call. Must be a standalone account
+   * or an MCA subaccount. Format: accounts/{account}
+   * 
+ * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for parent. + */ + @java.lang.Override + public com.google.protobuf.ByteString getParentBytes() { + java.lang.Object ref = parent_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + parent_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int QUERY_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object query_ = ""; + + /** + * + * + *
+   * Required. Query that defines a report to be retrieved.
+   *
+   * For details on how to construct your query, see the Query Language
+   * guide. For the full list of available tables and fields, see the Available
+   * fields.
+   * 
+ * + * string query = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @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; + } + } + + /** + * + * + *
+   * Required. Query that defines a report to be retrieved.
+   *
+   * For details on how to construct your query, see the Query Language
+   * guide. For the full list of available tables and fields, see the Available
+   * fields.
+   * 
+ * + * string query = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for query. + */ + @java.lang.Override + public com.google.protobuf.ByteString getQueryBytes() { + java.lang.Object ref = query_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + query_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PAGE_SIZE_FIELD_NUMBER = 3; + private int pageSize_ = 0; + + /** + * + * + *
+   * Optional. Number of `ReportRows` to retrieve in a single page. Defaults to
+   * 1000. Values above 5000 are coerced to 5000.
+   * 
+ * + * int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageSize. + */ + @java.lang.Override + public int getPageSize() { + return pageSize_; + } + + public static final int PAGE_TOKEN_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object pageToken_ = ""; + + /** + * + * + *
+   * Optional. Token of the page to retrieve. If not specified, the first page
+   * of results is returned. In order to request the next page of results, the
+   * value obtained from `next_page_token` in the previous response should be
+   * used.
+   * 
+ * + * string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageToken. + */ + @java.lang.Override + public java.lang.String getPageToken() { + java.lang.Object ref = pageToken_; + 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(); + pageToken_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. Token of the page to retrieve. If not specified, the first page
+   * of results is returned. In order to request the next page of results, the
+   * value obtained from `next_page_token` in the previous response should be
+   * used.
+   * 
+ * + * string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pageToken. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPageTokenBytes() { + java.lang.Object ref = pageToken_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + pageToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + 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(parent_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, parent_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(query_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, query_); + } + if (pageSize_ != 0) { + output.writeInt32(3, pageSize_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, pageToken_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(parent_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, parent_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(query_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, query_); + } + if (pageSize_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, pageSize_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, pageToken_); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.SearchRequest)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.SearchRequest other = + (com.google.shopping.merchant.reports.v1alpha.SearchRequest) obj; + + if (!getParent().equals(other.getParent())) return false; + if (!getQuery().equals(other.getQuery())) return false; + if (getPageSize() != other.getPageSize()) return false; + if (!getPageToken().equals(other.getPageToken())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) 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) + PARENT_FIELD_NUMBER; + hash = (53 * hash) + getParent().hashCode(); + hash = (37 * hash) + QUERY_FIELD_NUMBER; + hash = (53 * hash) + getQuery().hashCode(); + hash = (37 * hash) + PAGE_SIZE_FIELD_NUMBER; + hash = (53 * hash) + getPageSize(); + hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER; + hash = (53 * hash) + getPageToken().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchRequest parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchRequest parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchRequest 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.shopping.merchant.reports.v1alpha.SearchRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchRequest parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchRequest parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchRequest 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.shopping.merchant.reports.v1alpha.SearchRequest parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchRequest 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.shopping.merchant.reports.v1alpha.SearchRequest parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchRequest 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.shopping.merchant.reports.v1alpha.SearchRequest 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 the `ReportService.Search` method.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.SearchRequest} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.SearchRequest) + com.google.shopping.merchant.reports.v1alpha.SearchRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_SearchRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_SearchRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.SearchRequest.class, + com.google.shopping.merchant.reports.v1alpha.SearchRequest.Builder.class); + } + + // Construct using com.google.shopping.merchant.reports.v1alpha.SearchRequest.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + parent_ = ""; + query_ = ""; + pageSize_ = 0; + pageToken_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_SearchRequest_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.SearchRequest getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.SearchRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.SearchRequest build() { + com.google.shopping.merchant.reports.v1alpha.SearchRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.SearchRequest buildPartial() { + com.google.shopping.merchant.reports.v1alpha.SearchRequest result = + new com.google.shopping.merchant.reports.v1alpha.SearchRequest(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.shopping.merchant.reports.v1alpha.SearchRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.parent_ = parent_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.query_ = query_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.pageSize_ = pageSize_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.pageToken_ = pageToken_; + } + } + + @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.shopping.merchant.reports.v1alpha.SearchRequest) { + return mergeFrom((com.google.shopping.merchant.reports.v1alpha.SearchRequest) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.shopping.merchant.reports.v1alpha.SearchRequest other) { + if (other == com.google.shopping.merchant.reports.v1alpha.SearchRequest.getDefaultInstance()) + return this; + if (!other.getParent().isEmpty()) { + parent_ = other.parent_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getQuery().isEmpty()) { + query_ = other.query_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getPageSize() != 0) { + setPageSize(other.getPageSize()); + } + if (!other.getPageToken().isEmpty()) { + pageToken_ = other.pageToken_; + bitField0_ |= 0x00000008; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + parent_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + query_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: + { + pageSize_ = input.readInt32(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 34: + { + pageToken_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.lang.Object parent_ = ""; + + /** + * + * + *
+     * Required. Id of the account making the call. Must be a standalone account
+     * or an MCA subaccount. Format: accounts/{account}
+     * 
+ * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The parent. + */ + public java.lang.String getParent() { + java.lang.Object ref = parent_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + parent_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Required. Id of the account making the call. Must be a standalone account
+     * or an MCA subaccount. Format: accounts/{account}
+     * 
+ * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for parent. + */ + public com.google.protobuf.ByteString getParentBytes() { + java.lang.Object ref = parent_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + parent_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Required. Id of the account making the call. Must be a standalone account
+     * or an MCA subaccount. Format: accounts/{account}
+     * 
+ * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The parent to set. + * @return This builder for chaining. + */ + public Builder setParent(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + parent_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. Id of the account making the call. Must be a standalone account
+     * or an MCA subaccount. Format: accounts/{account}
+     * 
+ * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearParent() { + parent_ = getDefaultInstance().getParent(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. Id of the account making the call. Must be a standalone account
+     * or an MCA subaccount. Format: accounts/{account}
+     * 
+ * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for parent to set. + * @return This builder for chaining. + */ + public Builder setParentBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + parent_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object query_ = ""; + + /** + * + * + *
+     * Required. Query that defines a report to be retrieved.
+     *
+     * For details on how to construct your query, see the Query Language
+     * guide. For the full list of available tables and fields, see the Available
+     * fields.
+     * 
+ * + * string query = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The query. + */ + public java.lang.String getQuery() { + java.lang.Object ref = query_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + query_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Required. Query that defines a report to be retrieved.
+     *
+     * For details on how to construct your query, see the Query Language
+     * guide. For the full list of available tables and fields, see the Available
+     * fields.
+     * 
+ * + * string query = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for query. + */ + public com.google.protobuf.ByteString getQueryBytes() { + java.lang.Object ref = query_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + query_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Required. Query that defines a report to be retrieved.
+     *
+     * For details on how to construct your query, see the Query Language
+     * guide. For the full list of available tables and fields, see the Available
+     * fields.
+     * 
+ * + * string query = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The query to set. + * @return This builder for chaining. + */ + public Builder setQuery(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + query_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. Query that defines a report to be retrieved.
+     *
+     * For details on how to construct your query, see the Query Language
+     * guide. For the full list of available tables and fields, see the Available
+     * fields.
+     * 
+ * + * string query = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearQuery() { + query_ = getDefaultInstance().getQuery(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. Query that defines a report to be retrieved.
+     *
+     * For details on how to construct your query, see the Query Language
+     * guide. For the full list of available tables and fields, see the Available
+     * fields.
+     * 
+ * + * string query = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for query to set. + * @return This builder for chaining. + */ + public Builder setQueryBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + query_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private int pageSize_; + + /** + * + * + *
+     * Optional. Number of `ReportRows` to retrieve in a single page. Defaults to
+     * 1000. Values above 5000 are coerced to 5000.
+     * 
+ * + * int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageSize. + */ + @java.lang.Override + public int getPageSize() { + return pageSize_; + } + + /** + * + * + *
+     * Optional. Number of `ReportRows` to retrieve in a single page. Defaults to
+     * 1000. Values above 5000 are coerced to 5000.
+     * 
+ * + * int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The pageSize to set. + * @return This builder for chaining. + */ + public Builder setPageSize(int value) { + + pageSize_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Number of `ReportRows` to retrieve in a single page. Defaults to
+     * 1000. Values above 5000 are coerced to 5000.
+     * 
+ * + * int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearPageSize() { + bitField0_ = (bitField0_ & ~0x00000004); + pageSize_ = 0; + onChanged(); + return this; + } + + private java.lang.Object pageToken_ = ""; + + /** + * + * + *
+     * Optional. Token of the page to retrieve. If not specified, the first page
+     * of results is returned. In order to request the next page of results, the
+     * value obtained from `next_page_token` in the previous response should be
+     * used.
+     * 
+ * + * string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageToken. + */ + public java.lang.String getPageToken() { + java.lang.Object ref = pageToken_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pageToken_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. Token of the page to retrieve. If not specified, the first page
+     * of results is returned. In order to request the next page of results, the
+     * value obtained from `next_page_token` in the previous response should be
+     * used.
+     * 
+ * + * string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pageToken. + */ + public com.google.protobuf.ByteString getPageTokenBytes() { + java.lang.Object ref = pageToken_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + pageToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. Token of the page to retrieve. If not specified, the first page
+     * of results is returned. In order to request the next page of results, the
+     * value obtained from `next_page_token` in the previous response should be
+     * used.
+     * 
+ * + * string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The pageToken to set. + * @return This builder for chaining. + */ + public Builder setPageToken(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + pageToken_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Token of the page to retrieve. If not specified, the first page
+     * of results is returned. In order to request the next page of results, the
+     * value obtained from `next_page_token` in the previous response should be
+     * used.
+     * 
+ * + * string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearPageToken() { + pageToken_ = getDefaultInstance().getPageToken(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Token of the page to retrieve. If not specified, the first page
+     * of results is returned. In order to request the next page of results, the
+     * value obtained from `next_page_token` in the previous response should be
+     * used.
+     * 
+ * + * string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for pageToken to set. + * @return This builder for chaining. + */ + public Builder setPageTokenBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + pageToken_ = value; + bitField0_ |= 0x00000008; + 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.shopping.merchant.reports.v1alpha.SearchRequest) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.SearchRequest) + private static final com.google.shopping.merchant.reports.v1alpha.SearchRequest DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.SearchRequest(); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SearchRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.SearchRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchRequestOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchRequestOrBuilder.java new file mode 100644 index 000000000000..e083fe9b3ae4 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchRequestOrBuilder.java @@ -0,0 +1,134 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface SearchRequestOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.SearchRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Required. Id of the account making the call. Must be a standalone account
+   * or an MCA subaccount. Format: accounts/{account}
+   * 
+ * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The parent. + */ + java.lang.String getParent(); + + /** + * + * + *
+   * Required. Id of the account making the call. Must be a standalone account
+   * or an MCA subaccount. Format: accounts/{account}
+   * 
+ * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for parent. + */ + com.google.protobuf.ByteString getParentBytes(); + + /** + * + * + *
+   * Required. Query that defines a report to be retrieved.
+   *
+   * For details on how to construct your query, see the Query Language
+   * guide. For the full list of available tables and fields, see the Available
+   * fields.
+   * 
+ * + * string query = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The query. + */ + java.lang.String getQuery(); + + /** + * + * + *
+   * Required. Query that defines a report to be retrieved.
+   *
+   * For details on how to construct your query, see the Query Language
+   * guide. For the full list of available tables and fields, see the Available
+   * fields.
+   * 
+ * + * string query = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for query. + */ + com.google.protobuf.ByteString getQueryBytes(); + + /** + * + * + *
+   * Optional. Number of `ReportRows` to retrieve in a single page. Defaults to
+   * 1000. Values above 5000 are coerced to 5000.
+   * 
+ * + * int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageSize. + */ + int getPageSize(); + + /** + * + * + *
+   * Optional. Token of the page to retrieve. If not specified, the first page
+   * of results is returned. In order to request the next page of results, the
+   * value obtained from `next_page_token` in the previous response should be
+   * used.
+   * 
+ * + * string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageToken. + */ + java.lang.String getPageToken(); + + /** + * + * + *
+   * Optional. Token of the page to retrieve. If not specified, the first page
+   * of results is returned. In order to request the next page of results, the
+   * value obtained from `next_page_token` in the previous response should be
+   * used.
+   * 
+ * + * string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pageToken. + */ + com.google.protobuf.ByteString getPageTokenBytes(); +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchResponse.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchResponse.java new file mode 100644 index 000000000000..41fe2845232a --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchResponse.java @@ -0,0 +1,1169 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Response message for the `ReportService.Search` method.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.SearchResponse} + */ +public final class SearchResponse extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.SearchResponse) + SearchResponseOrBuilder { + private static final long serialVersionUID = 0L; + + // Use SearchResponse.newBuilder() to construct. + private SearchResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private SearchResponse() { + results_ = java.util.Collections.emptyList(); + nextPageToken_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new SearchResponse(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_SearchResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_SearchResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.SearchResponse.class, + com.google.shopping.merchant.reports.v1alpha.SearchResponse.Builder.class); + } + + public static final int RESULTS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List results_; + + /** + * + * + *
+   * Rows that matched the search query.
+   * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + @java.lang.Override + public java.util.List getResultsList() { + return results_; + } + + /** + * + * + *
+   * Rows that matched the search query.
+   * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + @java.lang.Override + public java.util.List + getResultsOrBuilderList() { + return results_; + } + + /** + * + * + *
+   * Rows that matched the search query.
+   * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + @java.lang.Override + public int getResultsCount() { + return results_.size(); + } + + /** + * + * + *
+   * Rows that matched the search query.
+   * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ReportRow getResults(int index) { + return results_.get(index); + } + + /** + * + * + *
+   * Rows that matched the search query.
+   * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.ReportRowOrBuilder getResultsOrBuilder( + int index) { + return results_.get(index); + } + + public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object nextPageToken_ = ""; + + /** + * + * + *
+   * Token which can be sent as `page_token` to retrieve the next page. If
+   * omitted, there are no subsequent pages.
+   * 
+ * + * string next_page_token = 2; + * + * @return The nextPageToken. + */ + @java.lang.Override + public java.lang.String getNextPageToken() { + java.lang.Object ref = nextPageToken_; + 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(); + nextPageToken_ = s; + return s; + } + } + + /** + * + * + *
+   * Token which can be sent as `page_token` to retrieve the next page. If
+   * omitted, there are no subsequent pages.
+   * 
+ * + * string next_page_token = 2; + * + * @return The bytes for nextPageToken. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNextPageTokenBytes() { + java.lang.Object ref = nextPageToken_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + nextPageToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + 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 { + for (int i = 0; i < results_.size(); i++) { + output.writeMessage(1, results_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, nextPageToken_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < results_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, results_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, nextPageToken_); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.SearchResponse)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.SearchResponse other = + (com.google.shopping.merchant.reports.v1alpha.SearchResponse) obj; + + if (!getResultsList().equals(other.getResultsList())) return false; + if (!getNextPageToken().equals(other.getNextPageToken())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getResultsCount() > 0) { + hash = (37 * hash) + RESULTS_FIELD_NUMBER; + hash = (53 * hash) + getResultsList().hashCode(); + } + hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER; + hash = (53 * hash) + getNextPageToken().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchResponse parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchResponse parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchResponse 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.shopping.merchant.reports.v1alpha.SearchResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchResponse parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchResponse parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchResponse 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.shopping.merchant.reports.v1alpha.SearchResponse parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchResponse 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.shopping.merchant.reports.v1alpha.SearchResponse parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchResponse 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.shopping.merchant.reports.v1alpha.SearchResponse 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 message for the `ReportService.Search` method.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.SearchResponse} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.SearchResponse) + com.google.shopping.merchant.reports.v1alpha.SearchResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_SearchResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_SearchResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.SearchResponse.class, + com.google.shopping.merchant.reports.v1alpha.SearchResponse.Builder.class); + } + + // Construct using com.google.shopping.merchant.reports.v1alpha.SearchResponse.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (resultsBuilder_ == null) { + results_ = java.util.Collections.emptyList(); + } else { + results_ = null; + resultsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + nextPageToken_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_SearchResponse_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.SearchResponse getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.SearchResponse.getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.SearchResponse build() { + com.google.shopping.merchant.reports.v1alpha.SearchResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.SearchResponse buildPartial() { + com.google.shopping.merchant.reports.v1alpha.SearchResponse result = + new com.google.shopping.merchant.reports.v1alpha.SearchResponse(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields( + com.google.shopping.merchant.reports.v1alpha.SearchResponse result) { + if (resultsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + results_ = java.util.Collections.unmodifiableList(results_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.results_ = results_; + } else { + result.results_ = resultsBuilder_.build(); + } + } + + private void buildPartial0(com.google.shopping.merchant.reports.v1alpha.SearchResponse result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.nextPageToken_ = nextPageToken_; + } + } + + @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.shopping.merchant.reports.v1alpha.SearchResponse) { + return mergeFrom((com.google.shopping.merchant.reports.v1alpha.SearchResponse) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.shopping.merchant.reports.v1alpha.SearchResponse other) { + if (other == com.google.shopping.merchant.reports.v1alpha.SearchResponse.getDefaultInstance()) + return this; + if (resultsBuilder_ == null) { + if (!other.results_.isEmpty()) { + if (results_.isEmpty()) { + results_ = other.results_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureResultsIsMutable(); + results_.addAll(other.results_); + } + onChanged(); + } + } else { + if (!other.results_.isEmpty()) { + if (resultsBuilder_.isEmpty()) { + resultsBuilder_.dispose(); + resultsBuilder_ = null; + results_ = other.results_; + bitField0_ = (bitField0_ & ~0x00000001); + resultsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getResultsFieldBuilder() + : null; + } else { + resultsBuilder_.addAllMessages(other.results_); + } + } + } + if (!other.getNextPageToken().isEmpty()) { + nextPageToken_ = other.nextPageToken_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + com.google.shopping.merchant.reports.v1alpha.ReportRow m = + input.readMessage( + com.google.shopping.merchant.reports.v1alpha.ReportRow.parser(), + extensionRegistry); + if (resultsBuilder_ == null) { + ensureResultsIsMutable(); + results_.add(m); + } else { + resultsBuilder_.addMessage(m); + } + break; + } // case 10 + case 18: + { + nextPageToken_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.util.List results_ = + java.util.Collections.emptyList(); + + private void ensureResultsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + results_ = + new java.util.ArrayList( + results_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ReportRow, + com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder, + com.google.shopping.merchant.reports.v1alpha.ReportRowOrBuilder> + resultsBuilder_; + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public java.util.List getResultsList() { + if (resultsBuilder_ == null) { + return java.util.Collections.unmodifiableList(results_); + } else { + return resultsBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public int getResultsCount() { + if (resultsBuilder_ == null) { + return results_.size(); + } else { + return resultsBuilder_.getCount(); + } + } + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public com.google.shopping.merchant.reports.v1alpha.ReportRow getResults(int index) { + if (resultsBuilder_ == null) { + return results_.get(index); + } else { + return resultsBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public Builder setResults( + int index, com.google.shopping.merchant.reports.v1alpha.ReportRow value) { + if (resultsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureResultsIsMutable(); + results_.set(index, value); + onChanged(); + } else { + resultsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public Builder setResults( + int index, com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder builderForValue) { + if (resultsBuilder_ == null) { + ensureResultsIsMutable(); + results_.set(index, builderForValue.build()); + onChanged(); + } else { + resultsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public Builder addResults(com.google.shopping.merchant.reports.v1alpha.ReportRow value) { + if (resultsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureResultsIsMutable(); + results_.add(value); + onChanged(); + } else { + resultsBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public Builder addResults( + int index, com.google.shopping.merchant.reports.v1alpha.ReportRow value) { + if (resultsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureResultsIsMutable(); + results_.add(index, value); + onChanged(); + } else { + resultsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public Builder addResults( + com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder builderForValue) { + if (resultsBuilder_ == null) { + ensureResultsIsMutable(); + results_.add(builderForValue.build()); + onChanged(); + } else { + resultsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public Builder addResults( + int index, com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder builderForValue) { + if (resultsBuilder_ == null) { + ensureResultsIsMutable(); + results_.add(index, builderForValue.build()); + onChanged(); + } else { + resultsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public Builder addAllResults( + java.lang.Iterable + values) { + if (resultsBuilder_ == null) { + ensureResultsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, results_); + onChanged(); + } else { + resultsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public Builder clearResults() { + if (resultsBuilder_ == null) { + results_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + resultsBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public Builder removeResults(int index) { + if (resultsBuilder_ == null) { + ensureResultsIsMutable(); + results_.remove(index); + onChanged(); + } else { + resultsBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder getResultsBuilder( + int index) { + return getResultsFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public com.google.shopping.merchant.reports.v1alpha.ReportRowOrBuilder getResultsOrBuilder( + int index) { + if (resultsBuilder_ == null) { + return results_.get(index); + } else { + return resultsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public java.util.List + getResultsOrBuilderList() { + if (resultsBuilder_ != null) { + return resultsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(results_); + } + } + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder addResultsBuilder() { + return getResultsFieldBuilder() + .addBuilder(com.google.shopping.merchant.reports.v1alpha.ReportRow.getDefaultInstance()); + } + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder addResultsBuilder( + int index) { + return getResultsFieldBuilder() + .addBuilder( + index, com.google.shopping.merchant.reports.v1alpha.ReportRow.getDefaultInstance()); + } + + /** + * + * + *
+     * Rows that matched the search query.
+     * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + public java.util.List + getResultsBuilderList() { + return getResultsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ReportRow, + com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder, + com.google.shopping.merchant.reports.v1alpha.ReportRowOrBuilder> + getResultsFieldBuilder() { + if (resultsBuilder_ == null) { + resultsBuilder_ = + new com.google.protobuf.RepeatedFieldBuilderV3< + com.google.shopping.merchant.reports.v1alpha.ReportRow, + com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder, + com.google.shopping.merchant.reports.v1alpha.ReportRowOrBuilder>( + results_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + results_ = null; + } + return resultsBuilder_; + } + + private java.lang.Object nextPageToken_ = ""; + + /** + * + * + *
+     * Token which can be sent as `page_token` to retrieve the next page. If
+     * omitted, there are no subsequent pages.
+     * 
+ * + * string next_page_token = 2; + * + * @return The nextPageToken. + */ + public java.lang.String getNextPageToken() { + java.lang.Object ref = nextPageToken_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + nextPageToken_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Token which can be sent as `page_token` to retrieve the next page. If
+     * omitted, there are no subsequent pages.
+     * 
+ * + * string next_page_token = 2; + * + * @return The bytes for nextPageToken. + */ + public com.google.protobuf.ByteString getNextPageTokenBytes() { + java.lang.Object ref = nextPageToken_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + nextPageToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Token which can be sent as `page_token` to retrieve the next page. If
+     * omitted, there are no subsequent pages.
+     * 
+ * + * string next_page_token = 2; + * + * @param value The nextPageToken to set. + * @return This builder for chaining. + */ + public Builder setNextPageToken(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + nextPageToken_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Token which can be sent as `page_token` to retrieve the next page. If
+     * omitted, there are no subsequent pages.
+     * 
+ * + * string next_page_token = 2; + * + * @return This builder for chaining. + */ + public Builder clearNextPageToken() { + nextPageToken_ = getDefaultInstance().getNextPageToken(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Token which can be sent as `page_token` to retrieve the next page. If
+     * omitted, there are no subsequent pages.
+     * 
+ * + * string next_page_token = 2; + * + * @param value The bytes for nextPageToken to set. + * @return This builder for chaining. + */ + public Builder setNextPageTokenBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + nextPageToken_ = value; + bitField0_ |= 0x00000002; + 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.shopping.merchant.reports.v1alpha.SearchResponse) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.SearchResponse) + private static final com.google.shopping.merchant.reports.v1alpha.SearchResponse DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.SearchResponse(); + } + + public static com.google.shopping.merchant.reports.v1alpha.SearchResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SearchResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.SearchResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchResponseOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchResponseOrBuilder.java new file mode 100644 index 000000000000..a33a185f9a1f --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchResponseOrBuilder.java @@ -0,0 +1,110 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface SearchResponseOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.SearchResponse) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Rows that matched the search query.
+   * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + java.util.List getResultsList(); + + /** + * + * + *
+   * Rows that matched the search query.
+   * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + com.google.shopping.merchant.reports.v1alpha.ReportRow getResults(int index); + + /** + * + * + *
+   * Rows that matched the search query.
+   * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + int getResultsCount(); + + /** + * + * + *
+   * Rows that matched the search query.
+   * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + java.util.List + getResultsOrBuilderList(); + + /** + * + * + *
+   * Rows that matched the search query.
+   * 
+ * + * repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1; + */ + com.google.shopping.merchant.reports.v1alpha.ReportRowOrBuilder getResultsOrBuilder(int index); + + /** + * + * + *
+   * Token which can be sent as `page_token` to retrieve the next page. If
+   * omitted, there are no subsequent pages.
+   * 
+ * + * string next_page_token = 2; + * + * @return The nextPageToken. + */ + java.lang.String getNextPageToken(); + + /** + * + * + *
+   * Token which can be sent as `page_token` to retrieve the next page. If
+   * omitted, there are no subsequent pages.
+   * 
+ * + * string next_page_token = 2; + * + * @return The bytes for nextPageToken. + */ + com.google.protobuf.ByteString getNextPageTokenBytes(); +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/TrafficSource.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/TrafficSource.java new file mode 100644 index 000000000000..d891ec8bdf7f --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/TrafficSource.java @@ -0,0 +1,622 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Traffic source of impressions in the Competitive visibility report.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.TrafficSource} + */ +public final class TrafficSource extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.TrafficSource) + TrafficSourceOrBuilder { + private static final long serialVersionUID = 0L; + + // Use TrafficSource.newBuilder() to construct. + private TrafficSource(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private TrafficSource() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new TrafficSource(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_TrafficSource_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_TrafficSource_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.TrafficSource.class, + com.google.shopping.merchant.reports.v1alpha.TrafficSource.Builder.class); + } + + /** + * + * + *
+   * Traffic source values.
+   * 
+ * + * Protobuf enum {@code google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum} + */ + public enum TrafficSourceEnum implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Not specified.
+     * 
+ * + * TRAFFIC_SOURCE_ENUM_UNSPECIFIED = 0; + */ + TRAFFIC_SOURCE_ENUM_UNSPECIFIED(0), + /** + * + * + *
+     * Organic traffic.
+     * 
+ * + * ORGANIC = 1; + */ + ORGANIC(1), + /** + * + * + *
+     * Traffic from ads.
+     * 
+ * + * ADS = 2; + */ + ADS(2), + /** + * + * + *
+     * Organic and ads traffic.
+     * 
+ * + * ALL = 3; + */ + ALL(3), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+     * Not specified.
+     * 
+ * + * TRAFFIC_SOURCE_ENUM_UNSPECIFIED = 0; + */ + public static final int TRAFFIC_SOURCE_ENUM_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+     * Organic traffic.
+     * 
+ * + * ORGANIC = 1; + */ + public static final int ORGANIC_VALUE = 1; + + /** + * + * + *
+     * Traffic from ads.
+     * 
+ * + * ADS = 2; + */ + public static final int ADS_VALUE = 2; + + /** + * + * + *
+     * Organic and ads traffic.
+     * 
+ * + * ALL = 3; + */ + public static final int ALL_VALUE = 3; + + 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 TrafficSourceEnum 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 TrafficSourceEnum forNumber(int value) { + switch (value) { + case 0: + return TRAFFIC_SOURCE_ENUM_UNSPECIFIED; + case 1: + return ORGANIC; + case 2: + return ADS; + case 3: + return ALL; + 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 TrafficSourceEnum findValueByNumber(int number) { + return TrafficSourceEnum.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.shopping.merchant.reports.v1alpha.TrafficSource.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final TrafficSourceEnum[] VALUES = values(); + + public static TrafficSourceEnum 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 TrafficSourceEnum(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum) + } + + 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 { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.TrafficSource)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.TrafficSource other = + (com.google.shopping.merchant.reports.v1alpha.TrafficSource) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) 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) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.TrafficSource parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.TrafficSource parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.TrafficSource parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.TrafficSource 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.shopping.merchant.reports.v1alpha.TrafficSource parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.TrafficSource parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.TrafficSource parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.TrafficSource 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.shopping.merchant.reports.v1alpha.TrafficSource parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.TrafficSource 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.shopping.merchant.reports.v1alpha.TrafficSource parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.TrafficSource 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.shopping.merchant.reports.v1alpha.TrafficSource 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; + } + + /** + * + * + *
+   * Traffic source of impressions in the Competitive visibility report.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.TrafficSource} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.TrafficSource) + com.google.shopping.merchant.reports.v1alpha.TrafficSourceOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_TrafficSource_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_TrafficSource_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.TrafficSource.class, + com.google.shopping.merchant.reports.v1alpha.TrafficSource.Builder.class); + } + + // Construct using com.google.shopping.merchant.reports.v1alpha.TrafficSource.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_TrafficSource_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.TrafficSource getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.TrafficSource.getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.TrafficSource build() { + com.google.shopping.merchant.reports.v1alpha.TrafficSource result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.TrafficSource buildPartial() { + com.google.shopping.merchant.reports.v1alpha.TrafficSource result = + new com.google.shopping.merchant.reports.v1alpha.TrafficSource(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.shopping.merchant.reports.v1alpha.TrafficSource) { + return mergeFrom((com.google.shopping.merchant.reports.v1alpha.TrafficSource) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.shopping.merchant.reports.v1alpha.TrafficSource other) { + if (other == com.google.shopping.merchant.reports.v1alpha.TrafficSource.getDefaultInstance()) + return this; + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + 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.shopping.merchant.reports.v1alpha.TrafficSource) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.TrafficSource) + private static final com.google.shopping.merchant.reports.v1alpha.TrafficSource DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.TrafficSource(); + } + + public static com.google.shopping.merchant.reports.v1alpha.TrafficSource getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TrafficSource parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.TrafficSource getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/TrafficSourceOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/TrafficSourceOrBuilder.java new file mode 100644 index 000000000000..85a2c562b4af --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/TrafficSourceOrBuilder.java @@ -0,0 +1,25 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface TrafficSourceOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.TrafficSource) + com.google.protobuf.MessageOrBuilder {} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeContentPerformanceView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeContentPerformanceView.java new file mode 100644 index 000000000000..67518c4d3086 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeContentPerformanceView.java @@ -0,0 +1,2926 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Fields available for query in `youtube_content_performance_view` table.
+ *
+ * [YouTube content performance
+ * data](https://support.google.com/merchants/answer/14947975) for your account.
+ * This data is only available if an account is enrolled in the [YouTube
+ * Shopping Affiliate
+ * program](https://support.google.com/merchants/answer/14815513?hl=en).
+ *
+ * Values are only set for fields requested explicitly in the request's search
+ * query.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView} + */ +public final class YoutubeContentPerformanceView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView) + YoutubeContentPerformanceViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use YoutubeContentPerformanceView.newBuilder() to construct. + private YoutubeContentPerformanceView(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private YoutubeContentPerformanceView() { + title_ = ""; + videoId_ = ""; + channelTitle_ = ""; + channelId_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new YoutubeContentPerformanceView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeContentPerformanceView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeContentPerformanceView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView.class, + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView.Builder + .class); + } + + private int bitField0_; + public static final int DATE_FIELD_NUMBER = 1; + private com.google.type.Date date_; + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + @java.lang.Override + public boolean hasDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + @java.lang.Override + public com.google.type.Date getDate() { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + */ + @java.lang.Override + public com.google.type.DateOrBuilder getDateOrBuilder() { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + + public static final int TITLE_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object title_ = ""; + + /** + * + * + *
+   * The video title.
+   * 
+ * + * optional string title = 2; + * + * @return Whether the title field is set. + */ + @java.lang.Override + public boolean hasTitle() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * The video title.
+   * 
+ * + * optional string title = 2; + * + * @return The title. + */ + @java.lang.Override + public java.lang.String getTitle() { + java.lang.Object ref = title_; + 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(); + title_ = s; + return s; + } + } + + /** + * + * + *
+   * The video title.
+   * 
+ * + * optional string title = 2; + * + * @return The bytes for title. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int VIDEO_ID_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object videoId_ = ""; + + /** + * + * + *
+   * The video id.
+   * 
+ * + * optional string video_id = 3; + * + * @return Whether the videoId field is set. + */ + @java.lang.Override + public boolean hasVideoId() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * The video id.
+   * 
+ * + * optional string video_id = 3; + * + * @return The videoId. + */ + @java.lang.Override + public java.lang.String getVideoId() { + java.lang.Object ref = videoId_; + 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(); + videoId_ = s; + return s; + } + } + + /** + * + * + *
+   * The video id.
+   * 
+ * + * optional string video_id = 3; + * + * @return The bytes for videoId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getVideoIdBytes() { + java.lang.Object ref = videoId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + videoId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CHANNEL_TITLE_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object channelTitle_ = ""; + + /** + * + * + *
+   * The channel title.
+   * 
+ * + * optional string channel_title = 4; + * + * @return Whether the channelTitle field is set. + */ + @java.lang.Override + public boolean hasChannelTitle() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * The channel title.
+   * 
+ * + * optional string channel_title = 4; + * + * @return The channelTitle. + */ + @java.lang.Override + public java.lang.String getChannelTitle() { + java.lang.Object ref = channelTitle_; + 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(); + channelTitle_ = s; + return s; + } + } + + /** + * + * + *
+   * The channel title.
+   * 
+ * + * optional string channel_title = 4; + * + * @return The bytes for channelTitle. + */ + @java.lang.Override + public com.google.protobuf.ByteString getChannelTitleBytes() { + java.lang.Object ref = channelTitle_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + channelTitle_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CHANNEL_ID_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private volatile java.lang.Object channelId_ = ""; + + /** + * + * + *
+   * The channel id.
+   * 
+ * + * optional string channel_id = 5; + * + * @return Whether the channelId field is set. + */ + @java.lang.Override + public boolean hasChannelId() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * The channel id.
+   * 
+ * + * optional string channel_id = 5; + * + * @return The channelId. + */ + @java.lang.Override + public java.lang.String getChannelId() { + java.lang.Object ref = channelId_; + 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(); + channelId_ = s; + return s; + } + } + + /** + * + * + *
+   * The channel id.
+   * 
+ * + * optional string channel_id = 5; + * + * @return The bytes for channelId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getChannelIdBytes() { + java.lang.Object ref = channelId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + channelId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int GROSS_SALES_FIELD_NUMBER = 6; + private com.google.shopping.type.Price grossSales_; + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + * + * @return Whether the grossSales field is set. + */ + @java.lang.Override + public boolean hasGrossSales() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + * + * @return The grossSales. + */ + @java.lang.Override + public com.google.shopping.type.Price getGrossSales() { + return grossSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : grossSales_; + } + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder() { + return grossSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : grossSales_; + } + + public static final int COMMISSIONS_FIELD_NUMBER = 7; + private com.google.shopping.type.Price commissions_; + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 7; + * + * @return Whether the commissions field is set. + */ + @java.lang.Override + public boolean hasCommissions() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 7; + * + * @return The commissions. + */ + @java.lang.Override + public com.google.shopping.type.Price getCommissions() { + return commissions_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : commissions_; + } + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder() { + return commissions_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : commissions_; + } + + public static final int ORDERS_FIELD_NUMBER = 8; + private long orders_ = 0L; + + /** + * + * + *
+   * The number of orders.
+   * 
+ * + * optional int64 orders = 8; + * + * @return Whether the orders field is set. + */ + @java.lang.Override + public boolean hasOrders() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+   * The number of orders.
+   * 
+ * + * optional int64 orders = 8; + * + * @return The orders. + */ + @java.lang.Override + public long getOrders() { + return orders_; + } + + public static final int VIEWS_FIELD_NUMBER = 9; + private long views_ = 0L; + + /** + * + * + *
+   * The number of YouTube views.
+   * 
+ * + * optional int64 views = 9; + * + * @return Whether the views field is set. + */ + @java.lang.Override + public boolean hasViews() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+   * The number of YouTube views.
+   * 
+ * + * optional int64 views = 9; + * + * @return The views. + */ + @java.lang.Override + public long getViews() { + return views_; + } + + public static final int CLICKS_FIELD_NUMBER = 10; + private long clicks_ = 0L; + + /** + * + * + *
+   * The number of product clicks.
+   * 
+ * + * optional int64 clicks = 10; + * + * @return Whether the clicks field is set. + */ + @java.lang.Override + public boolean hasClicks() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+   * The number of product clicks.
+   * 
+ * + * optional int64 clicks = 10; + * + * @return The clicks. + */ + @java.lang.Override + public long getClicks() { + return clicks_; + } + + public static final int NET_SALES_FIELD_NUMBER = 11; + private com.google.shopping.type.Price netSales_; + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + * + * @return Whether the netSales field is set. + */ + @java.lang.Override + public boolean hasNetSales() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + * + * @return The netSales. + */ + @java.lang.Override + public com.google.shopping.type.Price getNetSales() { + return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_; + } + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder() { + return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_; + } + + 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 (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, title_); + } + if (((bitField0_ & 0x00000004) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, videoId_); + } + if (((bitField0_ & 0x00000008) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, channelTitle_); + } + if (((bitField0_ & 0x00000010) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, channelId_); + } + if (((bitField0_ & 0x00000020) != 0)) { + output.writeMessage(6, getGrossSales()); + } + if (((bitField0_ & 0x00000040) != 0)) { + output.writeMessage(7, getCommissions()); + } + if (((bitField0_ & 0x00000080) != 0)) { + output.writeInt64(8, orders_); + } + if (((bitField0_ & 0x00000100) != 0)) { + output.writeInt64(9, views_); + } + if (((bitField0_ & 0x00000200) != 0)) { + output.writeInt64(10, clicks_); + } + if (((bitField0_ & 0x00000400) != 0)) { + output.writeMessage(11, getNetSales()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, title_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, videoId_); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, channelTitle_); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, channelId_); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getGrossSales()); + } + if (((bitField0_ & 0x00000040) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getCommissions()); + } + if (((bitField0_ & 0x00000080) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(8, orders_); + } + if (((bitField0_ & 0x00000100) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(9, views_); + } + if (((bitField0_ & 0x00000200) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(10, clicks_); + } + if (((bitField0_ & 0x00000400) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, getNetSales()); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView other = + (com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView) obj; + + if (hasDate() != other.hasDate()) return false; + if (hasDate()) { + if (!getDate().equals(other.getDate())) return false; + } + if (hasTitle() != other.hasTitle()) return false; + if (hasTitle()) { + if (!getTitle().equals(other.getTitle())) return false; + } + if (hasVideoId() != other.hasVideoId()) return false; + if (hasVideoId()) { + if (!getVideoId().equals(other.getVideoId())) return false; + } + if (hasChannelTitle() != other.hasChannelTitle()) return false; + if (hasChannelTitle()) { + if (!getChannelTitle().equals(other.getChannelTitle())) return false; + } + if (hasChannelId() != other.hasChannelId()) return false; + if (hasChannelId()) { + if (!getChannelId().equals(other.getChannelId())) return false; + } + if (hasGrossSales() != other.hasGrossSales()) return false; + if (hasGrossSales()) { + if (!getGrossSales().equals(other.getGrossSales())) return false; + } + if (hasCommissions() != other.hasCommissions()) return false; + if (hasCommissions()) { + if (!getCommissions().equals(other.getCommissions())) return false; + } + if (hasOrders() != other.hasOrders()) return false; + if (hasOrders()) { + if (getOrders() != other.getOrders()) return false; + } + if (hasViews() != other.hasViews()) return false; + if (hasViews()) { + if (getViews() != other.getViews()) return false; + } + if (hasClicks() != other.hasClicks()) return false; + if (hasClicks()) { + if (getClicks() != other.getClicks()) return false; + } + if (hasNetSales() != other.hasNetSales()) return false; + if (hasNetSales()) { + if (!getNetSales().equals(other.getNetSales())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasDate()) { + hash = (37 * hash) + DATE_FIELD_NUMBER; + hash = (53 * hash) + getDate().hashCode(); + } + if (hasTitle()) { + hash = (37 * hash) + TITLE_FIELD_NUMBER; + hash = (53 * hash) + getTitle().hashCode(); + } + if (hasVideoId()) { + hash = (37 * hash) + VIDEO_ID_FIELD_NUMBER; + hash = (53 * hash) + getVideoId().hashCode(); + } + if (hasChannelTitle()) { + hash = (37 * hash) + CHANNEL_TITLE_FIELD_NUMBER; + hash = (53 * hash) + getChannelTitle().hashCode(); + } + if (hasChannelId()) { + hash = (37 * hash) + CHANNEL_ID_FIELD_NUMBER; + hash = (53 * hash) + getChannelId().hashCode(); + } + if (hasGrossSales()) { + hash = (37 * hash) + GROSS_SALES_FIELD_NUMBER; + hash = (53 * hash) + getGrossSales().hashCode(); + } + if (hasCommissions()) { + hash = (37 * hash) + COMMISSIONS_FIELD_NUMBER; + hash = (53 * hash) + getCommissions().hashCode(); + } + if (hasOrders()) { + hash = (37 * hash) + ORDERS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getOrders()); + } + if (hasViews()) { + hash = (37 * hash) + VIEWS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getViews()); + } + if (hasClicks()) { + hash = (37 * hash) + CLICKS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getClicks()); + } + if (hasNetSales()) { + hash = (37 * hash) + NET_SALES_FIELD_NUMBER; + hash = (53 * hash) + getNetSales().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + 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.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + 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.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + 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.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + 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.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView 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; + } + + /** + * + * + *
+   * Fields available for query in `youtube_content_performance_view` table.
+   *
+   * [YouTube content performance
+   * data](https://support.google.com/merchants/answer/14947975) for your account.
+   * This data is only available if an account is enrolled in the [YouTube
+   * Shopping Affiliate
+   * program](https://support.google.com/merchants/answer/14815513?hl=en).
+   *
+   * Values are only set for fields requested explicitly in the request's search
+   * query.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView) + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceViewOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeContentPerformanceView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeContentPerformanceView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView.class, + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView.Builder + .class); + } + + // Construct using + // com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getDateFieldBuilder(); + getGrossSalesFieldBuilder(); + getCommissionsFieldBuilder(); + getNetSalesFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + date_ = null; + if (dateBuilder_ != null) { + dateBuilder_.dispose(); + dateBuilder_ = null; + } + title_ = ""; + videoId_ = ""; + channelTitle_ = ""; + channelId_ = ""; + grossSales_ = null; + if (grossSalesBuilder_ != null) { + grossSalesBuilder_.dispose(); + grossSalesBuilder_ = null; + } + commissions_ = null; + if (commissionsBuilder_ != null) { + commissionsBuilder_.dispose(); + commissionsBuilder_ = null; + } + orders_ = 0L; + views_ = 0L; + clicks_ = 0L; + netSales_ = null; + if (netSalesBuilder_ != null) { + netSalesBuilder_.dispose(); + netSalesBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeContentPerformanceView_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView build() { + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + buildPartial() { + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView result = + new com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.date_ = dateBuilder_ == null ? date_ : dateBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.title_ = title_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.videoId_ = videoId_; + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.channelTitle_ = channelTitle_; + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.channelId_ = channelId_; + to_bitField0_ |= 0x00000010; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.grossSales_ = grossSalesBuilder_ == null ? grossSales_ : grossSalesBuilder_.build(); + to_bitField0_ |= 0x00000020; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.commissions_ = + commissionsBuilder_ == null ? commissions_ : commissionsBuilder_.build(); + to_bitField0_ |= 0x00000040; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.orders_ = orders_; + to_bitField0_ |= 0x00000080; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.views_ = views_; + to_bitField0_ |= 0x00000100; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.clicks_ = clicks_; + to_bitField0_ |= 0x00000200; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.netSales_ = netSalesBuilder_ == null ? netSales_ : netSalesBuilder_.build(); + to_bitField0_ |= 0x00000400; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView) { + return mergeFrom( + (com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + .getDefaultInstance()) return this; + if (other.hasDate()) { + mergeDate(other.getDate()); + } + if (other.hasTitle()) { + title_ = other.title_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.hasVideoId()) { + videoId_ = other.videoId_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.hasChannelTitle()) { + channelTitle_ = other.channelTitle_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (other.hasChannelId()) { + channelId_ = other.channelId_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (other.hasGrossSales()) { + mergeGrossSales(other.getGrossSales()); + } + if (other.hasCommissions()) { + mergeCommissions(other.getCommissions()); + } + if (other.hasOrders()) { + setOrders(other.getOrders()); + } + if (other.hasViews()) { + setViews(other.getViews()); + } + if (other.hasClicks()) { + setClicks(other.getClicks()); + } + if (other.hasNetSales()) { + mergeNetSales(other.getNetSales()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getDateFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + title_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + videoId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + channelTitle_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: + { + channelId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 50: + { + input.readMessage(getGrossSalesFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 58: + { + input.readMessage(getCommissionsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 64: + { + orders_ = input.readInt64(); + bitField0_ |= 0x00000080; + break; + } // case 64 + case 72: + { + views_ = input.readInt64(); + bitField0_ |= 0x00000100; + break; + } // case 72 + case 80: + { + clicks_ = input.readInt64(); + bitField0_ |= 0x00000200; + break; + } // case 80 + case 90: + { + input.readMessage(getNetSalesFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000400; + break; + } // case 90 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.type.Date date_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + dateBuilder_; + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + public boolean hasDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + public com.google.type.Date getDate() { + if (dateBuilder_ == null) { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } else { + return dateBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder setDate(com.google.type.Date value) { + if (dateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + date_ = value; + } else { + dateBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder setDate(com.google.type.Date.Builder builderForValue) { + if (dateBuilder_ == null) { + date_ = builderForValue.build(); + } else { + dateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder mergeDate(com.google.type.Date value) { + if (dateBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && date_ != null + && date_ != com.google.type.Date.getDefaultInstance()) { + getDateBuilder().mergeFrom(value); + } else { + date_ = value; + } + } else { + dateBuilder_.mergeFrom(value); + } + if (date_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder clearDate() { + bitField0_ = (bitField0_ & ~0x00000001); + date_ = null; + if (dateBuilder_ != null) { + dateBuilder_.dispose(); + dateBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public com.google.type.Date.Builder getDateBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getDateFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public com.google.type.DateOrBuilder getDateOrBuilder() { + if (dateBuilder_ != null) { + return dateBuilder_.getMessageOrBuilder(); + } else { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + getDateFieldBuilder() { + if (dateBuilder_ == null) { + dateBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>( + getDate(), getParentForChildren(), isClean()); + date_ = null; + } + return dateBuilder_; + } + + private java.lang.Object title_ = ""; + + /** + * + * + *
+     * The video title.
+     * 
+ * + * optional string title = 2; + * + * @return Whether the title field is set. + */ + public boolean hasTitle() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * The video title.
+     * 
+ * + * optional string title = 2; + * + * @return The title. + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The video title.
+     * 
+ * + * optional string title = 2; + * + * @return The bytes for title. + */ + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The video title.
+     * 
+ * + * optional string title = 2; + * + * @param value The title to set. + * @return This builder for chaining. + */ + public Builder setTitle(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + title_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * The video title.
+     * 
+ * + * optional string title = 2; + * + * @return This builder for chaining. + */ + public Builder clearTitle() { + title_ = getDefaultInstance().getTitle(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * The video title.
+     * 
+ * + * optional string title = 2; + * + * @param value The bytes for title to set. + * @return This builder for chaining. + */ + public Builder setTitleBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + title_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object videoId_ = ""; + + /** + * + * + *
+     * The video id.
+     * 
+ * + * optional string video_id = 3; + * + * @return Whether the videoId field is set. + */ + public boolean hasVideoId() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * The video id.
+     * 
+ * + * optional string video_id = 3; + * + * @return The videoId. + */ + public java.lang.String getVideoId() { + java.lang.Object ref = videoId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + videoId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The video id.
+     * 
+ * + * optional string video_id = 3; + * + * @return The bytes for videoId. + */ + public com.google.protobuf.ByteString getVideoIdBytes() { + java.lang.Object ref = videoId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + videoId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The video id.
+     * 
+ * + * optional string video_id = 3; + * + * @param value The videoId to set. + * @return This builder for chaining. + */ + public Builder setVideoId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + videoId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * The video id.
+     * 
+ * + * optional string video_id = 3; + * + * @return This builder for chaining. + */ + public Builder clearVideoId() { + videoId_ = getDefaultInstance().getVideoId(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * The video id.
+     * 
+ * + * optional string video_id = 3; + * + * @param value The bytes for videoId to set. + * @return This builder for chaining. + */ + public Builder setVideoIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + videoId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object channelTitle_ = ""; + + /** + * + * + *
+     * The channel title.
+     * 
+ * + * optional string channel_title = 4; + * + * @return Whether the channelTitle field is set. + */ + public boolean hasChannelTitle() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * The channel title.
+     * 
+ * + * optional string channel_title = 4; + * + * @return The channelTitle. + */ + public java.lang.String getChannelTitle() { + java.lang.Object ref = channelTitle_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + channelTitle_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The channel title.
+     * 
+ * + * optional string channel_title = 4; + * + * @return The bytes for channelTitle. + */ + public com.google.protobuf.ByteString getChannelTitleBytes() { + java.lang.Object ref = channelTitle_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + channelTitle_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The channel title.
+     * 
+ * + * optional string channel_title = 4; + * + * @param value The channelTitle to set. + * @return This builder for chaining. + */ + public Builder setChannelTitle(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + channelTitle_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * The channel title.
+     * 
+ * + * optional string channel_title = 4; + * + * @return This builder for chaining. + */ + public Builder clearChannelTitle() { + channelTitle_ = getDefaultInstance().getChannelTitle(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+     * The channel title.
+     * 
+ * + * optional string channel_title = 4; + * + * @param value The bytes for channelTitle to set. + * @return This builder for chaining. + */ + public Builder setChannelTitleBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + channelTitle_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private java.lang.Object channelId_ = ""; + + /** + * + * + *
+     * The channel id.
+     * 
+ * + * optional string channel_id = 5; + * + * @return Whether the channelId field is set. + */ + public boolean hasChannelId() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * The channel id.
+     * 
+ * + * optional string channel_id = 5; + * + * @return The channelId. + */ + public java.lang.String getChannelId() { + java.lang.Object ref = channelId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + channelId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The channel id.
+     * 
+ * + * optional string channel_id = 5; + * + * @return The bytes for channelId. + */ + public com.google.protobuf.ByteString getChannelIdBytes() { + java.lang.Object ref = channelId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + channelId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The channel id.
+     * 
+ * + * optional string channel_id = 5; + * + * @param value The channelId to set. + * @return This builder for chaining. + */ + public Builder setChannelId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + channelId_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * The channel id.
+     * 
+ * + * optional string channel_id = 5; + * + * @return This builder for chaining. + */ + public Builder clearChannelId() { + channelId_ = getDefaultInstance().getChannelId(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + + /** + * + * + *
+     * The channel id.
+     * 
+ * + * optional string channel_id = 5; + * + * @param value The bytes for channelId to set. + * @return This builder for chaining. + */ + public Builder setChannelIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + channelId_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private com.google.shopping.type.Price grossSales_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + grossSalesBuilder_; + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + * + * @return Whether the grossSales field is set. + */ + public boolean hasGrossSales() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + * + * @return The grossSales. + */ + public com.google.shopping.type.Price getGrossSales() { + if (grossSalesBuilder_ == null) { + return grossSales_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : grossSales_; + } else { + return grossSalesBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + public Builder setGrossSales(com.google.shopping.type.Price value) { + if (grossSalesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + grossSales_ = value; + } else { + grossSalesBuilder_.setMessage(value); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + public Builder setGrossSales(com.google.shopping.type.Price.Builder builderForValue) { + if (grossSalesBuilder_ == null) { + grossSales_ = builderForValue.build(); + } else { + grossSalesBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + public Builder mergeGrossSales(com.google.shopping.type.Price value) { + if (grossSalesBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0) + && grossSales_ != null + && grossSales_ != com.google.shopping.type.Price.getDefaultInstance()) { + getGrossSalesBuilder().mergeFrom(value); + } else { + grossSales_ = value; + } + } else { + grossSalesBuilder_.mergeFrom(value); + } + if (grossSales_ != null) { + bitField0_ |= 0x00000020; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + public Builder clearGrossSales() { + bitField0_ = (bitField0_ & ~0x00000020); + grossSales_ = null; + if (grossSalesBuilder_ != null) { + grossSalesBuilder_.dispose(); + grossSalesBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + public com.google.shopping.type.Price.Builder getGrossSalesBuilder() { + bitField0_ |= 0x00000020; + onChanged(); + return getGrossSalesFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + public com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder() { + if (grossSalesBuilder_ != null) { + return grossSalesBuilder_.getMessageOrBuilder(); + } else { + return grossSales_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : grossSales_; + } + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + getGrossSalesFieldBuilder() { + if (grossSalesBuilder_ == null) { + grossSalesBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getGrossSales(), getParentForChildren(), isClean()); + grossSales_ = null; + } + return grossSalesBuilder_; + } + + private com.google.shopping.type.Price commissions_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + commissionsBuilder_; + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + * + * @return Whether the commissions field is set. + */ + public boolean hasCommissions() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + * + * @return The commissions. + */ + public com.google.shopping.type.Price getCommissions() { + if (commissionsBuilder_ == null) { + return commissions_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : commissions_; + } else { + return commissionsBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + public Builder setCommissions(com.google.shopping.type.Price value) { + if (commissionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + commissions_ = value; + } else { + commissionsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + public Builder setCommissions(com.google.shopping.type.Price.Builder builderForValue) { + if (commissionsBuilder_ == null) { + commissions_ = builderForValue.build(); + } else { + commissionsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + public Builder mergeCommissions(com.google.shopping.type.Price value) { + if (commissionsBuilder_ == null) { + if (((bitField0_ & 0x00000040) != 0) + && commissions_ != null + && commissions_ != com.google.shopping.type.Price.getDefaultInstance()) { + getCommissionsBuilder().mergeFrom(value); + } else { + commissions_ = value; + } + } else { + commissionsBuilder_.mergeFrom(value); + } + if (commissions_ != null) { + bitField0_ |= 0x00000040; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + public Builder clearCommissions() { + bitField0_ = (bitField0_ & ~0x00000040); + commissions_ = null; + if (commissionsBuilder_ != null) { + commissionsBuilder_.dispose(); + commissionsBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + public com.google.shopping.type.Price.Builder getCommissionsBuilder() { + bitField0_ |= 0x00000040; + onChanged(); + return getCommissionsFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + public com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder() { + if (commissionsBuilder_ != null) { + return commissionsBuilder_.getMessageOrBuilder(); + } else { + return commissions_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : commissions_; + } + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + getCommissionsFieldBuilder() { + if (commissionsBuilder_ == null) { + commissionsBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getCommissions(), getParentForChildren(), isClean()); + commissions_ = null; + } + return commissionsBuilder_; + } + + private long orders_; + + /** + * + * + *
+     * The number of orders.
+     * 
+ * + * optional int64 orders = 8; + * + * @return Whether the orders field is set. + */ + @java.lang.Override + public boolean hasOrders() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+     * The number of orders.
+     * 
+ * + * optional int64 orders = 8; + * + * @return The orders. + */ + @java.lang.Override + public long getOrders() { + return orders_; + } + + /** + * + * + *
+     * The number of orders.
+     * 
+ * + * optional int64 orders = 8; + * + * @param value The orders to set. + * @return This builder for chaining. + */ + public Builder setOrders(long value) { + + orders_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * + * + *
+     * The number of orders.
+     * 
+ * + * optional int64 orders = 8; + * + * @return This builder for chaining. + */ + public Builder clearOrders() { + bitField0_ = (bitField0_ & ~0x00000080); + orders_ = 0L; + onChanged(); + return this; + } + + private long views_; + + /** + * + * + *
+     * The number of YouTube views.
+     * 
+ * + * optional int64 views = 9; + * + * @return Whether the views field is set. + */ + @java.lang.Override + public boolean hasViews() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+     * The number of YouTube views.
+     * 
+ * + * optional int64 views = 9; + * + * @return The views. + */ + @java.lang.Override + public long getViews() { + return views_; + } + + /** + * + * + *
+     * The number of YouTube views.
+     * 
+ * + * optional int64 views = 9; + * + * @param value The views to set. + * @return This builder for chaining. + */ + public Builder setViews(long value) { + + views_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * The number of YouTube views.
+     * 
+ * + * optional int64 views = 9; + * + * @return This builder for chaining. + */ + public Builder clearViews() { + bitField0_ = (bitField0_ & ~0x00000100); + views_ = 0L; + onChanged(); + return this; + } + + private long clicks_; + + /** + * + * + *
+     * The number of product clicks.
+     * 
+ * + * optional int64 clicks = 10; + * + * @return Whether the clicks field is set. + */ + @java.lang.Override + public boolean hasClicks() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+     * The number of product clicks.
+     * 
+ * + * optional int64 clicks = 10; + * + * @return The clicks. + */ + @java.lang.Override + public long getClicks() { + return clicks_; + } + + /** + * + * + *
+     * The number of product clicks.
+     * 
+ * + * optional int64 clicks = 10; + * + * @param value The clicks to set. + * @return This builder for chaining. + */ + public Builder setClicks(long value) { + + clicks_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * + * + *
+     * The number of product clicks.
+     * 
+ * + * optional int64 clicks = 10; + * + * @return This builder for chaining. + */ + public Builder clearClicks() { + bitField0_ = (bitField0_ & ~0x00000200); + clicks_ = 0L; + onChanged(); + return this; + } + + private com.google.shopping.type.Price netSales_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + netSalesBuilder_; + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + * + * @return Whether the netSales field is set. + */ + public boolean hasNetSales() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + * + * @return The netSales. + */ + public com.google.shopping.type.Price getNetSales() { + if (netSalesBuilder_ == null) { + return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_; + } else { + return netSalesBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + public Builder setNetSales(com.google.shopping.type.Price value) { + if (netSalesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + netSales_ = value; + } else { + netSalesBuilder_.setMessage(value); + } + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + public Builder setNetSales(com.google.shopping.type.Price.Builder builderForValue) { + if (netSalesBuilder_ == null) { + netSales_ = builderForValue.build(); + } else { + netSalesBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + public Builder mergeNetSales(com.google.shopping.type.Price value) { + if (netSalesBuilder_ == null) { + if (((bitField0_ & 0x00000400) != 0) + && netSales_ != null + && netSales_ != com.google.shopping.type.Price.getDefaultInstance()) { + getNetSalesBuilder().mergeFrom(value); + } else { + netSales_ = value; + } + } else { + netSalesBuilder_.mergeFrom(value); + } + if (netSales_ != null) { + bitField0_ |= 0x00000400; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + public Builder clearNetSales() { + bitField0_ = (bitField0_ & ~0x00000400); + netSales_ = null; + if (netSalesBuilder_ != null) { + netSalesBuilder_.dispose(); + netSalesBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + public com.google.shopping.type.Price.Builder getNetSalesBuilder() { + bitField0_ |= 0x00000400; + onChanged(); + return getNetSalesFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + public com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder() { + if (netSalesBuilder_ != null) { + return netSalesBuilder_.getMessageOrBuilder(); + } else { + return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_; + } + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + getNetSalesFieldBuilder() { + if (netSalesBuilder_ == null) { + netSalesBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getNetSales(), getParentForChildren(), isClean()); + netSales_ = null; + } + return netSalesBuilder_; + } + + @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.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView) + private static final com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView(); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public YoutubeContentPerformanceView parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeContentPerformanceViewOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeContentPerformanceViewOrBuilder.java new file mode 100644 index 000000000000..a9d7097b6658 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeContentPerformanceViewOrBuilder.java @@ -0,0 +1,414 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface YoutubeContentPerformanceViewOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + boolean hasDate(); + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + com.google.type.Date getDate(); + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + */ + com.google.type.DateOrBuilder getDateOrBuilder(); + + /** + * + * + *
+   * The video title.
+   * 
+ * + * optional string title = 2; + * + * @return Whether the title field is set. + */ + boolean hasTitle(); + + /** + * + * + *
+   * The video title.
+   * 
+ * + * optional string title = 2; + * + * @return The title. + */ + java.lang.String getTitle(); + + /** + * + * + *
+   * The video title.
+   * 
+ * + * optional string title = 2; + * + * @return The bytes for title. + */ + com.google.protobuf.ByteString getTitleBytes(); + + /** + * + * + *
+   * The video id.
+   * 
+ * + * optional string video_id = 3; + * + * @return Whether the videoId field is set. + */ + boolean hasVideoId(); + + /** + * + * + *
+   * The video id.
+   * 
+ * + * optional string video_id = 3; + * + * @return The videoId. + */ + java.lang.String getVideoId(); + + /** + * + * + *
+   * The video id.
+   * 
+ * + * optional string video_id = 3; + * + * @return The bytes for videoId. + */ + com.google.protobuf.ByteString getVideoIdBytes(); + + /** + * + * + *
+   * The channel title.
+   * 
+ * + * optional string channel_title = 4; + * + * @return Whether the channelTitle field is set. + */ + boolean hasChannelTitle(); + + /** + * + * + *
+   * The channel title.
+   * 
+ * + * optional string channel_title = 4; + * + * @return The channelTitle. + */ + java.lang.String getChannelTitle(); + + /** + * + * + *
+   * The channel title.
+   * 
+ * + * optional string channel_title = 4; + * + * @return The bytes for channelTitle. + */ + com.google.protobuf.ByteString getChannelTitleBytes(); + + /** + * + * + *
+   * The channel id.
+   * 
+ * + * optional string channel_id = 5; + * + * @return Whether the channelId field is set. + */ + boolean hasChannelId(); + + /** + * + * + *
+   * The channel id.
+   * 
+ * + * optional string channel_id = 5; + * + * @return The channelId. + */ + java.lang.String getChannelId(); + + /** + * + * + *
+   * The channel id.
+   * 
+ * + * optional string channel_id = 5; + * + * @return The bytes for channelId. + */ + com.google.protobuf.ByteString getChannelIdBytes(); + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + * + * @return Whether the grossSales field is set. + */ + boolean hasGrossSales(); + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + * + * @return The grossSales. + */ + com.google.shopping.type.Price getGrossSales(); + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder(); + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 7; + * + * @return Whether the commissions field is set. + */ + boolean hasCommissions(); + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 7; + * + * @return The commissions. + */ + com.google.shopping.type.Price getCommissions(); + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder(); + + /** + * + * + *
+   * The number of orders.
+   * 
+ * + * optional int64 orders = 8; + * + * @return Whether the orders field is set. + */ + boolean hasOrders(); + + /** + * + * + *
+   * The number of orders.
+   * 
+ * + * optional int64 orders = 8; + * + * @return The orders. + */ + long getOrders(); + + /** + * + * + *
+   * The number of YouTube views.
+   * 
+ * + * optional int64 views = 9; + * + * @return Whether the views field is set. + */ + boolean hasViews(); + + /** + * + * + *
+   * The number of YouTube views.
+   * 
+ * + * optional int64 views = 9; + * + * @return The views. + */ + long getViews(); + + /** + * + * + *
+   * The number of product clicks.
+   * 
+ * + * optional int64 clicks = 10; + * + * @return Whether the clicks field is set. + */ + boolean hasClicks(); + + /** + * + * + *
+   * The number of product clicks.
+   * 
+ * + * optional int64 clicks = 10; + * + * @return The clicks. + */ + long getClicks(); + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + * + * @return Whether the netSales field is set. + */ + boolean hasNetSales(); + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + * + * @return The netSales. + */ + com.google.shopping.type.Price getNetSales(); + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder(); +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeCreatorPerformanceView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeCreatorPerformanceView.java new file mode 100644 index 000000000000..480103336b48 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeCreatorPerformanceView.java @@ -0,0 +1,2474 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Fields available for query in `youtube_creator_performance_view` table.
+ *
+ * [YouTube creator performance
+ * data](https://support.google.com/merchants/answer/14947975) for your account.
+ * This data is only available if an account is enrolled in the [YouTube
+ * Shopping Affiliate
+ * program](https://support.google.com/merchants/answer/14815513?hl=en).
+ *
+ * Values are only set for fields requested explicitly in the request's search
+ * query.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView} + */ +public final class YoutubeCreatorPerformanceView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView) + YoutubeCreatorPerformanceViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use YoutubeCreatorPerformanceView.newBuilder() to construct. + private YoutubeCreatorPerformanceView(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private YoutubeCreatorPerformanceView() { + title_ = ""; + channelId_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new YoutubeCreatorPerformanceView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeCreatorPerformanceView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeCreatorPerformanceView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView.class, + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView.Builder + .class); + } + + private int bitField0_; + public static final int DATE_FIELD_NUMBER = 1; + private com.google.type.Date date_; + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + @java.lang.Override + public boolean hasDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + @java.lang.Override + public com.google.type.Date getDate() { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + */ + @java.lang.Override + public com.google.type.DateOrBuilder getDateOrBuilder() { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + + public static final int TITLE_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object title_ = ""; + + /** + * + * + *
+   * The title of the creator channel.
+   * 
+ * + * optional string title = 2; + * + * @return Whether the title field is set. + */ + @java.lang.Override + public boolean hasTitle() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * The title of the creator channel.
+   * 
+ * + * optional string title = 2; + * + * @return The title. + */ + @java.lang.Override + public java.lang.String getTitle() { + java.lang.Object ref = title_; + 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(); + title_ = s; + return s; + } + } + + /** + * + * + *
+   * The title of the creator channel.
+   * 
+ * + * optional string title = 2; + * + * @return The bytes for title. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CHANNEL_ID_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object channelId_ = ""; + + /** + * + * + *
+   * The id for the creator channel.
+   * 
+ * + * optional string channel_id = 3; + * + * @return Whether the channelId field is set. + */ + @java.lang.Override + public boolean hasChannelId() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * The id for the creator channel.
+   * 
+ * + * optional string channel_id = 3; + * + * @return The channelId. + */ + @java.lang.Override + public java.lang.String getChannelId() { + java.lang.Object ref = channelId_; + 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(); + channelId_ = s; + return s; + } + } + + /** + * + * + *
+   * The id for the creator channel.
+   * 
+ * + * optional string channel_id = 3; + * + * @return The bytes for channelId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getChannelIdBytes() { + java.lang.Object ref = channelId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + channelId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int GROSS_SALES_FIELD_NUMBER = 4; + private com.google.shopping.type.Price grossSales_; + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 4; + * + * @return Whether the grossSales field is set. + */ + @java.lang.Override + public boolean hasGrossSales() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 4; + * + * @return The grossSales. + */ + @java.lang.Override + public com.google.shopping.type.Price getGrossSales() { + return grossSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : grossSales_; + } + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 4; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder() { + return grossSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : grossSales_; + } + + public static final int COMMISSIONS_FIELD_NUMBER = 5; + private com.google.shopping.type.Price commissions_; + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 5; + * + * @return Whether the commissions field is set. + */ + @java.lang.Override + public boolean hasCommissions() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 5; + * + * @return The commissions. + */ + @java.lang.Override + public com.google.shopping.type.Price getCommissions() { + return commissions_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : commissions_; + } + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 5; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder() { + return commissions_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : commissions_; + } + + public static final int ORDERS_FIELD_NUMBER = 6; + private long orders_ = 0L; + + /** + * + * + *
+   * The number of orders.
+   * 
+ * + * optional int64 orders = 6; + * + * @return Whether the orders field is set. + */ + @java.lang.Override + public boolean hasOrders() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+   * The number of orders.
+   * 
+ * + * optional int64 orders = 6; + * + * @return The orders. + */ + @java.lang.Override + public long getOrders() { + return orders_; + } + + public static final int VIEWS_FIELD_NUMBER = 7; + private long views_ = 0L; + + /** + * + * + *
+   * The number of YouTube views.
+   * 
+ * + * optional int64 views = 7; + * + * @return Whether the views field is set. + */ + @java.lang.Override + public boolean hasViews() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+   * The number of YouTube views.
+   * 
+ * + * optional int64 views = 7; + * + * @return The views. + */ + @java.lang.Override + public long getViews() { + return views_; + } + + public static final int CLICKS_FIELD_NUMBER = 8; + private long clicks_ = 0L; + + /** + * + * + *
+   * The number of product clicks.
+   * 
+ * + * optional int64 clicks = 8; + * + * @return Whether the clicks field is set. + */ + @java.lang.Override + public boolean hasClicks() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+   * The number of product clicks.
+   * 
+ * + * optional int64 clicks = 8; + * + * @return The clicks. + */ + @java.lang.Override + public long getClicks() { + return clicks_; + } + + public static final int NET_SALES_FIELD_NUMBER = 9; + private com.google.shopping.type.Price netSales_; + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 9; + * + * @return Whether the netSales field is set. + */ + @java.lang.Override + public boolean hasNetSales() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 9; + * + * @return The netSales. + */ + @java.lang.Override + public com.google.shopping.type.Price getNetSales() { + return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_; + } + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 9; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder() { + return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_; + } + + 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 (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, title_); + } + if (((bitField0_ & 0x00000004) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, channelId_); + } + if (((bitField0_ & 0x00000008) != 0)) { + output.writeMessage(4, getGrossSales()); + } + if (((bitField0_ & 0x00000010) != 0)) { + output.writeMessage(5, getCommissions()); + } + if (((bitField0_ & 0x00000020) != 0)) { + output.writeInt64(6, orders_); + } + if (((bitField0_ & 0x00000040) != 0)) { + output.writeInt64(7, views_); + } + if (((bitField0_ & 0x00000080) != 0)) { + output.writeInt64(8, clicks_); + } + if (((bitField0_ & 0x00000100) != 0)) { + output.writeMessage(9, getNetSales()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, title_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, channelId_); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getGrossSales()); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getCommissions()); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(6, orders_); + } + if (((bitField0_ & 0x00000040) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(7, views_); + } + if (((bitField0_ & 0x00000080) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(8, clicks_); + } + if (((bitField0_ & 0x00000100) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, getNetSales()); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView other = + (com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView) obj; + + if (hasDate() != other.hasDate()) return false; + if (hasDate()) { + if (!getDate().equals(other.getDate())) return false; + } + if (hasTitle() != other.hasTitle()) return false; + if (hasTitle()) { + if (!getTitle().equals(other.getTitle())) return false; + } + if (hasChannelId() != other.hasChannelId()) return false; + if (hasChannelId()) { + if (!getChannelId().equals(other.getChannelId())) return false; + } + if (hasGrossSales() != other.hasGrossSales()) return false; + if (hasGrossSales()) { + if (!getGrossSales().equals(other.getGrossSales())) return false; + } + if (hasCommissions() != other.hasCommissions()) return false; + if (hasCommissions()) { + if (!getCommissions().equals(other.getCommissions())) return false; + } + if (hasOrders() != other.hasOrders()) return false; + if (hasOrders()) { + if (getOrders() != other.getOrders()) return false; + } + if (hasViews() != other.hasViews()) return false; + if (hasViews()) { + if (getViews() != other.getViews()) return false; + } + if (hasClicks() != other.hasClicks()) return false; + if (hasClicks()) { + if (getClicks() != other.getClicks()) return false; + } + if (hasNetSales() != other.hasNetSales()) return false; + if (hasNetSales()) { + if (!getNetSales().equals(other.getNetSales())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasDate()) { + hash = (37 * hash) + DATE_FIELD_NUMBER; + hash = (53 * hash) + getDate().hashCode(); + } + if (hasTitle()) { + hash = (37 * hash) + TITLE_FIELD_NUMBER; + hash = (53 * hash) + getTitle().hashCode(); + } + if (hasChannelId()) { + hash = (37 * hash) + CHANNEL_ID_FIELD_NUMBER; + hash = (53 * hash) + getChannelId().hashCode(); + } + if (hasGrossSales()) { + hash = (37 * hash) + GROSS_SALES_FIELD_NUMBER; + hash = (53 * hash) + getGrossSales().hashCode(); + } + if (hasCommissions()) { + hash = (37 * hash) + COMMISSIONS_FIELD_NUMBER; + hash = (53 * hash) + getCommissions().hashCode(); + } + if (hasOrders()) { + hash = (37 * hash) + ORDERS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getOrders()); + } + if (hasViews()) { + hash = (37 * hash) + VIEWS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getViews()); + } + if (hasClicks()) { + hash = (37 * hash) + CLICKS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getClicks()); + } + if (hasNetSales()) { + hash = (37 * hash) + NET_SALES_FIELD_NUMBER; + hash = (53 * hash) + getNetSales().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + 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.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + 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.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + 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.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + 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.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView 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; + } + + /** + * + * + *
+   * Fields available for query in `youtube_creator_performance_view` table.
+   *
+   * [YouTube creator performance
+   * data](https://support.google.com/merchants/answer/14947975) for your account.
+   * This data is only available if an account is enrolled in the [YouTube
+   * Shopping Affiliate
+   * program](https://support.google.com/merchants/answer/14815513?hl=en).
+   *
+   * Values are only set for fields requested explicitly in the request's search
+   * query.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView) + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceViewOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeCreatorPerformanceView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeCreatorPerformanceView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView.class, + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView.Builder + .class); + } + + // Construct using + // com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getDateFieldBuilder(); + getGrossSalesFieldBuilder(); + getCommissionsFieldBuilder(); + getNetSalesFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + date_ = null; + if (dateBuilder_ != null) { + dateBuilder_.dispose(); + dateBuilder_ = null; + } + title_ = ""; + channelId_ = ""; + grossSales_ = null; + if (grossSalesBuilder_ != null) { + grossSalesBuilder_.dispose(); + grossSalesBuilder_ = null; + } + commissions_ = null; + if (commissionsBuilder_ != null) { + commissionsBuilder_.dispose(); + commissionsBuilder_ = null; + } + orders_ = 0L; + views_ = 0L; + clicks_ = 0L; + netSales_ = null; + if (netSalesBuilder_ != null) { + netSalesBuilder_.dispose(); + netSalesBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeCreatorPerformanceView_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView build() { + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + buildPartial() { + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView result = + new com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.date_ = dateBuilder_ == null ? date_ : dateBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.title_ = title_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.channelId_ = channelId_; + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.grossSales_ = grossSalesBuilder_ == null ? grossSales_ : grossSalesBuilder_.build(); + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.commissions_ = + commissionsBuilder_ == null ? commissions_ : commissionsBuilder_.build(); + to_bitField0_ |= 0x00000010; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.orders_ = orders_; + to_bitField0_ |= 0x00000020; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.views_ = views_; + to_bitField0_ |= 0x00000040; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.clicks_ = clicks_; + to_bitField0_ |= 0x00000080; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.netSales_ = netSalesBuilder_ == null ? netSales_ : netSalesBuilder_.build(); + to_bitField0_ |= 0x00000100; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView) { + return mergeFrom( + (com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + .getDefaultInstance()) return this; + if (other.hasDate()) { + mergeDate(other.getDate()); + } + if (other.hasTitle()) { + title_ = other.title_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.hasChannelId()) { + channelId_ = other.channelId_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.hasGrossSales()) { + mergeGrossSales(other.getGrossSales()); + } + if (other.hasCommissions()) { + mergeCommissions(other.getCommissions()); + } + if (other.hasOrders()) { + setOrders(other.getOrders()); + } + if (other.hasViews()) { + setViews(other.getViews()); + } + if (other.hasClicks()) { + setClicks(other.getClicks()); + } + if (other.hasNetSales()) { + mergeNetSales(other.getNetSales()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getDateFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + title_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + channelId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + input.readMessage(getGrossSalesFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: + { + input.readMessage(getCommissionsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 48: + { + orders_ = input.readInt64(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 56: + { + views_ = input.readInt64(); + bitField0_ |= 0x00000040; + break; + } // case 56 + case 64: + { + clicks_ = input.readInt64(); + bitField0_ |= 0x00000080; + break; + } // case 64 + case 74: + { + input.readMessage(getNetSalesFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000100; + break; + } // case 74 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.type.Date date_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + dateBuilder_; + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + public boolean hasDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + public com.google.type.Date getDate() { + if (dateBuilder_ == null) { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } else { + return dateBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder setDate(com.google.type.Date value) { + if (dateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + date_ = value; + } else { + dateBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder setDate(com.google.type.Date.Builder builderForValue) { + if (dateBuilder_ == null) { + date_ = builderForValue.build(); + } else { + dateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder mergeDate(com.google.type.Date value) { + if (dateBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && date_ != null + && date_ != com.google.type.Date.getDefaultInstance()) { + getDateBuilder().mergeFrom(value); + } else { + date_ = value; + } + } else { + dateBuilder_.mergeFrom(value); + } + if (date_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder clearDate() { + bitField0_ = (bitField0_ & ~0x00000001); + date_ = null; + if (dateBuilder_ != null) { + dateBuilder_.dispose(); + dateBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public com.google.type.Date.Builder getDateBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getDateFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public com.google.type.DateOrBuilder getDateOrBuilder() { + if (dateBuilder_ != null) { + return dateBuilder_.getMessageOrBuilder(); + } else { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + getDateFieldBuilder() { + if (dateBuilder_ == null) { + dateBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>( + getDate(), getParentForChildren(), isClean()); + date_ = null; + } + return dateBuilder_; + } + + private java.lang.Object title_ = ""; + + /** + * + * + *
+     * The title of the creator channel.
+     * 
+ * + * optional string title = 2; + * + * @return Whether the title field is set. + */ + public boolean hasTitle() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * The title of the creator channel.
+     * 
+ * + * optional string title = 2; + * + * @return The title. + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The title of the creator channel.
+     * 
+ * + * optional string title = 2; + * + * @return The bytes for title. + */ + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The title of the creator channel.
+     * 
+ * + * optional string title = 2; + * + * @param value The title to set. + * @return This builder for chaining. + */ + public Builder setTitle(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + title_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * The title of the creator channel.
+     * 
+ * + * optional string title = 2; + * + * @return This builder for chaining. + */ + public Builder clearTitle() { + title_ = getDefaultInstance().getTitle(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * The title of the creator channel.
+     * 
+ * + * optional string title = 2; + * + * @param value The bytes for title to set. + * @return This builder for chaining. + */ + public Builder setTitleBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + title_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object channelId_ = ""; + + /** + * + * + *
+     * The id for the creator channel.
+     * 
+ * + * optional string channel_id = 3; + * + * @return Whether the channelId field is set. + */ + public boolean hasChannelId() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * The id for the creator channel.
+     * 
+ * + * optional string channel_id = 3; + * + * @return The channelId. + */ + public java.lang.String getChannelId() { + java.lang.Object ref = channelId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + channelId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The id for the creator channel.
+     * 
+ * + * optional string channel_id = 3; + * + * @return The bytes for channelId. + */ + public com.google.protobuf.ByteString getChannelIdBytes() { + java.lang.Object ref = channelId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + channelId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The id for the creator channel.
+     * 
+ * + * optional string channel_id = 3; + * + * @param value The channelId to set. + * @return This builder for chaining. + */ + public Builder setChannelId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + channelId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * The id for the creator channel.
+     * 
+ * + * optional string channel_id = 3; + * + * @return This builder for chaining. + */ + public Builder clearChannelId() { + channelId_ = getDefaultInstance().getChannelId(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * The id for the creator channel.
+     * 
+ * + * optional string channel_id = 3; + * + * @param value The bytes for channelId to set. + * @return This builder for chaining. + */ + public Builder setChannelIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + channelId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private com.google.shopping.type.Price grossSales_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + grossSalesBuilder_; + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 4; + * + * @return Whether the grossSales field is set. + */ + public boolean hasGrossSales() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 4; + * + * @return The grossSales. + */ + public com.google.shopping.type.Price getGrossSales() { + if (grossSalesBuilder_ == null) { + return grossSales_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : grossSales_; + } else { + return grossSalesBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 4; + */ + public Builder setGrossSales(com.google.shopping.type.Price value) { + if (grossSalesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + grossSales_ = value; + } else { + grossSalesBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 4; + */ + public Builder setGrossSales(com.google.shopping.type.Price.Builder builderForValue) { + if (grossSalesBuilder_ == null) { + grossSales_ = builderForValue.build(); + } else { + grossSalesBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 4; + */ + public Builder mergeGrossSales(com.google.shopping.type.Price value) { + if (grossSalesBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) + && grossSales_ != null + && grossSales_ != com.google.shopping.type.Price.getDefaultInstance()) { + getGrossSalesBuilder().mergeFrom(value); + } else { + grossSales_ = value; + } + } else { + grossSalesBuilder_.mergeFrom(value); + } + if (grossSales_ != null) { + bitField0_ |= 0x00000008; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 4; + */ + public Builder clearGrossSales() { + bitField0_ = (bitField0_ & ~0x00000008); + grossSales_ = null; + if (grossSalesBuilder_ != null) { + grossSalesBuilder_.dispose(); + grossSalesBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 4; + */ + public com.google.shopping.type.Price.Builder getGrossSalesBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getGrossSalesFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 4; + */ + public com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder() { + if (grossSalesBuilder_ != null) { + return grossSalesBuilder_.getMessageOrBuilder(); + } else { + return grossSales_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : grossSales_; + } + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + getGrossSalesFieldBuilder() { + if (grossSalesBuilder_ == null) { + grossSalesBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getGrossSales(), getParentForChildren(), isClean()); + grossSales_ = null; + } + return grossSalesBuilder_; + } + + private com.google.shopping.type.Price commissions_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + commissionsBuilder_; + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 5; + * + * @return Whether the commissions field is set. + */ + public boolean hasCommissions() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 5; + * + * @return The commissions. + */ + public com.google.shopping.type.Price getCommissions() { + if (commissionsBuilder_ == null) { + return commissions_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : commissions_; + } else { + return commissionsBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 5; + */ + public Builder setCommissions(com.google.shopping.type.Price value) { + if (commissionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + commissions_ = value; + } else { + commissionsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 5; + */ + public Builder setCommissions(com.google.shopping.type.Price.Builder builderForValue) { + if (commissionsBuilder_ == null) { + commissions_ = builderForValue.build(); + } else { + commissionsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 5; + */ + public Builder mergeCommissions(com.google.shopping.type.Price value) { + if (commissionsBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) + && commissions_ != null + && commissions_ != com.google.shopping.type.Price.getDefaultInstance()) { + getCommissionsBuilder().mergeFrom(value); + } else { + commissions_ = value; + } + } else { + commissionsBuilder_.mergeFrom(value); + } + if (commissions_ != null) { + bitField0_ |= 0x00000010; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 5; + */ + public Builder clearCommissions() { + bitField0_ = (bitField0_ & ~0x00000010); + commissions_ = null; + if (commissionsBuilder_ != null) { + commissionsBuilder_.dispose(); + commissionsBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 5; + */ + public com.google.shopping.type.Price.Builder getCommissionsBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getCommissionsFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 5; + */ + public com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder() { + if (commissionsBuilder_ != null) { + return commissionsBuilder_.getMessageOrBuilder(); + } else { + return commissions_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : commissions_; + } + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 5; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + getCommissionsFieldBuilder() { + if (commissionsBuilder_ == null) { + commissionsBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getCommissions(), getParentForChildren(), isClean()); + commissions_ = null; + } + return commissionsBuilder_; + } + + private long orders_; + + /** + * + * + *
+     * The number of orders.
+     * 
+ * + * optional int64 orders = 6; + * + * @return Whether the orders field is set. + */ + @java.lang.Override + public boolean hasOrders() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * The number of orders.
+     * 
+ * + * optional int64 orders = 6; + * + * @return The orders. + */ + @java.lang.Override + public long getOrders() { + return orders_; + } + + /** + * + * + *
+     * The number of orders.
+     * 
+ * + * optional int64 orders = 6; + * + * @param value The orders to set. + * @return This builder for chaining. + */ + public Builder setOrders(long value) { + + orders_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * The number of orders.
+     * 
+ * + * optional int64 orders = 6; + * + * @return This builder for chaining. + */ + public Builder clearOrders() { + bitField0_ = (bitField0_ & ~0x00000020); + orders_ = 0L; + onChanged(); + return this; + } + + private long views_; + + /** + * + * + *
+     * The number of YouTube views.
+     * 
+ * + * optional int64 views = 7; + * + * @return Whether the views field is set. + */ + @java.lang.Override + public boolean hasViews() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+     * The number of YouTube views.
+     * 
+ * + * optional int64 views = 7; + * + * @return The views. + */ + @java.lang.Override + public long getViews() { + return views_; + } + + /** + * + * + *
+     * The number of YouTube views.
+     * 
+ * + * optional int64 views = 7; + * + * @param value The views to set. + * @return This builder for chaining. + */ + public Builder setViews(long value) { + + views_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * The number of YouTube views.
+     * 
+ * + * optional int64 views = 7; + * + * @return This builder for chaining. + */ + public Builder clearViews() { + bitField0_ = (bitField0_ & ~0x00000040); + views_ = 0L; + onChanged(); + return this; + } + + private long clicks_; + + /** + * + * + *
+     * The number of product clicks.
+     * 
+ * + * optional int64 clicks = 8; + * + * @return Whether the clicks field is set. + */ + @java.lang.Override + public boolean hasClicks() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+     * The number of product clicks.
+     * 
+ * + * optional int64 clicks = 8; + * + * @return The clicks. + */ + @java.lang.Override + public long getClicks() { + return clicks_; + } + + /** + * + * + *
+     * The number of product clicks.
+     * 
+ * + * optional int64 clicks = 8; + * + * @param value The clicks to set. + * @return This builder for chaining. + */ + public Builder setClicks(long value) { + + clicks_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * + * + *
+     * The number of product clicks.
+     * 
+ * + * optional int64 clicks = 8; + * + * @return This builder for chaining. + */ + public Builder clearClicks() { + bitField0_ = (bitField0_ & ~0x00000080); + clicks_ = 0L; + onChanged(); + return this; + } + + private com.google.shopping.type.Price netSales_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + netSalesBuilder_; + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 9; + * + * @return Whether the netSales field is set. + */ + public boolean hasNetSales() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 9; + * + * @return The netSales. + */ + public com.google.shopping.type.Price getNetSales() { + if (netSalesBuilder_ == null) { + return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_; + } else { + return netSalesBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 9; + */ + public Builder setNetSales(com.google.shopping.type.Price value) { + if (netSalesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + netSales_ = value; + } else { + netSalesBuilder_.setMessage(value); + } + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 9; + */ + public Builder setNetSales(com.google.shopping.type.Price.Builder builderForValue) { + if (netSalesBuilder_ == null) { + netSales_ = builderForValue.build(); + } else { + netSalesBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 9; + */ + public Builder mergeNetSales(com.google.shopping.type.Price value) { + if (netSalesBuilder_ == null) { + if (((bitField0_ & 0x00000100) != 0) + && netSales_ != null + && netSales_ != com.google.shopping.type.Price.getDefaultInstance()) { + getNetSalesBuilder().mergeFrom(value); + } else { + netSales_ = value; + } + } else { + netSalesBuilder_.mergeFrom(value); + } + if (netSales_ != null) { + bitField0_ |= 0x00000100; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 9; + */ + public Builder clearNetSales() { + bitField0_ = (bitField0_ & ~0x00000100); + netSales_ = null; + if (netSalesBuilder_ != null) { + netSalesBuilder_.dispose(); + netSalesBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 9; + */ + public com.google.shopping.type.Price.Builder getNetSalesBuilder() { + bitField0_ |= 0x00000100; + onChanged(); + return getNetSalesFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 9; + */ + public com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder() { + if (netSalesBuilder_ != null) { + return netSalesBuilder_.getMessageOrBuilder(); + } else { + return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_; + } + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 9; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + getNetSalesFieldBuilder() { + if (netSalesBuilder_ == null) { + netSalesBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getNetSales(), getParentForChildren(), isClean()); + netSales_ = null; + } + return netSalesBuilder_; + } + + @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.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView) + private static final com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView(); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public YoutubeCreatorPerformanceView parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeCreatorPerformanceViewOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeCreatorPerformanceViewOrBuilder.java new file mode 100644 index 000000000000..112482391f58 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeCreatorPerformanceViewOrBuilder.java @@ -0,0 +1,336 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface YoutubeCreatorPerformanceViewOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + boolean hasDate(); + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + com.google.type.Date getDate(); + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + */ + com.google.type.DateOrBuilder getDateOrBuilder(); + + /** + * + * + *
+   * The title of the creator channel.
+   * 
+ * + * optional string title = 2; + * + * @return Whether the title field is set. + */ + boolean hasTitle(); + + /** + * + * + *
+   * The title of the creator channel.
+   * 
+ * + * optional string title = 2; + * + * @return The title. + */ + java.lang.String getTitle(); + + /** + * + * + *
+   * The title of the creator channel.
+   * 
+ * + * optional string title = 2; + * + * @return The bytes for title. + */ + com.google.protobuf.ByteString getTitleBytes(); + + /** + * + * + *
+   * The id for the creator channel.
+   * 
+ * + * optional string channel_id = 3; + * + * @return Whether the channelId field is set. + */ + boolean hasChannelId(); + + /** + * + * + *
+   * The id for the creator channel.
+   * 
+ * + * optional string channel_id = 3; + * + * @return The channelId. + */ + java.lang.String getChannelId(); + + /** + * + * + *
+   * The id for the creator channel.
+   * 
+ * + * optional string channel_id = 3; + * + * @return The bytes for channelId. + */ + com.google.protobuf.ByteString getChannelIdBytes(); + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 4; + * + * @return Whether the grossSales field is set. + */ + boolean hasGrossSales(); + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 4; + * + * @return The grossSales. + */ + com.google.shopping.type.Price getGrossSales(); + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 4; + */ + com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder(); + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 5; + * + * @return Whether the commissions field is set. + */ + boolean hasCommissions(); + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 5; + * + * @return The commissions. + */ + com.google.shopping.type.Price getCommissions(); + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 5; + */ + com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder(); + + /** + * + * + *
+   * The number of orders.
+   * 
+ * + * optional int64 orders = 6; + * + * @return Whether the orders field is set. + */ + boolean hasOrders(); + + /** + * + * + *
+   * The number of orders.
+   * 
+ * + * optional int64 orders = 6; + * + * @return The orders. + */ + long getOrders(); + + /** + * + * + *
+   * The number of YouTube views.
+   * 
+ * + * optional int64 views = 7; + * + * @return Whether the views field is set. + */ + boolean hasViews(); + + /** + * + * + *
+   * The number of YouTube views.
+   * 
+ * + * optional int64 views = 7; + * + * @return The views. + */ + long getViews(); + + /** + * + * + *
+   * The number of product clicks.
+   * 
+ * + * optional int64 clicks = 8; + * + * @return Whether the clicks field is set. + */ + boolean hasClicks(); + + /** + * + * + *
+   * The number of product clicks.
+   * 
+ * + * optional int64 clicks = 8; + * + * @return The clicks. + */ + long getClicks(); + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 9; + * + * @return Whether the netSales field is set. + */ + boolean hasNetSales(); + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 9; + * + * @return The netSales. + */ + com.google.shopping.type.Price getNetSales(); + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 9; + */ + com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder(); +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeProductPerformanceView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeProductPerformanceView.java new file mode 100644 index 000000000000..4f93a05f8869 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeProductPerformanceView.java @@ -0,0 +1,2744 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +/** + * + * + *
+ * Fields available for query in `youtube_product_performance_view` table.
+ *
+ * [YouTube product performance
+ * data](https://support.google.com/merchants/answer/14947975) for your account.
+ * This data is only available if an account is enrolled in the [YouTube
+ * Shopping Affiliate
+ * program](https://support.google.com/merchants/answer/14815513?hl=en).
+ *
+ * Values are only set for fields requested explicitly in the request's search
+ * query.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView} + */ +public final class YoutubeProductPerformanceView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView) + YoutubeProductPerformanceViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use YoutubeProductPerformanceView.newBuilder() to construct. + private YoutubeProductPerformanceView(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private YoutubeProductPerformanceView() { + title_ = ""; + offerId_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new YoutubeProductPerformanceView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeProductPerformanceView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeProductPerformanceView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView.class, + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView.Builder + .class); + } + + private int bitField0_; + public static final int DATE_FIELD_NUMBER = 1; + private com.google.type.Date date_; + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + @java.lang.Override + public boolean hasDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + @java.lang.Override + public com.google.type.Date getDate() { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + */ + @java.lang.Override + public com.google.type.DateOrBuilder getDateOrBuilder() { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + + public static final int TITLE_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object title_ = ""; + + /** + * + * + *
+   * The product title.
+   * 
+ * + * optional string title = 2; + * + * @return Whether the title field is set. + */ + @java.lang.Override + public boolean hasTitle() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * The product title.
+   * 
+ * + * optional string title = 2; + * + * @return The title. + */ + @java.lang.Override + public java.lang.String getTitle() { + java.lang.Object ref = title_; + 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(); + title_ = s; + return s; + } + } + + /** + * + * + *
+   * The product title.
+   * 
+ * + * optional string title = 2; + * + * @return The bytes for title. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int OFFER_ID_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object offerId_ = ""; + + /** + * + * + *
+   * The merchant-provided product id.
+   * 
+ * + * optional string offer_id = 3; + * + * @return Whether the offerId field is set. + */ + @java.lang.Override + public boolean hasOfferId() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * The merchant-provided product id.
+   * 
+ * + * optional string offer_id = 3; + * + * @return The offerId. + */ + @java.lang.Override + public java.lang.String getOfferId() { + java.lang.Object ref = offerId_; + 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(); + offerId_ = s; + return s; + } + } + + /** + * + * + *
+   * The merchant-provided product id.
+   * 
+ * + * optional string offer_id = 3; + * + * @return The bytes for offerId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getOfferIdBytes() { + java.lang.Object ref = offerId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + offerId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DISTINCT_VIDEO_COUNT_FIELD_NUMBER = 4; + private long distinctVideoCount_ = 0L; + + /** + * + * + *
+   * The number of distinct videos the product was shown on.
+   * 
+ * + * optional int64 distinct_video_count = 4; + * + * @return Whether the distinctVideoCount field is set. + */ + @java.lang.Override + public boolean hasDistinctVideoCount() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * The number of distinct videos the product was shown on.
+   * 
+ * + * optional int64 distinct_video_count = 4; + * + * @return The distinctVideoCount. + */ + @java.lang.Override + public long getDistinctVideoCount() { + return distinctVideoCount_; + } + + public static final int DISTINCT_CREATOR_COUNT_FIELD_NUMBER = 5; + private long distinctCreatorCount_ = 0L; + + /** + * + * + *
+   * The number of distinct creator channels the product was shown on.
+   * 
+ * + * optional int64 distinct_creator_count = 5; + * + * @return Whether the distinctCreatorCount field is set. + */ + @java.lang.Override + public boolean hasDistinctCreatorCount() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * The number of distinct creator channels the product was shown on.
+   * 
+ * + * optional int64 distinct_creator_count = 5; + * + * @return The distinctCreatorCount. + */ + @java.lang.Override + public long getDistinctCreatorCount() { + return distinctCreatorCount_; + } + + public static final int GROSS_SALES_FIELD_NUMBER = 6; + private com.google.shopping.type.Price grossSales_; + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + * + * @return Whether the grossSales field is set. + */ + @java.lang.Override + public boolean hasGrossSales() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + * + * @return The grossSales. + */ + @java.lang.Override + public com.google.shopping.type.Price getGrossSales() { + return grossSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : grossSales_; + } + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder() { + return grossSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : grossSales_; + } + + public static final int COMMISSIONS_FIELD_NUMBER = 7; + private com.google.shopping.type.Price commissions_; + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 7; + * + * @return Whether the commissions field is set. + */ + @java.lang.Override + public boolean hasCommissions() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 7; + * + * @return The commissions. + */ + @java.lang.Override + public com.google.shopping.type.Price getCommissions() { + return commissions_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : commissions_; + } + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder() { + return commissions_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : commissions_; + } + + public static final int ORDERS_FIELD_NUMBER = 8; + private long orders_ = 0L; + + /** + * + * + *
+   * The number of orders.
+   * 
+ * + * optional int64 orders = 8; + * + * @return Whether the orders field is set. + */ + @java.lang.Override + public boolean hasOrders() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+   * The number of orders.
+   * 
+ * + * optional int64 orders = 8; + * + * @return The orders. + */ + @java.lang.Override + public long getOrders() { + return orders_; + } + + public static final int VIEWS_FIELD_NUMBER = 9; + private long views_ = 0L; + + /** + * + * + *
+   * The number of YouTube views.
+   * 
+ * + * optional int64 views = 9; + * + * @return Whether the views field is set. + */ + @java.lang.Override + public boolean hasViews() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+   * The number of YouTube views.
+   * 
+ * + * optional int64 views = 9; + * + * @return The views. + */ + @java.lang.Override + public long getViews() { + return views_; + } + + public static final int CLICKS_FIELD_NUMBER = 10; + private long clicks_ = 0L; + + /** + * + * + *
+   * The number of product clicks.
+   * 
+ * + * optional int64 clicks = 10; + * + * @return Whether the clicks field is set. + */ + @java.lang.Override + public boolean hasClicks() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+   * The number of product clicks.
+   * 
+ * + * optional int64 clicks = 10; + * + * @return The clicks. + */ + @java.lang.Override + public long getClicks() { + return clicks_; + } + + public static final int NET_SALES_FIELD_NUMBER = 11; + private com.google.shopping.type.Price netSales_; + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + * + * @return Whether the netSales field is set. + */ + @java.lang.Override + public boolean hasNetSales() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + * + * @return The netSales. + */ + @java.lang.Override + public com.google.shopping.type.Price getNetSales() { + return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_; + } + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder() { + return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_; + } + + 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 (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, title_); + } + if (((bitField0_ & 0x00000004) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, offerId_); + } + if (((bitField0_ & 0x00000008) != 0)) { + output.writeInt64(4, distinctVideoCount_); + } + if (((bitField0_ & 0x00000010) != 0)) { + output.writeInt64(5, distinctCreatorCount_); + } + if (((bitField0_ & 0x00000020) != 0)) { + output.writeMessage(6, getGrossSales()); + } + if (((bitField0_ & 0x00000040) != 0)) { + output.writeMessage(7, getCommissions()); + } + if (((bitField0_ & 0x00000080) != 0)) { + output.writeInt64(8, orders_); + } + if (((bitField0_ & 0x00000100) != 0)) { + output.writeInt64(9, views_); + } + if (((bitField0_ & 0x00000200) != 0)) { + output.writeInt64(10, clicks_); + } + if (((bitField0_ & 0x00000400) != 0)) { + output.writeMessage(11, getNetSales()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, title_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, offerId_); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(4, distinctVideoCount_); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(5, distinctCreatorCount_); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getGrossSales()); + } + if (((bitField0_ & 0x00000040) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getCommissions()); + } + if (((bitField0_ & 0x00000080) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(8, orders_); + } + if (((bitField0_ & 0x00000100) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(9, views_); + } + if (((bitField0_ & 0x00000200) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(10, clicks_); + } + if (((bitField0_ & 0x00000400) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, getNetSales()); + } + size += getUnknownFields().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.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView)) { + return super.equals(obj); + } + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView other = + (com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView) obj; + + if (hasDate() != other.hasDate()) return false; + if (hasDate()) { + if (!getDate().equals(other.getDate())) return false; + } + if (hasTitle() != other.hasTitle()) return false; + if (hasTitle()) { + if (!getTitle().equals(other.getTitle())) return false; + } + if (hasOfferId() != other.hasOfferId()) return false; + if (hasOfferId()) { + if (!getOfferId().equals(other.getOfferId())) return false; + } + if (hasDistinctVideoCount() != other.hasDistinctVideoCount()) return false; + if (hasDistinctVideoCount()) { + if (getDistinctVideoCount() != other.getDistinctVideoCount()) return false; + } + if (hasDistinctCreatorCount() != other.hasDistinctCreatorCount()) return false; + if (hasDistinctCreatorCount()) { + if (getDistinctCreatorCount() != other.getDistinctCreatorCount()) return false; + } + if (hasGrossSales() != other.hasGrossSales()) return false; + if (hasGrossSales()) { + if (!getGrossSales().equals(other.getGrossSales())) return false; + } + if (hasCommissions() != other.hasCommissions()) return false; + if (hasCommissions()) { + if (!getCommissions().equals(other.getCommissions())) return false; + } + if (hasOrders() != other.hasOrders()) return false; + if (hasOrders()) { + if (getOrders() != other.getOrders()) return false; + } + if (hasViews() != other.hasViews()) return false; + if (hasViews()) { + if (getViews() != other.getViews()) return false; + } + if (hasClicks() != other.hasClicks()) return false; + if (hasClicks()) { + if (getClicks() != other.getClicks()) return false; + } + if (hasNetSales() != other.hasNetSales()) return false; + if (hasNetSales()) { + if (!getNetSales().equals(other.getNetSales())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasDate()) { + hash = (37 * hash) + DATE_FIELD_NUMBER; + hash = (53 * hash) + getDate().hashCode(); + } + if (hasTitle()) { + hash = (37 * hash) + TITLE_FIELD_NUMBER; + hash = (53 * hash) + getTitle().hashCode(); + } + if (hasOfferId()) { + hash = (37 * hash) + OFFER_ID_FIELD_NUMBER; + hash = (53 * hash) + getOfferId().hashCode(); + } + if (hasDistinctVideoCount()) { + hash = (37 * hash) + DISTINCT_VIDEO_COUNT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getDistinctVideoCount()); + } + if (hasDistinctCreatorCount()) { + hash = (37 * hash) + DISTINCT_CREATOR_COUNT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getDistinctCreatorCount()); + } + if (hasGrossSales()) { + hash = (37 * hash) + GROSS_SALES_FIELD_NUMBER; + hash = (53 * hash) + getGrossSales().hashCode(); + } + if (hasCommissions()) { + hash = (37 * hash) + COMMISSIONS_FIELD_NUMBER; + hash = (53 * hash) + getCommissions().hashCode(); + } + if (hasOrders()) { + hash = (37 * hash) + ORDERS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getOrders()); + } + if (hasViews()) { + hash = (37 * hash) + VIEWS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getViews()); + } + if (hasClicks()) { + hash = (37 * hash) + CLICKS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getClicks()); + } + if (hasNetSales()) { + hash = (37 * hash) + NET_SALES_FIELD_NUMBER; + hash = (53 * hash) + getNetSales().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + 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.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + 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.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + 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.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + 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.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView 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; + } + + /** + * + * + *
+   * Fields available for query in `youtube_product_performance_view` table.
+   *
+   * [YouTube product performance
+   * data](https://support.google.com/merchants/answer/14947975) for your account.
+   * This data is only available if an account is enrolled in the [YouTube
+   * Shopping Affiliate
+   * program](https://support.google.com/merchants/answer/14815513?hl=en).
+   *
+   * Values are only set for fields requested explicitly in the request's search
+   * query.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView) + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceViewOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeProductPerformanceView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeProductPerformanceView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView.class, + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView.Builder + .class); + } + + // Construct using + // com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getDateFieldBuilder(); + getGrossSalesFieldBuilder(); + getCommissionsFieldBuilder(); + getNetSalesFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + date_ = null; + if (dateBuilder_ != null) { + dateBuilder_.dispose(); + dateBuilder_ = null; + } + title_ = ""; + offerId_ = ""; + distinctVideoCount_ = 0L; + distinctCreatorCount_ = 0L; + grossSales_ = null; + if (grossSalesBuilder_ != null) { + grossSalesBuilder_.dispose(); + grossSalesBuilder_ = null; + } + commissions_ = null; + if (commissionsBuilder_ != null) { + commissionsBuilder_.dispose(); + commissionsBuilder_ = null; + } + orders_ = 0L; + views_ = 0L; + clicks_ = 0L; + netSales_ = null; + if (netSalesBuilder_ != null) { + netSalesBuilder_.dispose(); + netSalesBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeProductPerformanceView_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + getDefaultInstanceForType() { + return com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView build() { + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + buildPartial() { + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView result = + new com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.date_ = dateBuilder_ == null ? date_ : dateBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.title_ = title_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.offerId_ = offerId_; + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.distinctVideoCount_ = distinctVideoCount_; + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.distinctCreatorCount_ = distinctCreatorCount_; + to_bitField0_ |= 0x00000010; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.grossSales_ = grossSalesBuilder_ == null ? grossSales_ : grossSalesBuilder_.build(); + to_bitField0_ |= 0x00000020; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.commissions_ = + commissionsBuilder_ == null ? commissions_ : commissionsBuilder_.build(); + to_bitField0_ |= 0x00000040; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.orders_ = orders_; + to_bitField0_ |= 0x00000080; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.views_ = views_; + to_bitField0_ |= 0x00000100; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.clicks_ = clicks_; + to_bitField0_ |= 0x00000200; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.netSales_ = netSalesBuilder_ == null ? netSales_ : netSalesBuilder_.build(); + to_bitField0_ |= 0x00000400; + } + result.bitField0_ |= to_bitField0_; + } + + @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.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView) { + return mergeFrom( + (com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView other) { + if (other + == com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + .getDefaultInstance()) return this; + if (other.hasDate()) { + mergeDate(other.getDate()); + } + if (other.hasTitle()) { + title_ = other.title_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.hasOfferId()) { + offerId_ = other.offerId_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.hasDistinctVideoCount()) { + setDistinctVideoCount(other.getDistinctVideoCount()); + } + if (other.hasDistinctCreatorCount()) { + setDistinctCreatorCount(other.getDistinctCreatorCount()); + } + if (other.hasGrossSales()) { + mergeGrossSales(other.getGrossSales()); + } + if (other.hasCommissions()) { + mergeCommissions(other.getCommissions()); + } + if (other.hasOrders()) { + setOrders(other.getOrders()); + } + if (other.hasViews()) { + setViews(other.getViews()); + } + if (other.hasClicks()) { + setClicks(other.getClicks()); + } + if (other.hasNetSales()) { + mergeNetSales(other.getNetSales()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getDateFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + title_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + offerId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 32: + { + distinctVideoCount_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 40: + { + distinctCreatorCount_ = input.readInt64(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 50: + { + input.readMessage(getGrossSalesFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 58: + { + input.readMessage(getCommissionsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 64: + { + orders_ = input.readInt64(); + bitField0_ |= 0x00000080; + break; + } // case 64 + case 72: + { + views_ = input.readInt64(); + bitField0_ |= 0x00000100; + break; + } // case 72 + case 80: + { + clicks_ = input.readInt64(); + bitField0_ |= 0x00000200; + break; + } // case 80 + case 90: + { + input.readMessage(getNetSalesFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000400; + break; + } // case 90 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.type.Date date_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + dateBuilder_; + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + public boolean hasDate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + public com.google.type.Date getDate() { + if (dateBuilder_ == null) { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } else { + return dateBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder setDate(com.google.type.Date value) { + if (dateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + date_ = value; + } else { + dateBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder setDate(com.google.type.Date.Builder builderForValue) { + if (dateBuilder_ == null) { + date_ = builderForValue.build(); + } else { + dateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder mergeDate(com.google.type.Date value) { + if (dateBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && date_ != null + && date_ != com.google.type.Date.getDefaultInstance()) { + getDateBuilder().mergeFrom(value); + } else { + date_ = value; + } + } else { + dateBuilder_.mergeFrom(value); + } + if (date_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public Builder clearDate() { + bitField0_ = (bitField0_ & ~0x00000001); + date_ = null; + if (dateBuilder_ != null) { + dateBuilder_.dispose(); + dateBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public com.google.type.Date.Builder getDateBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getDateFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + public com.google.type.DateOrBuilder getDateOrBuilder() { + if (dateBuilder_ != null) { + return dateBuilder_.getMessageOrBuilder(); + } else { + return date_ == null ? com.google.type.Date.getDefaultInstance() : date_; + } + } + + /** + * + * + *
+     * Date in the merchant timezone to which metrics apply. Segment.
+     *
+     * Condition on `date` is required in the `WHERE` clause.
+     * 
+ * + * .google.type.Date date = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder> + getDateFieldBuilder() { + if (dateBuilder_ == null) { + dateBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>( + getDate(), getParentForChildren(), isClean()); + date_ = null; + } + return dateBuilder_; + } + + private java.lang.Object title_ = ""; + + /** + * + * + *
+     * The product title.
+     * 
+ * + * optional string title = 2; + * + * @return Whether the title field is set. + */ + public boolean hasTitle() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * The product title.
+     * 
+ * + * optional string title = 2; + * + * @return The title. + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The product title.
+     * 
+ * + * optional string title = 2; + * + * @return The bytes for title. + */ + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The product title.
+     * 
+ * + * optional string title = 2; + * + * @param value The title to set. + * @return This builder for chaining. + */ + public Builder setTitle(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + title_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * The product title.
+     * 
+ * + * optional string title = 2; + * + * @return This builder for chaining. + */ + public Builder clearTitle() { + title_ = getDefaultInstance().getTitle(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * The product title.
+     * 
+ * + * optional string title = 2; + * + * @param value The bytes for title to set. + * @return This builder for chaining. + */ + public Builder setTitleBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + title_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object offerId_ = ""; + + /** + * + * + *
+     * The merchant-provided product id.
+     * 
+ * + * optional string offer_id = 3; + * + * @return Whether the offerId field is set. + */ + public boolean hasOfferId() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * The merchant-provided product id.
+     * 
+ * + * optional string offer_id = 3; + * + * @return The offerId. + */ + public java.lang.String getOfferId() { + java.lang.Object ref = offerId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + offerId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The merchant-provided product id.
+     * 
+ * + * optional string offer_id = 3; + * + * @return The bytes for offerId. + */ + public com.google.protobuf.ByteString getOfferIdBytes() { + java.lang.Object ref = offerId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + offerId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The merchant-provided product id.
+     * 
+ * + * optional string offer_id = 3; + * + * @param value The offerId to set. + * @return This builder for chaining. + */ + public Builder setOfferId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + offerId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * The merchant-provided product id.
+     * 
+ * + * optional string offer_id = 3; + * + * @return This builder for chaining. + */ + public Builder clearOfferId() { + offerId_ = getDefaultInstance().getOfferId(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * The merchant-provided product id.
+     * 
+ * + * optional string offer_id = 3; + * + * @param value The bytes for offerId to set. + * @return This builder for chaining. + */ + public Builder setOfferIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + offerId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private long distinctVideoCount_; + + /** + * + * + *
+     * The number of distinct videos the product was shown on.
+     * 
+ * + * optional int64 distinct_video_count = 4; + * + * @return Whether the distinctVideoCount field is set. + */ + @java.lang.Override + public boolean hasDistinctVideoCount() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * The number of distinct videos the product was shown on.
+     * 
+ * + * optional int64 distinct_video_count = 4; + * + * @return The distinctVideoCount. + */ + @java.lang.Override + public long getDistinctVideoCount() { + return distinctVideoCount_; + } + + /** + * + * + *
+     * The number of distinct videos the product was shown on.
+     * 
+ * + * optional int64 distinct_video_count = 4; + * + * @param value The distinctVideoCount to set. + * @return This builder for chaining. + */ + public Builder setDistinctVideoCount(long value) { + + distinctVideoCount_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * The number of distinct videos the product was shown on.
+     * 
+ * + * optional int64 distinct_video_count = 4; + * + * @return This builder for chaining. + */ + public Builder clearDistinctVideoCount() { + bitField0_ = (bitField0_ & ~0x00000008); + distinctVideoCount_ = 0L; + onChanged(); + return this; + } + + private long distinctCreatorCount_; + + /** + * + * + *
+     * The number of distinct creator channels the product was shown on.
+     * 
+ * + * optional int64 distinct_creator_count = 5; + * + * @return Whether the distinctCreatorCount field is set. + */ + @java.lang.Override + public boolean hasDistinctCreatorCount() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * The number of distinct creator channels the product was shown on.
+     * 
+ * + * optional int64 distinct_creator_count = 5; + * + * @return The distinctCreatorCount. + */ + @java.lang.Override + public long getDistinctCreatorCount() { + return distinctCreatorCount_; + } + + /** + * + * + *
+     * The number of distinct creator channels the product was shown on.
+     * 
+ * + * optional int64 distinct_creator_count = 5; + * + * @param value The distinctCreatorCount to set. + * @return This builder for chaining. + */ + public Builder setDistinctCreatorCount(long value) { + + distinctCreatorCount_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * The number of distinct creator channels the product was shown on.
+     * 
+ * + * optional int64 distinct_creator_count = 5; + * + * @return This builder for chaining. + */ + public Builder clearDistinctCreatorCount() { + bitField0_ = (bitField0_ & ~0x00000010); + distinctCreatorCount_ = 0L; + onChanged(); + return this; + } + + private com.google.shopping.type.Price grossSales_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + grossSalesBuilder_; + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + * + * @return Whether the grossSales field is set. + */ + public boolean hasGrossSales() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + * + * @return The grossSales. + */ + public com.google.shopping.type.Price getGrossSales() { + if (grossSalesBuilder_ == null) { + return grossSales_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : grossSales_; + } else { + return grossSalesBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + public Builder setGrossSales(com.google.shopping.type.Price value) { + if (grossSalesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + grossSales_ = value; + } else { + grossSalesBuilder_.setMessage(value); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + public Builder setGrossSales(com.google.shopping.type.Price.Builder builderForValue) { + if (grossSalesBuilder_ == null) { + grossSales_ = builderForValue.build(); + } else { + grossSalesBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + public Builder mergeGrossSales(com.google.shopping.type.Price value) { + if (grossSalesBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0) + && grossSales_ != null + && grossSales_ != com.google.shopping.type.Price.getDefaultInstance()) { + getGrossSalesBuilder().mergeFrom(value); + } else { + grossSales_ = value; + } + } else { + grossSalesBuilder_.mergeFrom(value); + } + if (grossSales_ != null) { + bitField0_ |= 0x00000020; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + public Builder clearGrossSales() { + bitField0_ = (bitField0_ & ~0x00000020); + grossSales_ = null; + if (grossSalesBuilder_ != null) { + grossSalesBuilder_.dispose(); + grossSalesBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + public com.google.shopping.type.Price.Builder getGrossSalesBuilder() { + bitField0_ |= 0x00000020; + onChanged(); + return getGrossSalesFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + public com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder() { + if (grossSalesBuilder_ != null) { + return grossSalesBuilder_.getMessageOrBuilder(); + } else { + return grossSales_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : grossSales_; + } + } + + /** + * + * + *
+     * The gross sales amount, before refunds.
+     * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + getGrossSalesFieldBuilder() { + if (grossSalesBuilder_ == null) { + grossSalesBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getGrossSales(), getParentForChildren(), isClean()); + grossSales_ = null; + } + return grossSalesBuilder_; + } + + private com.google.shopping.type.Price commissions_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + commissionsBuilder_; + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + * + * @return Whether the commissions field is set. + */ + public boolean hasCommissions() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + * + * @return The commissions. + */ + public com.google.shopping.type.Price getCommissions() { + if (commissionsBuilder_ == null) { + return commissions_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : commissions_; + } else { + return commissionsBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + public Builder setCommissions(com.google.shopping.type.Price value) { + if (commissionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + commissions_ = value; + } else { + commissionsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + public Builder setCommissions(com.google.shopping.type.Price.Builder builderForValue) { + if (commissionsBuilder_ == null) { + commissions_ = builderForValue.build(); + } else { + commissionsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + public Builder mergeCommissions(com.google.shopping.type.Price value) { + if (commissionsBuilder_ == null) { + if (((bitField0_ & 0x00000040) != 0) + && commissions_ != null + && commissions_ != com.google.shopping.type.Price.getDefaultInstance()) { + getCommissionsBuilder().mergeFrom(value); + } else { + commissions_ = value; + } + } else { + commissionsBuilder_.mergeFrom(value); + } + if (commissions_ != null) { + bitField0_ |= 0x00000040; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + public Builder clearCommissions() { + bitField0_ = (bitField0_ & ~0x00000040); + commissions_ = null; + if (commissionsBuilder_ != null) { + commissionsBuilder_.dispose(); + commissionsBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + public com.google.shopping.type.Price.Builder getCommissionsBuilder() { + bitField0_ |= 0x00000040; + onChanged(); + return getCommissionsFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + public com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder() { + if (commissionsBuilder_ != null) { + return commissionsBuilder_.getMessageOrBuilder(); + } else { + return commissions_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : commissions_; + } + } + + /** + * + * + *
+     * The commissions amount (pending and paid).
+     * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + getCommissionsFieldBuilder() { + if (commissionsBuilder_ == null) { + commissionsBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getCommissions(), getParentForChildren(), isClean()); + commissions_ = null; + } + return commissionsBuilder_; + } + + private long orders_; + + /** + * + * + *
+     * The number of orders.
+     * 
+ * + * optional int64 orders = 8; + * + * @return Whether the orders field is set. + */ + @java.lang.Override + public boolean hasOrders() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+     * The number of orders.
+     * 
+ * + * optional int64 orders = 8; + * + * @return The orders. + */ + @java.lang.Override + public long getOrders() { + return orders_; + } + + /** + * + * + *
+     * The number of orders.
+     * 
+ * + * optional int64 orders = 8; + * + * @param value The orders to set. + * @return This builder for chaining. + */ + public Builder setOrders(long value) { + + orders_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * + * + *
+     * The number of orders.
+     * 
+ * + * optional int64 orders = 8; + * + * @return This builder for chaining. + */ + public Builder clearOrders() { + bitField0_ = (bitField0_ & ~0x00000080); + orders_ = 0L; + onChanged(); + return this; + } + + private long views_; + + /** + * + * + *
+     * The number of YouTube views.
+     * 
+ * + * optional int64 views = 9; + * + * @return Whether the views field is set. + */ + @java.lang.Override + public boolean hasViews() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+     * The number of YouTube views.
+     * 
+ * + * optional int64 views = 9; + * + * @return The views. + */ + @java.lang.Override + public long getViews() { + return views_; + } + + /** + * + * + *
+     * The number of YouTube views.
+     * 
+ * + * optional int64 views = 9; + * + * @param value The views to set. + * @return This builder for chaining. + */ + public Builder setViews(long value) { + + views_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * The number of YouTube views.
+     * 
+ * + * optional int64 views = 9; + * + * @return This builder for chaining. + */ + public Builder clearViews() { + bitField0_ = (bitField0_ & ~0x00000100); + views_ = 0L; + onChanged(); + return this; + } + + private long clicks_; + + /** + * + * + *
+     * The number of product clicks.
+     * 
+ * + * optional int64 clicks = 10; + * + * @return Whether the clicks field is set. + */ + @java.lang.Override + public boolean hasClicks() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+     * The number of product clicks.
+     * 
+ * + * optional int64 clicks = 10; + * + * @return The clicks. + */ + @java.lang.Override + public long getClicks() { + return clicks_; + } + + /** + * + * + *
+     * The number of product clicks.
+     * 
+ * + * optional int64 clicks = 10; + * + * @param value The clicks to set. + * @return This builder for chaining. + */ + public Builder setClicks(long value) { + + clicks_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * + * + *
+     * The number of product clicks.
+     * 
+ * + * optional int64 clicks = 10; + * + * @return This builder for chaining. + */ + public Builder clearClicks() { + bitField0_ = (bitField0_ & ~0x00000200); + clicks_ = 0L; + onChanged(); + return this; + } + + private com.google.shopping.type.Price netSales_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + netSalesBuilder_; + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + * + * @return Whether the netSales field is set. + */ + public boolean hasNetSales() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + * + * @return The netSales. + */ + public com.google.shopping.type.Price getNetSales() { + if (netSalesBuilder_ == null) { + return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_; + } else { + return netSalesBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + public Builder setNetSales(com.google.shopping.type.Price value) { + if (netSalesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + netSales_ = value; + } else { + netSalesBuilder_.setMessage(value); + } + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + public Builder setNetSales(com.google.shopping.type.Price.Builder builderForValue) { + if (netSalesBuilder_ == null) { + netSales_ = builderForValue.build(); + } else { + netSalesBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + public Builder mergeNetSales(com.google.shopping.type.Price value) { + if (netSalesBuilder_ == null) { + if (((bitField0_ & 0x00000400) != 0) + && netSales_ != null + && netSales_ != com.google.shopping.type.Price.getDefaultInstance()) { + getNetSalesBuilder().mergeFrom(value); + } else { + netSales_ = value; + } + } else { + netSalesBuilder_.mergeFrom(value); + } + if (netSales_ != null) { + bitField0_ |= 0x00000400; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + public Builder clearNetSales() { + bitField0_ = (bitField0_ & ~0x00000400); + netSales_ = null; + if (netSalesBuilder_ != null) { + netSalesBuilder_.dispose(); + netSalesBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + public com.google.shopping.type.Price.Builder getNetSalesBuilder() { + bitField0_ |= 0x00000400; + onChanged(); + return getNetSalesFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + public com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder() { + if (netSalesBuilder_ != null) { + return netSalesBuilder_.getMessageOrBuilder(); + } else { + return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_; + } + } + + /** + * + * + *
+     * The net sales amount (includes both purchase and refunds).
+     * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + getNetSalesFieldBuilder() { + if (netSalesBuilder_ == null) { + netSalesBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getNetSales(), getParentForChildren(), isClean()); + netSales_ = null; + } + return netSalesBuilder_; + } + + @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.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView) + private static final com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView(); + } + + public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public YoutubeProductPerformanceView parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + 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.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeProductPerformanceViewOrBuilder.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeProductPerformanceViewOrBuilder.java new file mode 100644 index 000000000000..6330f979fbe0 --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeProductPerformanceViewOrBuilder.java @@ -0,0 +1,388 @@ +/* + * Copyright 2025 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/shopping/merchant/reports/v1alpha/reports.proto + +// Protobuf Java Version: 3.25.8 +package com.google.shopping.merchant.reports.v1alpha; + +public interface YoutubeProductPerformanceViewOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return Whether the date field is set. + */ + boolean hasDate(); + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + * + * @return The date. + */ + com.google.type.Date getDate(); + + /** + * + * + *
+   * Date in the merchant timezone to which metrics apply. Segment.
+   *
+   * Condition on `date` is required in the `WHERE` clause.
+   * 
+ * + * .google.type.Date date = 1; + */ + com.google.type.DateOrBuilder getDateOrBuilder(); + + /** + * + * + *
+   * The product title.
+   * 
+ * + * optional string title = 2; + * + * @return Whether the title field is set. + */ + boolean hasTitle(); + + /** + * + * + *
+   * The product title.
+   * 
+ * + * optional string title = 2; + * + * @return The title. + */ + java.lang.String getTitle(); + + /** + * + * + *
+   * The product title.
+   * 
+ * + * optional string title = 2; + * + * @return The bytes for title. + */ + com.google.protobuf.ByteString getTitleBytes(); + + /** + * + * + *
+   * The merchant-provided product id.
+   * 
+ * + * optional string offer_id = 3; + * + * @return Whether the offerId field is set. + */ + boolean hasOfferId(); + + /** + * + * + *
+   * The merchant-provided product id.
+   * 
+ * + * optional string offer_id = 3; + * + * @return The offerId. + */ + java.lang.String getOfferId(); + + /** + * + * + *
+   * The merchant-provided product id.
+   * 
+ * + * optional string offer_id = 3; + * + * @return The bytes for offerId. + */ + com.google.protobuf.ByteString getOfferIdBytes(); + + /** + * + * + *
+   * The number of distinct videos the product was shown on.
+   * 
+ * + * optional int64 distinct_video_count = 4; + * + * @return Whether the distinctVideoCount field is set. + */ + boolean hasDistinctVideoCount(); + + /** + * + * + *
+   * The number of distinct videos the product was shown on.
+   * 
+ * + * optional int64 distinct_video_count = 4; + * + * @return The distinctVideoCount. + */ + long getDistinctVideoCount(); + + /** + * + * + *
+   * The number of distinct creator channels the product was shown on.
+   * 
+ * + * optional int64 distinct_creator_count = 5; + * + * @return Whether the distinctCreatorCount field is set. + */ + boolean hasDistinctCreatorCount(); + + /** + * + * + *
+   * The number of distinct creator channels the product was shown on.
+   * 
+ * + * optional int64 distinct_creator_count = 5; + * + * @return The distinctCreatorCount. + */ + long getDistinctCreatorCount(); + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + * + * @return Whether the grossSales field is set. + */ + boolean hasGrossSales(); + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + * + * @return The grossSales. + */ + com.google.shopping.type.Price getGrossSales(); + + /** + * + * + *
+   * The gross sales amount, before refunds.
+   * 
+ * + * optional .google.shopping.type.Price gross_sales = 6; + */ + com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder(); + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 7; + * + * @return Whether the commissions field is set. + */ + boolean hasCommissions(); + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 7; + * + * @return The commissions. + */ + com.google.shopping.type.Price getCommissions(); + + /** + * + * + *
+   * The commissions amount (pending and paid).
+   * 
+ * + * optional .google.shopping.type.Price commissions = 7; + */ + com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder(); + + /** + * + * + *
+   * The number of orders.
+   * 
+ * + * optional int64 orders = 8; + * + * @return Whether the orders field is set. + */ + boolean hasOrders(); + + /** + * + * + *
+   * The number of orders.
+   * 
+ * + * optional int64 orders = 8; + * + * @return The orders. + */ + long getOrders(); + + /** + * + * + *
+   * The number of YouTube views.
+   * 
+ * + * optional int64 views = 9; + * + * @return Whether the views field is set. + */ + boolean hasViews(); + + /** + * + * + *
+   * The number of YouTube views.
+   * 
+ * + * optional int64 views = 9; + * + * @return The views. + */ + long getViews(); + + /** + * + * + *
+   * The number of product clicks.
+   * 
+ * + * optional int64 clicks = 10; + * + * @return Whether the clicks field is set. + */ + boolean hasClicks(); + + /** + * + * + *
+   * The number of product clicks.
+   * 
+ * + * optional int64 clicks = 10; + * + * @return The clicks. + */ + long getClicks(); + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + * + * @return Whether the netSales field is set. + */ + boolean hasNetSales(); + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + * + * @return The netSales. + */ + com.google.shopping.type.Price getNetSales(); + + /** + * + * + *
+   * The net sales amount (includes both purchase and refunds).
+   * 
+ * + * optional .google.shopping.type.Price net_sales = 11; + */ + com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder(); +} diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/proto/google/shopping/merchant/reports/v1alpha/reports.proto b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/proto/google/shopping/merchant/reports/v1alpha/reports.proto new file mode 100644 index 000000000000..f94fda1835df --- /dev/null +++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/proto/google/shopping/merchant/reports/v1alpha/reports.proto @@ -0,0 +1,1398 @@ +// Copyright 2025 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.shopping.merchant.reports.v1alpha; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/protobuf/timestamp.proto"; +import "google/shopping/type/types.proto"; +import "google/type/date.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/reports/apiv1alpha/reportspb;reportspb"; +option java_multiple_files = true; +option java_outer_classname = "ReportsProto"; +option java_package = "com.google.shopping.merchant.reports.v1alpha"; + +// Service for retrieving reports and insights about your products, their +// performance, and their competitive environment on Google. +service ReportService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Retrieves a report defined by a search query. The response might contain + // fewer rows than specified by `page_size`. Rely on `next_page_token` to + // determine if there are more rows to be requested. + rpc Search(SearchRequest) returns (SearchResponse) { + option (google.api.http) = { + post: "/reports/v1alpha/{parent=accounts/*}/reports:search" + body: "*" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request message for the `ReportService.Search` method. +message SearchRequest { + // Required. Id of the account making the call. Must be a standalone account + // or an MCA subaccount. Format: accounts/{account} + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Query that defines a report to be retrieved. + // + // For details on how to construct your query, see the Query Language + // guide. For the full list of available tables and fields, see the Available + // fields. + string query = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Number of `ReportRows` to retrieve in a single page. Defaults to + // 1000. Values above 5000 are coerced to 5000. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Token of the page to retrieve. If not specified, the first page + // of results is returned. In order to request the next page of results, the + // value obtained from `next_page_token` in the previous response should be + // used. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for the `ReportService.Search` method. +message SearchResponse { + // Rows that matched the search query. + repeated ReportRow results = 1; + + // Token which can be sent as `page_token` to retrieve the next page. If + // omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Result row returned from the search query. +// +// Only the message corresponding to the queried table is populated in the +// response. Within the populated message, only the fields requested explicitly +// in the query are populated. +message ReportRow { + // Fields available for query in `product_performance_view` table. + ProductPerformanceView product_performance_view = 1; + + // Fields available for query in `non_product_performance_view` table. + NonProductPerformanceView non_product_performance_view = 7; + + // Fields available for query in `product_view` table. + ProductView product_view = 2; + + // Fields available for query in `price_competitiveness_product_view` table. + PriceCompetitivenessProductView price_competitiveness_product_view = 3; + + // Fields available for query in `price_insights_product_view` table. + PriceInsightsProductView price_insights_product_view = 4; + + // Fields available for query in `best_sellers_product_cluster_view` table. + BestSellersProductClusterView best_sellers_product_cluster_view = 5; + + // Fields available for query in `best_sellers_brand_view` table. + BestSellersBrandView best_sellers_brand_view = 6; + + // Fields available for query in `competitive_visibility_competitor_view` + // table. + CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = + 8; + + // Fields available for query in `competitive_visibility_top_merchant_view` + // table. + CompetitiveVisibilityTopMerchantView + competitive_visibility_top_merchant_view = 9; + + // Fields available for query in `competitive_visibility_benchmark_view` + // table. + CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10; + + // Fields available for query in `youtube_creator_performance_view` table. + YoutubeCreatorPerformanceView youtube_creator_performance_view = 11; + + // Fields available for query in `youtube_content_performance_view` table. + YoutubeContentPerformanceView youtube_content_performance_view = 12; + + // Fields available for query in `youtube_product_performance_view` table. + YoutubeProductPerformanceView youtube_product_performance_view = 13; +} + +// Fields available for query in `product_performance_view` table. +// +// Product performance data for your account, including performance metrics (for +// example, `clicks`) and dimensions according to which performance metrics are +// segmented (for example, `offer_id`). Values of product dimensions, such as +// `offer_id`, reflect the state of a product at the time of the impression. +// +// Segment fields cannot be selected in queries without also selecting at least +// one metric field. +// +// Values are only set for fields requested explicitly in the request's search +// query. +message ProductPerformanceView { + // Marketing method to which metrics apply. Segment. + optional MarketingMethod.MarketingMethodEnum marketing_method = 1; + + // Date in the merchant timezone to which metrics apply. Segment. + // + // Condition on `date` is required in the `WHERE` clause. + google.type.Date date = 2; + + // First day of the week (Monday) of the metrics date in the merchant + // timezone. Segment. + google.type.Date week = 3; + + // Code of the country where the customer is located at the time of the event. + // Represented in the ISO 3166 format. Segment. + // + // If the customer country cannot be determined, a special 'ZZ' code is + // returned. + optional string customer_country_code = 4; + + // Merchant-provided id of the product. Segment. + optional string offer_id = 5; + + // Title of the product. Segment. + optional string title = 6; + + // Brand of the product. Segment. + optional string brand = 7; + + // [Product category (1st + // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + // in Google's product taxonomy. Segment. + optional string category_l1 = 8; + + // [Product category (2nd + // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + // in Google's product taxonomy. Segment. + optional string category_l2 = 9; + + // [Product category (3rd + // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + // in Google's product taxonomy. Segment. + optional string category_l3 = 10; + + // [Product category (4th + // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + // in Google's product taxonomy. Segment. + optional string category_l4 = 11; + + // [Product category (5th + // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + // in Google's product taxonomy. Segment. + optional string category_l5 = 12; + + // [Product type (1st + // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + // in merchant's own product taxonomy. Segment. + optional string product_type_l1 = 13; + + // [Product type (2nd + // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + // in merchant's own product taxonomy. Segment. + optional string product_type_l2 = 14; + + // [Product type (3rd + // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + // in merchant's own product taxonomy. Segment. + optional string product_type_l3 = 15; + + // [Product type (4th + // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + // in merchant's own product taxonomy. Segment. + optional string product_type_l4 = 16; + + // [Product type (5th + // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + // in merchant's own product taxonomy. Segment. + optional string product_type_l5 = 17; + + // Custom label 0 for custom grouping of products. Segment. + optional string custom_label0 = 18; + + // Custom label 1 for custom grouping of products. Segment. + optional string custom_label1 = 19; + + // Custom label 2 for custom grouping of products. Segment. + optional string custom_label2 = 20; + + // Custom label 3 for custom grouping of products. Segment. + optional string custom_label3 = 21; + + // Custom label 4 for custom grouping of products. Segment. + optional string custom_label4 = 22; + + // Number of clicks. Metric. + optional int64 clicks = 23; + + // Number of times merchant's products are shown. Metric. + optional int64 impressions = 24; + + // Click-through rate - the number of clicks merchant's products receive + // (clicks) divided by the number of times the products are shown + // (impressions). Metric. + optional double click_through_rate = 25; + + // Number of conversions attributed to the product, reported on the conversion + // date. Depending on the attribution model, a conversion might be distributed + // across multiple clicks, where each click gets its own credit assigned. This + // metric is a sum of all such credits. Metric. + // + // Available only for the `FREE` traffic source. + optional double conversions = 26; + + // Value of conversions attributed to the product, reported on the conversion + // date. Metric. + // + // Available only for the `FREE` traffic source. + google.shopping.type.Price conversion_value = 27; + + // Number of conversions divided by the number of clicks, reported on the + // impression date. Metric. + // + // Available only for the `FREE` traffic source. + optional double conversion_rate = 28; +} + +// Fields available for query in `product_view` table. +// +// Products in the current inventory. Products in this table are the same as in +// Products sub-API but not all product attributes from Products sub-API are +// available for query in this table. In contrast to Products sub-API, this +// table allows to filter the returned list of products by product attributes. +// To retrieve a single product by `id` or list all products, Products sub-API +// should be used. +// +// Values are only set for fields requested explicitly in the request's search +// query. +// +message ProductView { + // Item issue associated with the product. + message ItemIssue { + // Issue type. + message ItemIssueType { + // Error code of the issue, equivalent to the `code` of [Product + // issues](https://developers.google.com/shopping-content/guides/product-issues). + optional string code = 1; + + // Canonical attribute name for attribute-specific issues. + optional string canonical_attribute = 2; + } + + // How the issue affects the serving of the product. + message ItemIssueSeverity { + // Issue severity per reporting context. + message IssueSeverityPerReportingContext { + // Reporting context the issue applies to. + optional google.shopping.type.ReportingContext.ReportingContextEnum + reporting_context = 1; + + // List of disapproved countries in the reporting context, represented + // in ISO 3166 format. + repeated string disapproved_countries = 2; + + // List of demoted countries in the reporting context, represented in + // ISO 3166 format. + repeated string demoted_countries = 3; + } + + // Issue severity aggregated for all reporting contexts. + enum AggregatedIssueSeverity { + // Not specified. + AGGREGATED_ISSUE_SEVERITY_UNSPECIFIED = 0; + + // Issue disapproves the product in at least one reporting context. + DISAPPROVED = 1; + + // Issue demotes the product in all reporting contexts it affects. + DEMOTED = 2; + + // Issue resolution is `PENDING_PROCESSING`. + PENDING = 3; + } + + // Issue severity per reporting context. + repeated IssueSeverityPerReportingContext severity_per_reporting_context = + 1; + + // Aggregated severity of the issue for all reporting contexts it affects. + // + // **This field can be used for filtering the results.** + optional AggregatedIssueSeverity aggregated_severity = 2; + } + + // How to resolve the issue. + enum ItemIssueResolution { + // Not specified. + ITEM_ISSUE_RESOLUTION_UNSPECIFIED = 0; + + // The merchant has to fix the issue. + MERCHANT_ACTION = 1; + + // The issue will be resolved automatically (for example, image crawl) or + // through a Google review. No merchant action is required now. Resolution + // might lead to another issue (for example, if crawl fails). + PENDING_PROCESSING = 2; + } + + // Item issue type. + ItemIssueType type = 1; + + // Item issue severity. + ItemIssueSeverity severity = 2; + + // Item issue resolution. + optional ItemIssueResolution resolution = 3; + } + + // Status of the product aggregated for all reporting contexts. + // + // Here's an example of how the aggregated status is computed: + // + // Free listings | Shopping ads | Status + // --------------|--------------|------------------------------ + // Approved | Approved | ELIGIBLE + // Approved | Pending | ELIGIBLE + // Approved | Disapproved | ELIGIBLE_LIMITED + // Pending | Pending | PENDING + // Disapproved | Disapproved | NOT_ELIGIBLE_OR_DISAPPROVED + // + // + enum AggregatedReportingContextStatus { + // Not specified. + AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED = 0; + + // Product is not eligible or is disapproved for all reporting contexts. + NOT_ELIGIBLE_OR_DISAPPROVED = 1; + + // Product's status is pending in all reporting contexts. + PENDING = 2; + + // Product is eligible for some (but not all) reporting contexts. + ELIGIBLE_LIMITED = 3; + + // Product is eligible for all reporting contexts. + ELIGIBLE = 4; + } + + // A product's [click + // potential](https://support.google.com/merchants/answer/188488) estimates + // its performance potential compared to highest performing products of the + // merchant. Click potential of a product helps merchants to prioritize which + // products to fix and helps them understand how products are performing + // against their potential. + enum ClickPotential { + // Unknown predicted clicks impact. + CLICK_POTENTIAL_UNSPECIFIED = 0; + + // Potential to receive a low number of clicks compared to the highest + // performing products of the merchant. + LOW = 1; + + // Potential to receive a moderate number of clicks compared to the highest + // performing products of the merchant. + MEDIUM = 2; + + // Potential to receive a similar number of clicks as the highest performing + // products of the merchant. + HIGH = 3; + } + + // REST ID of the product, in the form of + // `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate + // on products take this as their `name` parameter. + // + // Required in the `SELECT` clause. + optional string id = 1; + + // Channel of the product. Can be `ONLINE` or `LOCAL`. + optional google.shopping.type.Channel.ChannelEnum channel = 28; + + // Language code of the product in BCP 47 format. + optional string language_code = 2; + + // Feed label of the product. + optional string feed_label = 3; + + // Merchant-provided id of the product. + optional string offer_id = 4; + + // Title of the product. + optional string title = 5; + + // Brand of the product. + optional string brand = 6; + + // Product category (1st level) in [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l1 = 7; + + // Product category (2nd level) in [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l2 = 8; + + // Product category (3rd level) in [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l3 = 9; + + // Product category (4th level) in [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l4 = 10; + + // Product category (5th level) in [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l5 = 11; + + // Product type (1st level) in merchant's own [product + // taxonomy](https://support.google.com/merchants/answer/6324406). + optional string product_type_l1 = 12; + + // Product type (2nd level) in merchant's own [product + // taxonomy](https://support.google.com/merchants/answer/6324406). + optional string product_type_l2 = 13; + + // Product type (3rd level) in merchant's own [product + // taxonomy](https://support.google.com/merchants/answer/6324406). + optional string product_type_l3 = 14; + + // Product type (4th level) in merchant's own [product + // taxonomy](https://support.google.com/merchants/answer/6324406). + optional string product_type_l4 = 15; + + // Product type (5th level) in merchant's own [product + // taxonomy](https://support.google.com/merchants/answer/6324406). + optional string product_type_l5 = 16; + + // Product price. Absent if the information about the price of the product is + // not available. + google.shopping.type.Price price = 17; + + // [Condition](https://support.google.com/merchants/answer/6324469) of the + // product. + optional string condition = 18; + + // [Availability](https://support.google.com/merchants/answer/6324448) of the + // product. + optional string availability = 19; + + // Normalized [shipping + // label](https://support.google.com/merchants/answer/6324504) specified in + // the data source. + optional string shipping_label = 20; + + // List of Global Trade Item Numbers (GTINs) of the product. + repeated string gtin = 21; + + // Item group id provided by the merchant for grouping variants together. + optional string item_group_id = 22; + + // Link to the processed image of the product, hosted on the Google + // infrastructure. + optional string thumbnail_link = 23; + + // The time the merchant created the product in timestamp seconds. + google.protobuf.Timestamp creation_time = 24; + + // Expiration date for the product, specified on insertion. + google.type.Date expiration_date = 25; + + // Aggregated status. + optional AggregatedReportingContextStatus + aggregated_reporting_context_status = 26; + + // List of item issues for the product. + // + // **This field cannot be used for sorting the results.** + // + // **Only selected attributes of this field (for example, + // `item_issues.severity.aggregated_severity`) can be used for filtering the + // results.** + repeated ItemIssue item_issues = 27; + + // Estimated performance potential compared to highest performing products of + // the merchant. + ClickPotential click_potential = 29; + + // Rank of the product based on its click potential. A product with + // `click_potential_rank` 1 has the highest click potential among the + // merchant's products that fulfill the search query conditions. + optional int64 click_potential_rank = 30; +} + +// Fields available for query in `price_competitiveness_product_view` table. +// +// [Price competitiveness](https://support.google.com/merchants/answer/9626903) +// report. +// +// Values are only set for fields requested explicitly in the request's search +// query. +message PriceCompetitivenessProductView { + // Country of the price benchmark. Represented in the ISO 3166 format. + // + // Required in the `SELECT` clause. + optional string report_country_code = 1; + + // REST ID of the product, in the form of + // `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + // `product_view` table. + // + // Required in the `SELECT` clause. + optional string id = 2; + + // Merchant-provided id of the product. + optional string offer_id = 3; + + // Title of the product. + optional string title = 4; + + // Brand of the product. + optional string brand = 5; + + // Product category (1st level) in [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l1 = 6; + + // Product category (2nd level) in [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l2 = 7; + + // Product category (3rd level) in [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l3 = 8; + + // Product category (4th level) in [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l4 = 9; + + // Product category (5th level) in [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l5 = 10; + + // Product type (1st level) in merchant's own [product + // taxonomy](https://support.google.com/merchants/answer/6324406). + optional string product_type_l1 = 11; + + // Product type (2nd level) in merchant's own [product + // taxonomy](https://support.google.com/merchants/answer/6324406). + optional string product_type_l2 = 12; + + // Product type (3rd level) in merchant's own [product + // taxonomy](https://support.google.com/merchants/answer/6324406). + optional string product_type_l3 = 13; + + // Product type (4th level) in merchant's own [product + // taxonomy](https://support.google.com/merchants/answer/6324406). + optional string product_type_l4 = 14; + + // Product type (5th level) in merchant's own [product + // taxonomy](https://support.google.com/merchants/answer/6324406). + optional string product_type_l5 = 15; + + // Current price of the product. + google.shopping.type.Price price = 16; + + // Latest available price benchmark for the product's catalog in the benchmark + // country. + google.shopping.type.Price benchmark_price = 17; +} + +// Fields available for query in `price_insights_product_view` table. +// +// [Price insights](https://support.google.com/merchants/answer/11916926) +// report. +// +// Values are only set for fields requested explicitly in the request's search +// query. +message PriceInsightsProductView { + // Predicted effectiveness bucket. + // + // Effectiveness indicates which products would benefit most from price + // changes. This rating takes into consideration the performance boost + // predicted by adjusting the sale price and the difference between your + // current price and the suggested price. Price suggestions with `HIGH` + // effectiveness are predicted to drive the largest increase in performance. + enum Effectiveness { + // Effectiveness is unknown. + EFFECTIVENESS_UNSPECIFIED = 0; + + // Effectiveness is low. + LOW = 1; + + // Effectiveness is medium. + MEDIUM = 2; + + // Effectiveness is high. + HIGH = 3; + } + + // REST ID of the product, in the form of + // `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + // `product_view` table. + // + // Required in the `SELECT` clause. + optional string id = 1; + + // Merchant-provided id of the product. + optional string offer_id = 2; + + // Title of the product. + optional string title = 3; + + // Brand of the product. + optional string brand = 4; + + // Product category (1st level) in [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l1 = 5; + + // Product category (2nd level) in [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l2 = 6; + + // Product category (3rd level) in [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l3 = 7; + + // Product category (4th level) in [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l4 = 8; + + // Product category (5th level) in [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l5 = 9; + + // Product type (1st level) in merchant's own [product + // taxonomy](https://support.google.com/merchants/answer/6324406). + optional string product_type_l1 = 10; + + // Product type (2nd level) in merchant's own [product + // taxonomy](https://support.google.com/merchants/answer/6324406). + optional string product_type_l2 = 11; + + // Product type (3rd level) in merchant's own [product + // taxonomy](https://support.google.com/merchants/answer/6324406). + optional string product_type_l3 = 12; + + // Product type (4th level) in merchant's own [product + // taxonomy](https://support.google.com/merchants/answer/6324406). + optional string product_type_l4 = 13; + + // Product type (5th level) in merchant's own [product + // taxonomy](https://support.google.com/merchants/answer/6324406). + optional string product_type_l5 = 14; + + // Current price of the product. + google.shopping.type.Price price = 15; + + // Latest suggested price for the product. + google.shopping.type.Price suggested_price = 16; + + // Predicted change in impressions as a fraction after introducing the + // suggested price compared to current active price. For example, 0.05 is a 5% + // predicted increase in impressions. + optional double predicted_impressions_change_fraction = 17; + + // Predicted change in clicks as a fraction after introducing the + // suggested price compared to current active price. For example, 0.05 is a 5% + // predicted increase in clicks. + optional double predicted_clicks_change_fraction = 18; + + // Predicted change in conversions as a fraction after introducing the + // suggested price compared to current active price. For example, 0.05 is a 5% + // predicted increase in conversions). + optional double predicted_conversions_change_fraction = 19; + + // The predicted effectiveness of applying the price suggestion, bucketed. + Effectiveness effectiveness = 22; +} + +// Fields available for query in `best_sellers_product_cluster_view` table. +// +// [Best sellers](https://support.google.com/merchants/answer/9488679) report +// with top product clusters. A product cluster is a grouping for different +// offers and variants that represent the same product, for example, Google +// Pixel 7. +// +// Values are only set for fields requested explicitly in the request's search +// query. +message BestSellersProductClusterView { + // Status of the product cluster or brand in your inventory. + enum InventoryStatus { + // Not specified. + INVENTORY_STATUS_UNSPECIFIED = 0; + + // You have a product for this product cluster or brand in stock. + IN_STOCK = 1; + + // You have a product for this product cluster or brand in inventory but it + // is currently out of stock. + OUT_OF_STOCK = 2; + + // You do not have a product for this product cluster or brand in inventory. + NOT_IN_INVENTORY = 3; + } + + // Report date. The value of this field can only be one of the following: + // + // * The first day of the week (Monday) for weekly reports, + // * The first day of the month for monthly reports. + // + // Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + // not specified in the query, the latest available weekly or monthly report + // is returned. + google.type.Date report_date = 1; + + // Granularity of the report. The ranking can be done over a week or a month + // timeframe. + // + // Required in the `SELECT` clause. Condition on `report_granularity` is + // required in the `WHERE` clause. + optional ReportGranularity.ReportGranularityEnum report_granularity = 2; + + // Country where the ranking is calculated. Represented in the ISO 3166 + // format. + // + // Required in the `SELECT` clause. Condition on `report_country_code` is + // required in the `WHERE` clause. + optional string report_country_code = 3; + + // Google product category ID to calculate the ranking for, represented in + // [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + // + // Required in the `SELECT` clause. If a `WHERE` condition on + // `report_category_id` is not specified in the query, rankings for all + // top-level categories are returned. + optional int64 report_category_id = 4; + + // Title of the product cluster. + optional string title = 6; + + // Brand of the product cluster. + optional string brand = 7; + + // Product category (1st level) of the product cluster, represented in + // [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l1 = 8; + + // Product category (2nd level) of the product cluster, represented in + // [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l2 = 9; + + // Product category (3rd level) of the product cluster, represented in + // [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l3 = 10; + + // Product category (4th level) of the product cluster, represented in + // [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l4 = 11; + + // Product category (5th level) of the product cluster, represented in + // [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + optional string category_l5 = 12; + + // GTINs of example variants of the product cluster. + repeated string variant_gtins = 13; + + // Whether the product cluster is `IN_STOCK` in your product data source in at + // least one of the countries, `OUT_OF_STOCK` in your product data source in + // all countries, or `NOT_IN_INVENTORY` at all. + // + // The field doesn't take the Best sellers report country filter into account. + optional InventoryStatus inventory_status = 14; + + // Whether there is at least one product of the brand currently `IN_STOCK` in + // your product data source in at least one of the countries, all products are + // `OUT_OF_STOCK` in your product data source in all countries, or + // `NOT_IN_INVENTORY`. + // + // The field doesn't take the Best sellers report country filter into account. + optional InventoryStatus brand_inventory_status = 15; + + // Popularity of the product cluster on Ads and organic surfaces, in the + // selected category and country, based on the estimated number of units sold. + optional int64 rank = 16; + + // Popularity rank in the previous week or month. + optional int64 previous_rank = 17; + + // Estimated demand in relation to the product cluster with the highest + // popularity rank in the same category and country. + optional RelativeDemand.RelativeDemandEnum relative_demand = 18; + + // Estimated demand in relation to the product cluster with the highest + // popularity rank in the same category and country in the previous week or + // month. + optional RelativeDemand.RelativeDemandEnum previous_relative_demand = 19; + + // Change in the estimated demand. Whether it rose, sank or remained flat. + optional RelativeDemandChangeType.RelativeDemandChangeTypeEnum + relative_demand_change = 20; +} + +// Fields available for query in `best_sellers_brand_view` table. +// +// [Best sellers](https://support.google.com/merchants/answer/9488679) report +// with top brands. +// +// Values are only set for fields requested explicitly in the request's search +// query. +message BestSellersBrandView { + // Report date. The value of this field can only be one of the following: + // + // * The first day of the week (Monday) for weekly reports, + // * The first day of the month for monthly reports. + // + // Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + // not specified in the query, the latest available weekly or monthly report + // is returned. + google.type.Date report_date = 1; + + // Granularity of the report. The ranking can be done over a week or a month + // timeframe. + // + // Required in the `SELECT` clause. Condition on `report_granularity` is + // required in the `WHERE` clause. + optional ReportGranularity.ReportGranularityEnum report_granularity = 2; + + // Country where the ranking is calculated. Represented in the ISO 3166 + // format. + // + // Required in the `SELECT` clause. Condition on `report_country_code` is + // required in the `WHERE` clause. + optional string report_country_code = 3; + + // Google product category ID to calculate the ranking for, represented in + // [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + // + // Required in the `SELECT` clause. If a `WHERE` condition on + // `report_category_id` is not specified in the query, rankings for all + // top-level categories are returned. + optional int64 report_category_id = 4; + + // Name of the brand. + optional string brand = 6; + + // Popularity of the brand on Ads and organic surfaces, in the selected + // category and country, based on the estimated number of units sold. + optional int64 rank = 7; + + // Popularity rank in the previous week or month. + optional int64 previous_rank = 8; + + // Estimated demand in relation to the brand with the highest popularity rank + // in the same category and country. + optional RelativeDemand.RelativeDemandEnum relative_demand = 9; + + // Estimated demand in relation to the brand with the highest popularity rank + // in the same category and country in the previous week or month. + optional RelativeDemand.RelativeDemandEnum previous_relative_demand = 10; + + // Change in the estimated demand. Whether it rose, sank or remained flat. + optional RelativeDemandChangeType.RelativeDemandChangeTypeEnum + relative_demand_change = 11; +} + +// Fields available for query in `non_product_performance_view` table. +// +// Performance data on images and online store links leading to your non-product +// pages. This includes performance metrics (for example, `clicks`) +// and dimensions according to which performance metrics are segmented (for +// example, `date`). +// +// Segment fields cannot be selected in queries without also selecting at least +// one metric field. +// +// Values are only set for fields requested explicitly in the request's search +// query. +message NonProductPerformanceView { + // Date in the merchant timezone to which metrics apply. Segment. + // + // Condition on `date` is required in the `WHERE` clause. + google.type.Date date = 1; + + // First day of the week (Monday) of the metrics date in the merchant + // timezone. Segment. + google.type.Date week = 2; + + // Number of clicks on images and online store links leading to your + // non-product pages. Metric. + optional int64 clicks = 3; + + // Number of times images and online store links leading to your non-product + // pages were shown. Metric. + optional int64 impressions = 4; + + // Click-through rate - the number of clicks (`clicks`) divided by the number + // of impressions (`impressions`) of images and online store links leading to + // your non-product pages. Metric. + optional double click_through_rate = 5; +} + +// Fields available for query in `competitive_visibility_competitor_view` table. +// +// [Competitive +// visibility](https://support.google.com/merchants/answer/11366442) report with +// businesses with similar visibility. +// +// Values are only set for fields requested explicitly in the request's search +// query. +message CompetitiveVisibilityCompetitorView { + // Date of this row. + // + // A condition on `date` is required in the `WHERE` clause. + google.type.Date date = 1; + + // Domain of your competitor or your domain, if 'is_your_domain' is true. + // + // Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + // clause. + optional string domain = 2; + + // True if this row contains data for your domain. + // + // Cannot be filtered on in the 'WHERE' clause. + optional bool is_your_domain = 3; + + // Country where impressions appeared. + // + // Required in the `SELECT` clause. A condition on `report_country_code` is + // required in the `WHERE` clause. + optional string report_country_code = 4; + + // Google product category ID to calculate the report for, represented in + // [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + // + // Required in the `SELECT` clause. A condition on `report_category_id` is + // required in the `WHERE` clause. + optional int64 report_category_id = 5; + + // Traffic source of impressions. + // + // Required in the `SELECT` clause. + optional TrafficSource.TrafficSourceEnum traffic_source = 6; + + // Position of the domain in the similar businesses ranking for the selected + // keys (`date`, `report_category_id`, `report_country_code`, + // `traffic_source`) based on impressions. 1 is the highest. + // + // Cannot be filtered on in the 'WHERE' clause. + optional int64 rank = 7; + + // [Ads / organic ratio] + // (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + // shows how often the domain receives impressions from Shopping ads compared + // to organic traffic. The number is rounded and bucketed. + // + // Cannot be filtered on in the 'WHERE' clause. + optional double ads_organic_ratio = 8; + + // [Page overlap rate] + // (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + // shows how frequently competing retailers’ offers are shown together with + // your offers on the same page. + // + // Cannot be filtered on in the 'WHERE' clause. + optional double page_overlap_rate = 9; + + // [Higher position rate] + // (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + // shows how often a competitor’s offer got placed in a higher position on the + // page than your offer. + // + // Cannot be filtered on in the 'WHERE' clause. + optional double higher_position_rate = 10; + + // [Relative visibility] + // (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility) + // shows how often your competitors’ offers are shown compared to your offers. + // In other words, this is the number of displayed impressions of a competitor + // retailer divided by the number of your displayed impressions during a + // selected time range for a selected product category and country. + // + // Cannot be filtered on in the 'WHERE' clause. + optional double relative_visibility = 11; +} + +// Fields available for query in `competitive_visibility_top_merchant_view` +// table. +// +// [Competitive +// visibility](https://support.google.com/merchants/answer/11366442) report with +// business with highest visibility. +// +// Values are only set for fields requested explicitly in the request's search +// query. +message CompetitiveVisibilityTopMerchantView { + // Date of this row. + // + // Cannot be selected in the `SELECT` clause. A condition on `date` is + // required in the `WHERE` clause. + google.type.Date date = 1; + + // Domain of your competitor or your domain, if 'is_your_domain' is true. + // + // Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + // clause. + optional string domain = 2; + + // True if this row contains data for your domain. + // + // Cannot be filtered on in the 'WHERE' clause. + optional bool is_your_domain = 3; + + // Country where impressions appeared. + // + // Required in the `SELECT` clause. A condition on `report_country_code` is + // required in the `WHERE` clause. + optional string report_country_code = 4; + + // Google product category ID to calculate the report for, represented in + // [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + // + // Required in the `SELECT` clause. A condition on `report_category_id` is + // required in the `WHERE` clause. + optional int64 report_category_id = 5; + + // Traffic source of impressions. + // + // Required in the `SELECT` clause. + optional TrafficSource.TrafficSourceEnum traffic_source = 6; + + // Position of the domain in the top merchants ranking for the selected keys + // (`date`, `report_category_id`, `report_country_code`, `traffic_source`) + // based on impressions. 1 is the highest. + // + // Cannot be filtered on in the 'WHERE' clause. + optional int64 rank = 7; + + // [Ads / organic ratio] + // (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + // shows how often the domain receives impressions from Shopping ads compared + // to organic traffic. The number is rounded and bucketed. + // + // Cannot be filtered on in the 'WHERE' clause. + optional double ads_organic_ratio = 8; + + // [Page overlap rate] + // (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + // shows how frequently competing retailers’ offers are shown together with + // your offers on the same page. + // + // Cannot be filtered on in the 'WHERE' clause. + optional double page_overlap_rate = 9; + + // [Higher position rate] + // (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + // shows how often a competitor’s offer got placed in a higher position on the + // page than your offer. + // + // Cannot be filtered on in the 'WHERE' clause. + optional double higher_position_rate = 10; +} + +// Fields available for query in `competitive_visibility_benchmark_view` table. +// +// [Competitive +// visibility](https://support.google.com/merchants/answer/11366442) report with +// the category benchmark. +// +// Values are only set for fields requested explicitly in the request's search +// query. +message CompetitiveVisibilityBenchmarkView { + // Date of this row. + // + // Required in the `SELECT` clause. A condition on `date` is required in the + // `WHERE` clause. + google.type.Date date = 1; + + // Country where impressions appeared. + // + // Required in the `SELECT` clause. A condition on `report_country_code` is + // required in the `WHERE` clause. + optional string report_country_code = 2; + + // Google product category ID to calculate the report for, represented in + // [Google's product + // taxonomy](https://support.google.com/merchants/answer/6324436). + // + // Required in the `SELECT` clause. A condition on `report_category_id` is + // required in the `WHERE` clause. + optional int64 report_category_id = 3; + + // Traffic source of impressions. + // + // Required in the `SELECT` clause. + optional TrafficSource.TrafficSourceEnum traffic_source = 4; + + // Change in visibility based on impressions for your domain with respect to + // the start of the selected time range (or first day with non-zero + // impressions). + // + // Cannot be filtered on in the 'WHERE' clause. + optional double your_domain_visibility_trend = 5; + + // Change in visibility based on impressions with respect to the start of the + // selected time range (or first day with non-zero impressions) for a + // combined set of merchants with highest visibility approximating the + // market. + // + // Cannot be filtered on in the 'WHERE' clause. + optional double category_benchmark_visibility_trend = 6; +} + +// Marketing method used to promote your products on Google (organic versus +// ads). +message MarketingMethod { + // Marketing method values. + enum MarketingMethodEnum { + // Not specified. + MARKETING_METHOD_ENUM_UNSPECIFIED = 0; + + // Organic marketing. + ORGANIC = 1; + + // Ads-based marketing. + ADS = 2; + } +} + +// Granularity of the Best sellers report. Best sellers reports are computed +// over a week and a month timeframe. +message ReportGranularity { + // Report granularity values. + enum ReportGranularityEnum { + // Not specified. + REPORT_GRANULARITY_ENUM_UNSPECIFIED = 0; + + // Report is computed over a week timeframe. + WEEKLY = 1; + + // Report is computed over a month timeframe. + MONTHLY = 2; + } +} + +// Relative demand of a product cluster or brand in the Best sellers report. +message RelativeDemand { + // Relative demand values. + enum RelativeDemandEnum { + // Not specified. + RELATIVE_DEMAND_ENUM_UNSPECIFIED = 0; + + // Demand is 0-5% of the demand of the highest ranked product cluster or + // brand. + VERY_LOW = 10; + + // Demand is 6-10% of the demand of the highest ranked product cluster or + // brand. + LOW = 20; + + // Demand is 11-20% of the demand of the highest ranked product cluster or + // brand. + MEDIUM = 30; + + // Demand is 21-50% of the demand of the highest ranked product cluster or + // brand. + HIGH = 40; + + // Demand is 51-100% of the demand of the highest ranked product cluster or + // brand. + VERY_HIGH = 50; + } +} + +// Relative demand of a product cluster or brand in the Best sellers report +// compared to the previous time period. +message RelativeDemandChangeType { + // Relative demand change type values. + enum RelativeDemandChangeTypeEnum { + // Not specified. + RELATIVE_DEMAND_CHANGE_TYPE_ENUM_UNSPECIFIED = 0; + + // Relative demand is lower than the previous time period. + SINKER = 1; + + // Relative demand is equal to the previous time period. + FLAT = 2; + + // Relative demand is higher than the previous time period. + RISER = 3; + } +} + +// Traffic source of impressions in the Competitive visibility report. +message TrafficSource { + // Traffic source values. + enum TrafficSourceEnum { + // Not specified. + TRAFFIC_SOURCE_ENUM_UNSPECIFIED = 0; + + // Organic traffic. + ORGANIC = 1; + + // Traffic from ads. + ADS = 2; + + // Organic and ads traffic. + ALL = 3; + } +} + +// Fields available for query in `youtube_creator_performance_view` table. +// +// [YouTube creator performance +// data](https://support.google.com/merchants/answer/14947975) for your account. +// This data is only available if an account is enrolled in the [YouTube +// Shopping Affiliate +// program](https://support.google.com/merchants/answer/14815513?hl=en). +// +// Values are only set for fields requested explicitly in the request's search +// query. +message YoutubeCreatorPerformanceView { + // Date in the merchant timezone to which metrics apply. Segment. + // + // Condition on `date` is required in the `WHERE` clause. + google.type.Date date = 1; + + // The title of the creator channel. + optional string title = 2; + + // The id for the creator channel. + optional string channel_id = 3; + + // The gross sales amount, before refunds. + optional google.shopping.type.Price gross_sales = 4; + + // The commissions amount (pending and paid). + optional google.shopping.type.Price commissions = 5; + + // The number of orders. + optional int64 orders = 6; + + // The number of YouTube views. + optional int64 views = 7; + + // The number of product clicks. + optional int64 clicks = 8; + + // The net sales amount (includes both purchase and refunds). + optional google.shopping.type.Price net_sales = 9; +} + +// Fields available for query in `youtube_content_performance_view` table. +// +// [YouTube content performance +// data](https://support.google.com/merchants/answer/14947975) for your account. +// This data is only available if an account is enrolled in the [YouTube +// Shopping Affiliate +// program](https://support.google.com/merchants/answer/14815513?hl=en). +// +// Values are only set for fields requested explicitly in the request's search +// query. +message YoutubeContentPerformanceView { + // Date in the merchant timezone to which metrics apply. Segment. + // + // Condition on `date` is required in the `WHERE` clause. + google.type.Date date = 1; + + // The video title. + optional string title = 2; + + // The video id. + optional string video_id = 3; + + // The channel title. + optional string channel_title = 4; + + // The channel id. + optional string channel_id = 5; + + // The gross sales amount, before refunds. + optional google.shopping.type.Price gross_sales = 6; + + // The commissions amount (pending and paid). + optional google.shopping.type.Price commissions = 7; + + // The number of orders. + optional int64 orders = 8; + + // The number of YouTube views. + optional int64 views = 9; + + // The number of product clicks. + optional int64 clicks = 10; + + // The net sales amount (includes both purchase and refunds). + optional google.shopping.type.Price net_sales = 11; +} + +// Fields available for query in `youtube_product_performance_view` table. +// +// [YouTube product performance +// data](https://support.google.com/merchants/answer/14947975) for your account. +// This data is only available if an account is enrolled in the [YouTube +// Shopping Affiliate +// program](https://support.google.com/merchants/answer/14815513?hl=en). +// +// Values are only set for fields requested explicitly in the request's search +// query. +message YoutubeProductPerformanceView { + // Date in the merchant timezone to which metrics apply. Segment. + // + // Condition on `date` is required in the `WHERE` clause. + google.type.Date date = 1; + + // The product title. + optional string title = 2; + + // The merchant-provided product id. + optional string offer_id = 3; + + // The number of distinct videos the product was shown on. + optional int64 distinct_video_count = 4; + + // The number of distinct creator channels the product was shown on. + optional int64 distinct_creator_count = 5; + + // The gross sales amount, before refunds. + optional google.shopping.type.Price gross_sales = 6; + + // The commissions amount (pending and paid). + optional google.shopping.type.Price commissions = 7; + + // The number of orders. + optional int64 orders = 8; + + // The number of YouTube views. + optional int64 views = 9; + + // The number of product clicks. + optional int64 clicks = 10; + + // The net sales amount (includes both purchase and refunds). + optional google.shopping.type.Price net_sales = 11; +} diff --git a/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateSetCredentialsProvider.java b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateSetCredentialsProvider.java new file mode 100644 index 000000000000..e86d38fc794d --- /dev/null +++ b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateSetCredentialsProvider.java @@ -0,0 +1,44 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha.samples; + +// [START merchantapi_v1alpha_generated_ReportService_Create_SetCredentialsProvider_sync] +import com.google.api.gax.core.FixedCredentialsProvider; +import com.google.shopping.merchant.reports.v1alpha.ReportServiceClient; +import com.google.shopping.merchant.reports.v1alpha.ReportServiceSettings; +import com.google.shopping.merchant.reports.v1alpha.myCredentials; + +public class SyncCreateSetCredentialsProvider { + + public static void main(String[] args) throws Exception { + syncCreateSetCredentialsProvider(); + } + + public static void syncCreateSetCredentialsProvider() throws Exception { + // 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 + ReportServiceSettings reportServiceSettings = + ReportServiceSettings.newBuilder() + .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials)) + .build(); + ReportServiceClient reportServiceClient = ReportServiceClient.create(reportServiceSettings); + } +} +// [END merchantapi_v1alpha_generated_ReportService_Create_SetCredentialsProvider_sync] diff --git a/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateSetEndpoint.java b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateSetEndpoint.java new file mode 100644 index 000000000000..36044ee3cab6 --- /dev/null +++ b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateSetEndpoint.java @@ -0,0 +1,41 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha.samples; + +// [START merchantapi_v1alpha_generated_ReportService_Create_SetEndpoint_sync] +import com.google.shopping.merchant.reports.v1alpha.ReportServiceClient; +import com.google.shopping.merchant.reports.v1alpha.ReportServiceSettings; +import com.google.shopping.merchant.reports.v1alpha.myEndpoint; + +public class SyncCreateSetEndpoint { + + public static void main(String[] args) throws Exception { + syncCreateSetEndpoint(); + } + + public static void syncCreateSetEndpoint() throws Exception { + // 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 + ReportServiceSettings reportServiceSettings = + ReportServiceSettings.newBuilder().setEndpoint(myEndpoint).build(); + ReportServiceClient reportServiceClient = ReportServiceClient.create(reportServiceSettings); + } +} +// [END merchantapi_v1alpha_generated_ReportService_Create_SetEndpoint_sync] diff --git a/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateUseHttpJsonTransport.java b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateUseHttpJsonTransport.java new file mode 100644 index 000000000000..036ed3d61230 --- /dev/null +++ b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateUseHttpJsonTransport.java @@ -0,0 +1,40 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha.samples; + +// [START merchantapi_v1alpha_generated_ReportService_Create_UseHttpJsonTransport_sync] +import com.google.shopping.merchant.reports.v1alpha.ReportServiceClient; +import com.google.shopping.merchant.reports.v1alpha.ReportServiceSettings; + +public class SyncCreateUseHttpJsonTransport { + + public static void main(String[] args) throws Exception { + syncCreateUseHttpJsonTransport(); + } + + public static void syncCreateUseHttpJsonTransport() throws Exception { + // 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 + ReportServiceSettings reportServiceSettings = + ReportServiceSettings.newHttpJsonBuilder().build(); + ReportServiceClient reportServiceClient = ReportServiceClient.create(reportServiceSettings); + } +} +// [END merchantapi_v1alpha_generated_ReportService_Create_UseHttpJsonTransport_sync] diff --git a/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/AsyncSearch.java b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/AsyncSearch.java new file mode 100644 index 000000000000..228b1fcda04b --- /dev/null +++ b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/AsyncSearch.java @@ -0,0 +1,53 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha.samples; + +// [START merchantapi_v1alpha_generated_ReportService_Search_async] +import com.google.api.core.ApiFuture; +import com.google.shopping.merchant.reports.v1alpha.ReportRow; +import com.google.shopping.merchant.reports.v1alpha.ReportServiceClient; +import com.google.shopping.merchant.reports.v1alpha.SearchRequest; + +public class AsyncSearch { + + public static void main(String[] args) throws Exception { + asyncSearch(); + } + + public static void asyncSearch() throws Exception { + // 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 (ReportServiceClient reportServiceClient = ReportServiceClient.create()) { + SearchRequest request = + SearchRequest.newBuilder() + .setParent("parent-995424086") + .setQuery("query107944136") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + ApiFuture future = reportServiceClient.searchPagedCallable().futureCall(request); + // Do something. + for (ReportRow element : future.get().iterateAll()) { + // doThingsWith(element); + } + } + } +} +// [END merchantapi_v1alpha_generated_ReportService_Search_async] diff --git a/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/AsyncSearchPaged.java b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/AsyncSearchPaged.java new file mode 100644 index 000000000000..b1a6e9962bec --- /dev/null +++ b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/AsyncSearchPaged.java @@ -0,0 +1,61 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha.samples; + +// [START merchantapi_v1alpha_generated_ReportService_Search_Paged_async] +import com.google.common.base.Strings; +import com.google.shopping.merchant.reports.v1alpha.ReportRow; +import com.google.shopping.merchant.reports.v1alpha.ReportServiceClient; +import com.google.shopping.merchant.reports.v1alpha.SearchRequest; +import com.google.shopping.merchant.reports.v1alpha.SearchResponse; + +public class AsyncSearchPaged { + + public static void main(String[] args) throws Exception { + asyncSearchPaged(); + } + + public static void asyncSearchPaged() throws Exception { + // 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 (ReportServiceClient reportServiceClient = ReportServiceClient.create()) { + SearchRequest request = + SearchRequest.newBuilder() + .setParent("parent-995424086") + .setQuery("query107944136") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + while (true) { + SearchResponse response = reportServiceClient.searchCallable().call(request); + for (ReportRow element : response.getResultsList()) { + // doThingsWith(element); + } + String nextPageToken = response.getNextPageToken(); + if (!Strings.isNullOrEmpty(nextPageToken)) { + request = request.toBuilder().setPageToken(nextPageToken).build(); + } else { + break; + } + } + } + } +} +// [END merchantapi_v1alpha_generated_ReportService_Search_Paged_async] diff --git a/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/SyncSearch.java b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/SyncSearch.java new file mode 100644 index 000000000000..a1dee85d5ff3 --- /dev/null +++ b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/SyncSearch.java @@ -0,0 +1,50 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha.samples; + +// [START merchantapi_v1alpha_generated_ReportService_Search_sync] +import com.google.shopping.merchant.reports.v1alpha.ReportRow; +import com.google.shopping.merchant.reports.v1alpha.ReportServiceClient; +import com.google.shopping.merchant.reports.v1alpha.SearchRequest; + +public class SyncSearch { + + public static void main(String[] args) throws Exception { + syncSearch(); + } + + public static void syncSearch() throws Exception { + // 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 (ReportServiceClient reportServiceClient = ReportServiceClient.create()) { + SearchRequest request = + SearchRequest.newBuilder() + .setParent("parent-995424086") + .setQuery("query107944136") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + for (ReportRow element : reportServiceClient.search(request).iterateAll()) { + // doThingsWith(element); + } + } + } +} +// [END merchantapi_v1alpha_generated_ReportService_Search_sync] diff --git a/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/SyncSearchString.java b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/SyncSearchString.java new file mode 100644 index 000000000000..8c0f3a58ca92 --- /dev/null +++ b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/SyncSearchString.java @@ -0,0 +1,43 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha.samples; + +// [START merchantapi_v1alpha_generated_ReportService_Search_String_sync] +import com.google.shopping.merchant.reports.v1alpha.ReportRow; +import com.google.shopping.merchant.reports.v1alpha.ReportServiceClient; + +public class SyncSearchString { + + public static void main(String[] args) throws Exception { + syncSearchString(); + } + + public static void syncSearchString() throws Exception { + // 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 (ReportServiceClient reportServiceClient = ReportServiceClient.create()) { + String parent = "parent-995424086"; + for (ReportRow element : reportServiceClient.search(parent).iterateAll()) { + // doThingsWith(element); + } + } + } +} +// [END merchantapi_v1alpha_generated_ReportService_Search_String_sync] diff --git a/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservicesettings/search/SyncSearch.java b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservicesettings/search/SyncSearch.java new file mode 100644 index 000000000000..405c823fbcee --- /dev/null +++ b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservicesettings/search/SyncSearch.java @@ -0,0 +1,55 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha.samples; + +// [START merchantapi_v1alpha_generated_ReportServiceSettings_Search_sync] +import com.google.shopping.merchant.reports.v1alpha.ReportServiceSettings; +import java.time.Duration; + +public class SyncSearch { + + public static void main(String[] args) throws Exception { + syncSearch(); + } + + public static void syncSearch() throws Exception { + // 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 + ReportServiceSettings.Builder reportServiceSettingsBuilder = ReportServiceSettings.newBuilder(); + reportServiceSettingsBuilder + .searchSettings() + .setRetrySettings( + reportServiceSettingsBuilder + .searchSettings() + .getRetrySettings() + .toBuilder() + .setInitialRetryDelayDuration(Duration.ofSeconds(1)) + .setInitialRpcTimeoutDuration(Duration.ofSeconds(5)) + .setMaxAttempts(5) + .setMaxRetryDelayDuration(Duration.ofSeconds(30)) + .setMaxRpcTimeoutDuration(Duration.ofSeconds(60)) + .setRetryDelayMultiplier(1.3) + .setRpcTimeoutMultiplier(1.5) + .setTotalTimeoutDuration(Duration.ofSeconds(300)) + .build()); + ReportServiceSettings reportServiceSettings = reportServiceSettingsBuilder.build(); + } +} +// [END merchantapi_v1alpha_generated_ReportServiceSettings_Search_sync] diff --git a/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/stub/reportservicestubsettings/search/SyncSearch.java b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/stub/reportservicestubsettings/search/SyncSearch.java new file mode 100644 index 000000000000..0a9674acc65d --- /dev/null +++ b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/stub/reportservicestubsettings/search/SyncSearch.java @@ -0,0 +1,56 @@ +/* + * Copyright 2025 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. + */ + +package com.google.shopping.merchant.reports.v1alpha.stub.samples; + +// [START merchantapi_v1alpha_generated_ReportServiceStubSettings_Search_sync] +import com.google.shopping.merchant.reports.v1alpha.stub.ReportServiceStubSettings; +import java.time.Duration; + +public class SyncSearch { + + public static void main(String[] args) throws Exception { + syncSearch(); + } + + public static void syncSearch() throws Exception { + // 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 + ReportServiceStubSettings.Builder reportServiceSettingsBuilder = + ReportServiceStubSettings.newBuilder(); + reportServiceSettingsBuilder + .searchSettings() + .setRetrySettings( + reportServiceSettingsBuilder + .searchSettings() + .getRetrySettings() + .toBuilder() + .setInitialRetryDelayDuration(Duration.ofSeconds(1)) + .setInitialRpcTimeoutDuration(Duration.ofSeconds(5)) + .setMaxAttempts(5) + .setMaxRetryDelayDuration(Duration.ofSeconds(30)) + .setMaxRpcTimeoutDuration(Duration.ofSeconds(60)) + .setRetryDelayMultiplier(1.3) + .setRpcTimeoutMultiplier(1.5) + .setTotalTimeoutDuration(Duration.ofSeconds(300)) + .build()); + ReportServiceStubSettings reportServiceSettings = reportServiceSettingsBuilder.build(); + } +} +// [END merchantapi_v1alpha_generated_ReportServiceStubSettings_Search_sync] diff --git a/versions.txt b/versions.txt index 2e61e6b1c5f2..778798a5041a 100644 --- a/versions.txt +++ b/versions.txt @@ -867,3 +867,5 @@ grpc-google-cloud-maintenance-v1beta:0.1.0:0.2.0-SNAPSHOT google-cloud-configdelivery:0.1.0:0.2.0-SNAPSHOT proto-google-cloud-configdelivery-v1beta:0.1.0:0.2.0-SNAPSHOT grpc-google-cloud-configdelivery-v1beta:0.1.0:0.2.0-SNAPSHOT +proto-google-shopping-merchant-reports-v1alpha:0.43.0:0.44.0-SNAPSHOT +grpc-google-shopping-merchant-reports-v1alpha:0.43.0:0.44.0-SNAPSHOT